From 180f20427a832e77373ee96e9e54b54873de8cec Mon Sep 17 00:00:00 2001
From: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Date: Mon, 18 Nov 2024 23:39:46 +0000
Subject: [PATCH 1/2] feat:support manual instance count in Cloud Run for
 manual scaling feature

PiperOrigin-RevId: 697723876

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

Source-Link: https://github.com/googleapis/googleapis-gen/commit/7dd2077b5bcab9d8d72d1c0e38c5241435ec616d
Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLWNsb3VkLXJ1bi8uT3dsQm90LnlhbWwiLCJoIjoiN2RkMjA3N2I1YmNhYjlkOGQ3MmQxYzBlMzhjNTI0MTQzNWVjNjE2ZCJ9
---
 .../google-cloud-run/v2/.coveragerc           |   13 +
 owl-bot-staging/google-cloud-run/v2/.flake8   |   33 +
 .../google-cloud-run/v2/MANIFEST.in           |    2 +
 .../google-cloud-run/v2/README.rst            |   49 +
 .../v2/docs/_static/custom.css                |    3 +
 .../google-cloud-run/v2/docs/conf.py          |  376 +
 .../google-cloud-run/v2/docs/index.rst        |    7 +
 .../v2/docs/run_v2/builds.rst                 |    6 +
 .../v2/docs/run_v2/executions.rst             |   10 +
 .../google-cloud-run/v2/docs/run_v2/jobs.rst  |   10 +
 .../v2/docs/run_v2/revisions.rst              |   10 +
 .../v2/docs/run_v2/services.rst               |   10 +
 .../v2/docs/run_v2/services_.rst              |   11 +
 .../google-cloud-run/v2/docs/run_v2/tasks.rst |   10 +
 .../v2/docs/run_v2/types_.rst                 |    6 +
 .../v2/google/cloud/run/__init__.py           |  189 +
 .../v2/google/cloud/run/gapic_version.py      |   16 +
 .../v2/google/cloud/run/py.typed              |    2 +
 .../v2/google/cloud/run_v2/__init__.py        |  190 +
 .../google/cloud/run_v2/gapic_metadata.json   |  528 ++
 .../v2/google/cloud/run_v2/gapic_version.py   |   16 +
 .../v2/google/cloud/run_v2/py.typed           |    2 +
 .../google/cloud/run_v2/services/__init__.py  |   15 +
 .../cloud/run_v2/services/builds/__init__.py  |   22 +
 .../run_v2/services/builds/async_client.py    |  535 ++
 .../cloud/run_v2/services/builds/client.py    |  865 ++
 .../services/builds/transports/README.rst     |    9 +
 .../services/builds/transports/__init__.py    |   38 +
 .../run_v2/services/builds/transports/base.py |  212 +
 .../run_v2/services/builds/transports/grpc.py |  344 +
 .../builds/transports/grpc_asyncio.py         |  385 +
 .../run_v2/services/builds/transports/rest.py |  652 ++
 .../services/builds/transports/rest_base.py   |  245 +
 .../run_v2/services/executions/__init__.py    |   22 +
 .../services/executions/async_client.py       |  929 ++
 .../run_v2/services/executions/client.py      | 1300 +++
 .../run_v2/services/executions/pagers.py      |  162 +
 .../services/executions/transports/README.rst |    9 +
 .../executions/transports/__init__.py         |   38 +
 .../services/executions/transports/base.py    |  260 +
 .../services/executions/transports/grpc.py    |  441 +
 .../executions/transports/grpc_asyncio.py     |  497 +
 .../services/executions/transports/rest.py    | 1026 ++
 .../executions/transports/rest_base.py        |  356 +
 .../cloud/run_v2/services/jobs/__init__.py    |   22 +
 .../run_v2/services/jobs/async_client.py      | 1541 +++
 .../cloud/run_v2/services/jobs/client.py      | 1922 ++++
 .../cloud/run_v2/services/jobs/pagers.py      |  162 +
 .../services/jobs/transports/README.rst       |    9 +
 .../services/jobs/transports/__init__.py      |   38 +
 .../run_v2/services/jobs/transports/base.py   |  333 +
 .../run_v2/services/jobs/transports/grpc.py   |  580 ++
 .../services/jobs/transports/grpc_asyncio.py  |  661 ++
 .../run_v2/services/jobs/transports/rest.py   | 1711 ++++
 .../services/jobs/transports/rest_base.py     |  584 ++
 .../run_v2/services/revisions/__init__.py     |   22 +
 .../run_v2/services/revisions/async_client.py |  834 ++
 .../cloud/run_v2/services/revisions/client.py | 1215 +++
 .../cloud/run_v2/services/revisions/pagers.py |  162 +
 .../services/revisions/transports/README.rst  |    9 +
 .../services/revisions/transports/__init__.py |   38 +
 .../services/revisions/transports/base.py     |  246 +
 .../services/revisions/transports/grpc.py     |  416 +
 .../revisions/transports/grpc_asyncio.py      |  467 +
 .../services/revisions/transports/rest.py     |  920 ++
 .../revisions/transports/rest_base.py         |  309 +
 .../run_v2/services/services/__init__.py      |   22 +
 .../run_v2/services/services/async_client.py  | 1452 +++
 .../cloud/run_v2/services/services/client.py  | 1843 ++++
 .../cloud/run_v2/services/services/pagers.py  |  162 +
 .../services/services/transports/README.rst   |    9 +
 .../services/services/transports/__init__.py  |   38 +
 .../services/services/transports/base.py      |  337 +
 .../services/services/transports/grpc.py      |  557 ++
 .../services/transports/grpc_asyncio.py       |  651 ++
 .../services/services/transports/rest.py      | 1610 ++++
 .../services/services/transports/rest_base.py |  537 ++
 .../cloud/run_v2/services/tasks/__init__.py   |   22 +
 .../run_v2/services/tasks/async_client.py     |  692 ++
 .../cloud/run_v2/services/tasks/client.py     | 1074 +++
 .../cloud/run_v2/services/tasks/pagers.py     |  162 +
 .../services/tasks/transports/README.rst      |    9 +
 .../services/tasks/transports/__init__.py     |   38 +
 .../run_v2/services/tasks/transports/base.py  |  226 +
 .../run_v2/services/tasks/transports/grpc.py  |  370 +
 .../services/tasks/transports/grpc_asyncio.py |  416 +
 .../run_v2/services/tasks/transports/rest.py  |  756 ++
 .../services/tasks/transports/rest_base.py    |  272 +
 .../v2/google/cloud/run_v2/types/__init__.py  |  188 +
 .../v2/google/cloud/run_v2/types/build.py     |  253 +
 .../v2/google/cloud/run_v2/types/condition.py |  306 +
 .../v2/google/cloud/run_v2/types/execution.py |  437 +
 .../cloud/run_v2/types/execution_template.py  |  114 +
 .../v2/google/cloud/run_v2/types/job.py       |  704 ++
 .../v2/google/cloud/run_v2/types/k8s_min.py   |  854 ++
 .../v2/google/cloud/run_v2/types/revision.py  |  446 +
 .../cloud/run_v2/types/revision_template.py   |  217 +
 .../v2/google/cloud/run_v2/types/service.py   |  602 ++
 .../v2/google/cloud/run_v2/types/status.py    |   46 +
 .../v2/google/cloud/run_v2/types/task.py      |  431 +
 .../cloud/run_v2/types/task_template.py       |  122 +
 .../cloud/run_v2/types/traffic_target.py      |  129 +
 .../cloud/run_v2/types/vendor_settings.py     |  351 +
 owl-bot-staging/google-cloud-run/v2/mypy.ini  |    3 +
 .../google-cloud-run/v2/noxfile.py            |  280 +
 ..._v2_generated_builds_submit_build_async.py |   58 +
 ...n_v2_generated_builds_submit_build_sync.py |   58 +
 ...rated_executions_cancel_execution_async.py |   56 +
 ...erated_executions_cancel_execution_sync.py |   56 +
 ...rated_executions_delete_execution_async.py |   56 +
 ...erated_executions_delete_execution_sync.py |   56 +
 ...enerated_executions_get_execution_async.py |   52 +
 ...generated_executions_get_execution_sync.py |   52 +
 ...erated_executions_list_executions_async.py |   53 +
 ...nerated_executions_list_executions_sync.py |   53 +
 .../run_v2_generated_jobs_create_job_async.py |   62 +
 .../run_v2_generated_jobs_create_job_sync.py  |   62 +
 .../run_v2_generated_jobs_delete_job_async.py |   56 +
 .../run_v2_generated_jobs_delete_job_sync.py  |   56 +
 ..._v2_generated_jobs_get_iam_policy_async.py |   53 +
 ...n_v2_generated_jobs_get_iam_policy_sync.py |   53 +
 .../run_v2_generated_jobs_get_job_async.py    |   52 +
 .../run_v2_generated_jobs_get_job_sync.py     |   52 +
 .../run_v2_generated_jobs_list_jobs_async.py  |   53 +
 .../run_v2_generated_jobs_list_jobs_sync.py   |   53 +
 .../run_v2_generated_jobs_run_job_async.py    |   56 +
 .../run_v2_generated_jobs_run_job_sync.py     |   56 +
 ..._v2_generated_jobs_set_iam_policy_async.py |   53 +
 ...n_v2_generated_jobs_set_iam_policy_sync.py |   53 +
 ...nerated_jobs_test_iam_permissions_async.py |   54 +
 ...enerated_jobs_test_iam_permissions_sync.py |   54 +
 .../run_v2_generated_jobs_update_job_async.py |   60 +
 .../run_v2_generated_jobs_update_job_sync.py  |   60 +
 ...nerated_revisions_delete_revision_async.py |   56 +
 ...enerated_revisions_delete_revision_sync.py |   56 +
 ..._generated_revisions_get_revision_async.py |   52 +
 ...2_generated_revisions_get_revision_sync.py |   52 +
 ...enerated_revisions_list_revisions_async.py |   53 +
 ...generated_revisions_list_revisions_sync.py |   53 +
 ...generated_services_create_service_async.py |   57 +
 ..._generated_services_create_service_sync.py |   57 +
 ...generated_services_delete_service_async.py |   56 +
 ..._generated_services_delete_service_sync.py |   56 +
 ...generated_services_get_iam_policy_async.py |   53 +
 ..._generated_services_get_iam_policy_sync.py |   53 +
 ...v2_generated_services_get_service_async.py |   52 +
 ..._v2_generated_services_get_service_sync.py |   52 +
 ..._generated_services_list_services_async.py |   53 +
 ...2_generated_services_list_services_sync.py |   53 +
 ...generated_services_set_iam_policy_async.py |   53 +
 ..._generated_services_set_iam_policy_sync.py |   53 +
 ...ted_services_test_iam_permissions_async.py |   54 +
 ...ated_services_test_iam_permissions_sync.py |   54 +
 ...generated_services_update_service_async.py |   55 +
 ..._generated_services_update_service_sync.py |   55 +
 .../run_v2_generated_tasks_get_task_async.py  |   52 +
 .../run_v2_generated_tasks_get_task_sync.py   |   52 +
 ...run_v2_generated_tasks_list_tasks_async.py |   53 +
 .../run_v2_generated_tasks_list_tasks_sync.py |   53 +
 .../snippet_metadata_google.cloud.run.v2.json | 4346 +++++++++
 .../v2/scripts/fixup_run_v2_keywords.py       |  199 +
 owl-bot-staging/google-cloud-run/v2/setup.py  |   99 +
 .../v2/testing/constraints-3.10.txt           |    7 +
 .../v2/testing/constraints-3.11.txt           |    7 +
 .../v2/testing/constraints-3.12.txt           |    7 +
 .../v2/testing/constraints-3.13.txt           |    7 +
 .../v2/testing/constraints-3.7.txt            |   11 +
 .../v2/testing/constraints-3.8.txt            |    7 +
 .../v2/testing/constraints-3.9.txt            |    7 +
 .../google-cloud-run/v2/tests/__init__.py     |   16 +
 .../v2/tests/unit/__init__.py                 |   16 +
 .../v2/tests/unit/gapic/__init__.py           |   16 +
 .../v2/tests/unit/gapic/run_v2/__init__.py    |   16 +
 .../v2/tests/unit/gapic/run_v2/test_builds.py | 2690 ++++++
 .../unit/gapic/run_v2/test_executions.py      | 5309 +++++++++++
 .../v2/tests/unit/gapic/run_v2/test_jobs.py   | 8448 +++++++++++++++++
 .../tests/unit/gapic/run_v2/test_revisions.py | 4715 +++++++++
 .../tests/unit/gapic/run_v2/test_services.py  | 7878 +++++++++++++++
 .../v2/tests/unit/gapic/run_v2/test_tasks.py  | 3961 ++++++++
 179 files changed, 79508 insertions(+)
 create mode 100644 owl-bot-staging/google-cloud-run/v2/.coveragerc
 create mode 100644 owl-bot-staging/google-cloud-run/v2/.flake8
 create mode 100644 owl-bot-staging/google-cloud-run/v2/MANIFEST.in
 create mode 100644 owl-bot-staging/google-cloud-run/v2/README.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/_static/custom.css
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/conf.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/index.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/builds.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/executions.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/jobs.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/revisions.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/services.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/services_.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/tasks.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/types_.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run/gapic_version.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run/py.typed
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_metadata.json
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_version.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/py.typed
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/async_client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/README.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest_base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/async_client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/pagers.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/README.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest_base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/async_client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/pagers.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/README.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest_base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/async_client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/pagers.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/README.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest_base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/async_client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/pagers.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/README.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest_base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/async_client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/client.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/pagers.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/README.rst
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest_base.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/build.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/condition.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution_template.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/job.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/k8s_min.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision_template.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/service.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/status.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task_template.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/traffic_target.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/vendor_settings.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/mypy.ini
 create mode 100644 owl-bot-staging/google-cloud-run/v2/noxfile.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_async.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_sync.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
 create mode 100644 owl-bot-staging/google-cloud-run/v2/scripts/fixup_run_v2_keywords.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/setup.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.10.txt
 create mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.11.txt
 create mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.12.txt
 create mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.13.txt
 create mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.7.txt
 create mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.8.txt
 create mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.9.txt
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/__init__.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_builds.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_executions.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_jobs.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_revisions.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_services.py
 create mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_tasks.py

diff --git a/owl-bot-staging/google-cloud-run/v2/.coveragerc b/owl-bot-staging/google-cloud-run/v2/.coveragerc
new file mode 100644
index 000000000000..e95306d9a536
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/.coveragerc
@@ -0,0 +1,13 @@
+[run]
+branch = True
+
+[report]
+show_missing = True
+omit =
+    google/cloud/run/__init__.py
+    google/cloud/run/gapic_version.py
+exclude_lines =
+    # Re-enable the standard pragma
+    pragma: NO COVER
+    # Ignore debug-only repr
+    def __repr__
diff --git a/owl-bot-staging/google-cloud-run/v2/.flake8 b/owl-bot-staging/google-cloud-run/v2/.flake8
new file mode 100644
index 000000000000..29227d4cf419
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/.flake8
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Generated by synthtool. DO NOT EDIT!
+[flake8]
+ignore = E203, E266, E501, W503
+exclude =
+  # Exclude generated code.
+  **/proto/**
+  **/gapic/**
+  **/services/**
+  **/types/**
+  *_pb2.py
+
+  # Standard linting exemptions.
+  **/.nox/**
+  __pycache__,
+  .git,
+  *.pyc,
+  conf.py
diff --git a/owl-bot-staging/google-cloud-run/v2/MANIFEST.in b/owl-bot-staging/google-cloud-run/v2/MANIFEST.in
new file mode 100644
index 000000000000..fb6bb81f7379
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/MANIFEST.in
@@ -0,0 +1,2 @@
+recursive-include google/cloud/run *.py
+recursive-include google/cloud/run_v2 *.py
diff --git a/owl-bot-staging/google-cloud-run/v2/README.rst b/owl-bot-staging/google-cloud-run/v2/README.rst
new file mode 100644
index 000000000000..ca52f66fff83
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/README.rst
@@ -0,0 +1,49 @@
+Python Client for Google Cloud Run API
+=================================================
+
+Quick Start
+-----------
+
+In order to use this library, you first need to go through the following steps:
+
+1. `Select or create a Cloud Platform project.`_
+2. `Enable billing for your project.`_
+3. Enable the Google Cloud Run API.
+4. `Setup Authentication.`_
+
+.. _Select or create a Cloud Platform project.: https://console.cloud.google.com/project
+.. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project
+.. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
+
+Installation
+~~~~~~~~~~~~
+
+Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to
+create isolated Python environments. The basic problem it addresses is one of
+dependencies and versions, and indirectly permissions.
+
+With `virtualenv`_, it's possible to install this library without needing system
+install permissions, and without clashing with the installed system
+dependencies.
+
+.. _`virtualenv`: https://virtualenv.pypa.io/en/latest/
+
+
+Mac/Linux
+^^^^^^^^^
+
+.. code-block:: console
+
+    python3 -m venv <your-env>
+    source <your-env>/bin/activate
+    <your-env>/bin/pip install /path/to/library
+
+
+Windows
+^^^^^^^
+
+.. code-block:: console
+
+    python3 -m venv <your-env>
+    <your-env>\Scripts\activate
+    <your-env>\Scripts\pip.exe install \path\to\library
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/_static/custom.css b/owl-bot-staging/google-cloud-run/v2/docs/_static/custom.css
new file mode 100644
index 000000000000..06423be0b592
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/_static/custom.css
@@ -0,0 +1,3 @@
+dl.field-list > dt {
+    min-width: 100px
+}
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/conf.py b/owl-bot-staging/google-cloud-run/v2/docs/conf.py
new file mode 100644
index 000000000000..2efc90abaf25
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/conf.py
@@ -0,0 +1,376 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+#
+# google-cloud-run documentation build configuration file
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys
+import os
+import shlex
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+sys.path.insert(0, os.path.abspath(".."))
+
+__version__ = "0.1.0"
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+needs_sphinx = "4.0.1"
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    "sphinx.ext.autodoc",
+    "sphinx.ext.autosummary",
+    "sphinx.ext.intersphinx",
+    "sphinx.ext.coverage",
+    "sphinx.ext.napoleon",
+    "sphinx.ext.todo",
+    "sphinx.ext.viewcode",
+]
+
+# autodoc/autosummary flags
+autoclass_content = "both"
+autodoc_default_flags = ["members"]
+autosummary_generate = True
+
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ["_templates"]
+
+# Allow markdown includes (so releases.md can include CHANGLEOG.md)
+# http://www.sphinx-doc.org/en/master/markdown.html
+source_parsers = {".md": "recommonmark.parser.CommonMarkParser"}
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+source_suffix = [".rst", ".md"]
+
+# The encoding of source files.
+# source_encoding = 'utf-8-sig'
+
+# The root toctree document.
+root_doc = "index"
+
+# General information about the project.
+project = u"google-cloud-run"
+copyright = u"2023, Google, LLC"
+author = u"Google APIs"         # TODO: autogenerate this bit
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The full version, including alpha/beta/rc tags.
+release = __version__
+# The short X.Y version.
+version = ".".join(release.split(".")[0:2])
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = 'en'
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+# today = ''
+# Else, today_fmt is used as the format for a strftime call.
+# today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ["_build"]
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+# default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+# add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+# add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+# show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = "sphinx"
+
+# A list of ignored prefixes for module index sorting.
+# modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+# keep_warnings = False
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = True
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+html_theme = "alabaster"
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+html_theme_options = {
+    "description": "Google Cloud Client Libraries for Python",
+    "github_user": "googleapis",
+    "github_repo": "google-cloud-python",
+    "github_banner": True,
+    "font_family": "'Roboto', Georgia, sans",
+    "head_font_family": "'Roboto', Georgia, serif",
+    "code_font_family": "'Roboto Mono', 'Consolas', monospace",
+}
+
+# Add any paths that contain custom themes here, relative to this directory.
+# html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+# html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+# html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+# html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+# html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ["_static"]
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+# html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+# html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+# html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+# html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+# html_additional_pages = {}
+
+# If false, no module index is generated.
+# html_domain_indices = True
+
+# If false, no index is generated.
+# html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+# html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+# html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+# html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+# html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+# html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+# html_file_suffix = None
+
+# Language to be used for generating the HTML full-text search index.
+# Sphinx supports the following languages:
+#   'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
+#   'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
+# html_search_language = 'en'
+
+# A dictionary with options for the search language support, empty by default.
+# Now only 'ja' uses this config value
+# html_search_options = {'type': 'default'}
+
+# The name of a javascript file (relative to the configuration directory) that
+# implements a search results scorer. If empty, the default will be used.
+# html_search_scorer = 'scorer.js'
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = "google-cloud-run-doc"
+
+# -- Options for warnings ------------------------------------------------------
+
+
+suppress_warnings = [
+    # Temporarily suppress this to avoid "more than one target found for
+    # cross-reference" warning, which are intractable for us to avoid while in
+    # a mono-repo.
+    # See https://github.com/sphinx-doc/sphinx/blob
+    # /2a65ffeef5c107c19084fabdd706cdff3f52d93c/sphinx/domains/python.py#L843
+    "ref.python"
+]
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    # 'papersize': 'letterpaper',
+    # The font size ('10pt', '11pt' or '12pt').
+    # 'pointsize': '10pt',
+    # Additional stuff for the LaTeX preamble.
+    # 'preamble': '',
+    # Latex figure (float) alignment
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (
+        root_doc,
+        "google-cloud-run.tex",
+        u"google-cloud-run Documentation",
+        author,
+        "manual",
+    )
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+# latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+# latex_use_parts = False
+
+# If true, show page references after internal links.
+# latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+# latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+# latex_appendices = []
+
+# If false, no module index is generated.
+# latex_domain_indices = True
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (
+        root_doc,
+        "google-cloud-run",
+        u"Google Cloud Run Documentation",
+        [author],
+        1,
+    )
+]
+
+# If true, show URL addresses after external links.
+# man_show_urls = False
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (
+        root_doc,
+        "google-cloud-run",
+        u"google-cloud-run Documentation",
+        author,
+        "google-cloud-run",
+        "GAPIC library for Google Cloud Run API",
+        "APIs",
+    )
+]
+
+# Documents to append as an appendix to all manuals.
+# texinfo_appendices = []
+
+# If false, no module index is generated.
+# texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+# texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+# texinfo_no_detailmenu = False
+
+
+# Example configuration for intersphinx: refer to the Python standard library.
+intersphinx_mapping = {
+    "python": ("http://python.readthedocs.org/en/latest/", None),
+    "gax": ("https://gax-python.readthedocs.org/en/latest/", None),
+    "google-auth": ("https://google-auth.readthedocs.io/en/stable", None),
+    "google-gax": ("https://gax-python.readthedocs.io/en/latest/", None),
+    "google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None),
+    "grpc": ("https://grpc.io/grpc/python/", None),
+    "requests": ("http://requests.kennethreitz.org/en/stable/", None),
+    "proto": ("https://proto-plus-python.readthedocs.io/en/stable", None),
+    "protobuf": ("https://googleapis.dev/python/protobuf/latest/", None),
+}
+
+
+# Napoleon settings
+napoleon_google_docstring = True
+napoleon_numpy_docstring = True
+napoleon_include_private_with_doc = False
+napoleon_include_special_with_doc = True
+napoleon_use_admonition_for_examples = False
+napoleon_use_admonition_for_notes = False
+napoleon_use_admonition_for_references = False
+napoleon_use_ivar = False
+napoleon_use_param = True
+napoleon_use_rtype = True
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/index.rst b/owl-bot-staging/google-cloud-run/v2/docs/index.rst
new file mode 100644
index 000000000000..adc23552f109
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/index.rst
@@ -0,0 +1,7 @@
+API Reference
+-------------
+.. toctree::
+    :maxdepth: 2
+
+    run_v2/services_
+    run_v2/types_
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/builds.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/builds.rst
new file mode 100644
index 000000000000..fdedc682ab01
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/builds.rst
@@ -0,0 +1,6 @@
+Builds
+------------------------
+
+.. automodule:: google.cloud.run_v2.services.builds
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/executions.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/executions.rst
new file mode 100644
index 000000000000..f27d4a7b9e2a
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/executions.rst
@@ -0,0 +1,10 @@
+Executions
+----------------------------
+
+.. automodule:: google.cloud.run_v2.services.executions
+    :members:
+    :inherited-members:
+
+.. automodule:: google.cloud.run_v2.services.executions.pagers
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/jobs.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/jobs.rst
new file mode 100644
index 000000000000..423b784fe76f
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/jobs.rst
@@ -0,0 +1,10 @@
+Jobs
+----------------------
+
+.. automodule:: google.cloud.run_v2.services.jobs
+    :members:
+    :inherited-members:
+
+.. automodule:: google.cloud.run_v2.services.jobs.pagers
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/revisions.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/revisions.rst
new file mode 100644
index 000000000000..e4b2219cce35
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/revisions.rst
@@ -0,0 +1,10 @@
+Revisions
+---------------------------
+
+.. automodule:: google.cloud.run_v2.services.revisions
+    :members:
+    :inherited-members:
+
+.. automodule:: google.cloud.run_v2.services.revisions.pagers
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services.rst
new file mode 100644
index 000000000000..7c4ea9ce0f20
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services.rst
@@ -0,0 +1,10 @@
+Services
+--------------------------
+
+.. automodule:: google.cloud.run_v2.services.services
+    :members:
+    :inherited-members:
+
+.. automodule:: google.cloud.run_v2.services.services.pagers
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services_.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services_.rst
new file mode 100644
index 000000000000..4a37414732ec
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services_.rst
@@ -0,0 +1,11 @@
+Services for Google Cloud Run v2 API
+====================================
+.. toctree::
+    :maxdepth: 2
+
+    builds
+    executions
+    jobs
+    revisions
+    services
+    tasks
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/tasks.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/tasks.rst
new file mode 100644
index 000000000000..7bb96f795cd8
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/tasks.rst
@@ -0,0 +1,10 @@
+Tasks
+-----------------------
+
+.. automodule:: google.cloud.run_v2.services.tasks
+    :members:
+    :inherited-members:
+
+.. automodule:: google.cloud.run_v2.services.tasks.pagers
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/types_.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/types_.rst
new file mode 100644
index 000000000000..887d3238887c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/types_.rst
@@ -0,0 +1,6 @@
+Types for Google Cloud Run v2 API
+=================================
+
+.. automodule:: google.cloud.run_v2.types
+    :members:
+    :show-inheritance:
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/__init__.py
new file mode 100644
index 000000000000..3224a9474c50
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/__init__.py
@@ -0,0 +1,189 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from google.cloud.run import gapic_version as package_version
+
+__version__ = package_version.__version__
+
+
+from google.cloud.run_v2.services.builds.client import BuildsClient
+from google.cloud.run_v2.services.builds.async_client import BuildsAsyncClient
+from google.cloud.run_v2.services.executions.client import ExecutionsClient
+from google.cloud.run_v2.services.executions.async_client import ExecutionsAsyncClient
+from google.cloud.run_v2.services.jobs.client import JobsClient
+from google.cloud.run_v2.services.jobs.async_client import JobsAsyncClient
+from google.cloud.run_v2.services.revisions.client import RevisionsClient
+from google.cloud.run_v2.services.revisions.async_client import RevisionsAsyncClient
+from google.cloud.run_v2.services.services.client import ServicesClient
+from google.cloud.run_v2.services.services.async_client import ServicesAsyncClient
+from google.cloud.run_v2.services.tasks.client import TasksClient
+from google.cloud.run_v2.services.tasks.async_client import TasksAsyncClient
+
+from google.cloud.run_v2.types.build import StorageSource
+from google.cloud.run_v2.types.build import SubmitBuildRequest
+from google.cloud.run_v2.types.build import SubmitBuildResponse
+from google.cloud.run_v2.types.condition import Condition
+from google.cloud.run_v2.types.execution import CancelExecutionRequest
+from google.cloud.run_v2.types.execution import DeleteExecutionRequest
+from google.cloud.run_v2.types.execution import Execution
+from google.cloud.run_v2.types.execution import GetExecutionRequest
+from google.cloud.run_v2.types.execution import ListExecutionsRequest
+from google.cloud.run_v2.types.execution import ListExecutionsResponse
+from google.cloud.run_v2.types.execution_template import ExecutionTemplate
+from google.cloud.run_v2.types.job import CreateJobRequest
+from google.cloud.run_v2.types.job import DeleteJobRequest
+from google.cloud.run_v2.types.job import ExecutionReference
+from google.cloud.run_v2.types.job import GetJobRequest
+from google.cloud.run_v2.types.job import Job
+from google.cloud.run_v2.types.job import ListJobsRequest
+from google.cloud.run_v2.types.job import ListJobsResponse
+from google.cloud.run_v2.types.job import RunJobRequest
+from google.cloud.run_v2.types.job import UpdateJobRequest
+from google.cloud.run_v2.types.k8s_min import CloudSqlInstance
+from google.cloud.run_v2.types.k8s_min import Container
+from google.cloud.run_v2.types.k8s_min import ContainerPort
+from google.cloud.run_v2.types.k8s_min import EmptyDirVolumeSource
+from google.cloud.run_v2.types.k8s_min import EnvVar
+from google.cloud.run_v2.types.k8s_min import EnvVarSource
+from google.cloud.run_v2.types.k8s_min import GCSVolumeSource
+from google.cloud.run_v2.types.k8s_min import GRPCAction
+from google.cloud.run_v2.types.k8s_min import HTTPGetAction
+from google.cloud.run_v2.types.k8s_min import HTTPHeader
+from google.cloud.run_v2.types.k8s_min import NFSVolumeSource
+from google.cloud.run_v2.types.k8s_min import Probe
+from google.cloud.run_v2.types.k8s_min import ResourceRequirements
+from google.cloud.run_v2.types.k8s_min import SecretKeySelector
+from google.cloud.run_v2.types.k8s_min import SecretVolumeSource
+from google.cloud.run_v2.types.k8s_min import TCPSocketAction
+from google.cloud.run_v2.types.k8s_min import VersionToPath
+from google.cloud.run_v2.types.k8s_min import Volume
+from google.cloud.run_v2.types.k8s_min import VolumeMount
+from google.cloud.run_v2.types.revision import DeleteRevisionRequest
+from google.cloud.run_v2.types.revision import GetRevisionRequest
+from google.cloud.run_v2.types.revision import ListRevisionsRequest
+from google.cloud.run_v2.types.revision import ListRevisionsResponse
+from google.cloud.run_v2.types.revision import Revision
+from google.cloud.run_v2.types.revision_template import RevisionTemplate
+from google.cloud.run_v2.types.service import CreateServiceRequest
+from google.cloud.run_v2.types.service import DeleteServiceRequest
+from google.cloud.run_v2.types.service import GetServiceRequest
+from google.cloud.run_v2.types.service import ListServicesRequest
+from google.cloud.run_v2.types.service import ListServicesResponse
+from google.cloud.run_v2.types.service import Service
+from google.cloud.run_v2.types.service import UpdateServiceRequest
+from google.cloud.run_v2.types.status import RevisionScalingStatus
+from google.cloud.run_v2.types.task import GetTaskRequest
+from google.cloud.run_v2.types.task import ListTasksRequest
+from google.cloud.run_v2.types.task import ListTasksResponse
+from google.cloud.run_v2.types.task import Task
+from google.cloud.run_v2.types.task import TaskAttemptResult
+from google.cloud.run_v2.types.task_template import TaskTemplate
+from google.cloud.run_v2.types.traffic_target import TrafficTarget
+from google.cloud.run_v2.types.traffic_target import TrafficTargetStatus
+from google.cloud.run_v2.types.traffic_target import TrafficTargetAllocationType
+from google.cloud.run_v2.types.vendor_settings import BinaryAuthorization
+from google.cloud.run_v2.types.vendor_settings import NodeSelector
+from google.cloud.run_v2.types.vendor_settings import RevisionScaling
+from google.cloud.run_v2.types.vendor_settings import ServiceMesh
+from google.cloud.run_v2.types.vendor_settings import ServiceScaling
+from google.cloud.run_v2.types.vendor_settings import VpcAccess
+from google.cloud.run_v2.types.vendor_settings import EncryptionKeyRevocationAction
+from google.cloud.run_v2.types.vendor_settings import ExecutionEnvironment
+from google.cloud.run_v2.types.vendor_settings import IngressTraffic
+
+__all__ = ('BuildsClient',
+    'BuildsAsyncClient',
+    'ExecutionsClient',
+    'ExecutionsAsyncClient',
+    'JobsClient',
+    'JobsAsyncClient',
+    'RevisionsClient',
+    'RevisionsAsyncClient',
+    'ServicesClient',
+    'ServicesAsyncClient',
+    'TasksClient',
+    'TasksAsyncClient',
+    'StorageSource',
+    'SubmitBuildRequest',
+    'SubmitBuildResponse',
+    'Condition',
+    'CancelExecutionRequest',
+    'DeleteExecutionRequest',
+    'Execution',
+    'GetExecutionRequest',
+    'ListExecutionsRequest',
+    'ListExecutionsResponse',
+    'ExecutionTemplate',
+    'CreateJobRequest',
+    'DeleteJobRequest',
+    'ExecutionReference',
+    'GetJobRequest',
+    'Job',
+    'ListJobsRequest',
+    'ListJobsResponse',
+    'RunJobRequest',
+    'UpdateJobRequest',
+    'CloudSqlInstance',
+    'Container',
+    'ContainerPort',
+    'EmptyDirVolumeSource',
+    'EnvVar',
+    'EnvVarSource',
+    'GCSVolumeSource',
+    'GRPCAction',
+    'HTTPGetAction',
+    'HTTPHeader',
+    'NFSVolumeSource',
+    'Probe',
+    'ResourceRequirements',
+    'SecretKeySelector',
+    'SecretVolumeSource',
+    'TCPSocketAction',
+    'VersionToPath',
+    'Volume',
+    'VolumeMount',
+    'DeleteRevisionRequest',
+    'GetRevisionRequest',
+    'ListRevisionsRequest',
+    'ListRevisionsResponse',
+    'Revision',
+    'RevisionTemplate',
+    'CreateServiceRequest',
+    'DeleteServiceRequest',
+    'GetServiceRequest',
+    'ListServicesRequest',
+    'ListServicesResponse',
+    'Service',
+    'UpdateServiceRequest',
+    'RevisionScalingStatus',
+    'GetTaskRequest',
+    'ListTasksRequest',
+    'ListTasksResponse',
+    'Task',
+    'TaskAttemptResult',
+    'TaskTemplate',
+    'TrafficTarget',
+    'TrafficTargetStatus',
+    'TrafficTargetAllocationType',
+    'BinaryAuthorization',
+    'NodeSelector',
+    'RevisionScaling',
+    'ServiceMesh',
+    'ServiceScaling',
+    'VpcAccess',
+    'EncryptionKeyRevocationAction',
+    'ExecutionEnvironment',
+    'IngressTraffic',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/gapic_version.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/gapic_version.py
new file mode 100644
index 000000000000..558c8aab67c5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/gapic_version.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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__ = "0.0.0"  # {x-release-please-version}
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/py.typed b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/py.typed
new file mode 100644
index 000000000000..a94ba234c15c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/py.typed
@@ -0,0 +1,2 @@
+# Marker file for PEP 561.
+# The google-cloud-run package uses inline types.
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/__init__.py
new file mode 100644
index 000000000000..91fbabf21ae7
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/__init__.py
@@ -0,0 +1,190 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from google.cloud.run_v2 import gapic_version as package_version
+
+__version__ = package_version.__version__
+
+
+from .services.builds import BuildsClient
+from .services.builds import BuildsAsyncClient
+from .services.executions import ExecutionsClient
+from .services.executions import ExecutionsAsyncClient
+from .services.jobs import JobsClient
+from .services.jobs import JobsAsyncClient
+from .services.revisions import RevisionsClient
+from .services.revisions import RevisionsAsyncClient
+from .services.services import ServicesClient
+from .services.services import ServicesAsyncClient
+from .services.tasks import TasksClient
+from .services.tasks import TasksAsyncClient
+
+from .types.build import StorageSource
+from .types.build import SubmitBuildRequest
+from .types.build import SubmitBuildResponse
+from .types.condition import Condition
+from .types.execution import CancelExecutionRequest
+from .types.execution import DeleteExecutionRequest
+from .types.execution import Execution
+from .types.execution import GetExecutionRequest
+from .types.execution import ListExecutionsRequest
+from .types.execution import ListExecutionsResponse
+from .types.execution_template import ExecutionTemplate
+from .types.job import CreateJobRequest
+from .types.job import DeleteJobRequest
+from .types.job import ExecutionReference
+from .types.job import GetJobRequest
+from .types.job import Job
+from .types.job import ListJobsRequest
+from .types.job import ListJobsResponse
+from .types.job import RunJobRequest
+from .types.job import UpdateJobRequest
+from .types.k8s_min import CloudSqlInstance
+from .types.k8s_min import Container
+from .types.k8s_min import ContainerPort
+from .types.k8s_min import EmptyDirVolumeSource
+from .types.k8s_min import EnvVar
+from .types.k8s_min import EnvVarSource
+from .types.k8s_min import GCSVolumeSource
+from .types.k8s_min import GRPCAction
+from .types.k8s_min import HTTPGetAction
+from .types.k8s_min import HTTPHeader
+from .types.k8s_min import NFSVolumeSource
+from .types.k8s_min import Probe
+from .types.k8s_min import ResourceRequirements
+from .types.k8s_min import SecretKeySelector
+from .types.k8s_min import SecretVolumeSource
+from .types.k8s_min import TCPSocketAction
+from .types.k8s_min import VersionToPath
+from .types.k8s_min import Volume
+from .types.k8s_min import VolumeMount
+from .types.revision import DeleteRevisionRequest
+from .types.revision import GetRevisionRequest
+from .types.revision import ListRevisionsRequest
+from .types.revision import ListRevisionsResponse
+from .types.revision import Revision
+from .types.revision_template import RevisionTemplate
+from .types.service import CreateServiceRequest
+from .types.service import DeleteServiceRequest
+from .types.service import GetServiceRequest
+from .types.service import ListServicesRequest
+from .types.service import ListServicesResponse
+from .types.service import Service
+from .types.service import UpdateServiceRequest
+from .types.status import RevisionScalingStatus
+from .types.task import GetTaskRequest
+from .types.task import ListTasksRequest
+from .types.task import ListTasksResponse
+from .types.task import Task
+from .types.task import TaskAttemptResult
+from .types.task_template import TaskTemplate
+from .types.traffic_target import TrafficTarget
+from .types.traffic_target import TrafficTargetStatus
+from .types.traffic_target import TrafficTargetAllocationType
+from .types.vendor_settings import BinaryAuthorization
+from .types.vendor_settings import NodeSelector
+from .types.vendor_settings import RevisionScaling
+from .types.vendor_settings import ServiceMesh
+from .types.vendor_settings import ServiceScaling
+from .types.vendor_settings import VpcAccess
+from .types.vendor_settings import EncryptionKeyRevocationAction
+from .types.vendor_settings import ExecutionEnvironment
+from .types.vendor_settings import IngressTraffic
+
+__all__ = (
+    'BuildsAsyncClient',
+    'ExecutionsAsyncClient',
+    'JobsAsyncClient',
+    'RevisionsAsyncClient',
+    'ServicesAsyncClient',
+    'TasksAsyncClient',
+'BinaryAuthorization',
+'BuildsClient',
+'CancelExecutionRequest',
+'CloudSqlInstance',
+'Condition',
+'Container',
+'ContainerPort',
+'CreateJobRequest',
+'CreateServiceRequest',
+'DeleteExecutionRequest',
+'DeleteJobRequest',
+'DeleteRevisionRequest',
+'DeleteServiceRequest',
+'EmptyDirVolumeSource',
+'EncryptionKeyRevocationAction',
+'EnvVar',
+'EnvVarSource',
+'Execution',
+'ExecutionEnvironment',
+'ExecutionReference',
+'ExecutionTemplate',
+'ExecutionsClient',
+'GCSVolumeSource',
+'GRPCAction',
+'GetExecutionRequest',
+'GetJobRequest',
+'GetRevisionRequest',
+'GetServiceRequest',
+'GetTaskRequest',
+'HTTPGetAction',
+'HTTPHeader',
+'IngressTraffic',
+'Job',
+'JobsClient',
+'ListExecutionsRequest',
+'ListExecutionsResponse',
+'ListJobsRequest',
+'ListJobsResponse',
+'ListRevisionsRequest',
+'ListRevisionsResponse',
+'ListServicesRequest',
+'ListServicesResponse',
+'ListTasksRequest',
+'ListTasksResponse',
+'NFSVolumeSource',
+'NodeSelector',
+'Probe',
+'ResourceRequirements',
+'Revision',
+'RevisionScaling',
+'RevisionScalingStatus',
+'RevisionTemplate',
+'RevisionsClient',
+'RunJobRequest',
+'SecretKeySelector',
+'SecretVolumeSource',
+'Service',
+'ServiceMesh',
+'ServiceScaling',
+'ServicesClient',
+'StorageSource',
+'SubmitBuildRequest',
+'SubmitBuildResponse',
+'TCPSocketAction',
+'Task',
+'TaskAttemptResult',
+'TaskTemplate',
+'TasksClient',
+'TrafficTarget',
+'TrafficTargetAllocationType',
+'TrafficTargetStatus',
+'UpdateJobRequest',
+'UpdateServiceRequest',
+'VersionToPath',
+'Volume',
+'VolumeMount',
+'VpcAccess',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_metadata.json b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_metadata.json
new file mode 100644
index 000000000000..3f193aa3f5a1
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_metadata.json
@@ -0,0 +1,528 @@
+ {
+  "comment": "This file maps proto services/RPCs to the corresponding library clients/methods",
+  "language": "python",
+  "libraryPackage": "google.cloud.run_v2",
+  "protoPackage": "google.cloud.run.v2",
+  "schema": "1.0",
+  "services": {
+    "Builds": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "BuildsClient",
+          "rpcs": {
+            "SubmitBuild": {
+              "methods": [
+                "submit_build"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "BuildsAsyncClient",
+          "rpcs": {
+            "SubmitBuild": {
+              "methods": [
+                "submit_build"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "BuildsClient",
+          "rpcs": {
+            "SubmitBuild": {
+              "methods": [
+                "submit_build"
+              ]
+            }
+          }
+        }
+      }
+    },
+    "Executions": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "ExecutionsClient",
+          "rpcs": {
+            "CancelExecution": {
+              "methods": [
+                "cancel_execution"
+              ]
+            },
+            "DeleteExecution": {
+              "methods": [
+                "delete_execution"
+              ]
+            },
+            "GetExecution": {
+              "methods": [
+                "get_execution"
+              ]
+            },
+            "ListExecutions": {
+              "methods": [
+                "list_executions"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "ExecutionsAsyncClient",
+          "rpcs": {
+            "CancelExecution": {
+              "methods": [
+                "cancel_execution"
+              ]
+            },
+            "DeleteExecution": {
+              "methods": [
+                "delete_execution"
+              ]
+            },
+            "GetExecution": {
+              "methods": [
+                "get_execution"
+              ]
+            },
+            "ListExecutions": {
+              "methods": [
+                "list_executions"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "ExecutionsClient",
+          "rpcs": {
+            "CancelExecution": {
+              "methods": [
+                "cancel_execution"
+              ]
+            },
+            "DeleteExecution": {
+              "methods": [
+                "delete_execution"
+              ]
+            },
+            "GetExecution": {
+              "methods": [
+                "get_execution"
+              ]
+            },
+            "ListExecutions": {
+              "methods": [
+                "list_executions"
+              ]
+            }
+          }
+        }
+      }
+    },
+    "Jobs": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "JobsClient",
+          "rpcs": {
+            "CreateJob": {
+              "methods": [
+                "create_job"
+              ]
+            },
+            "DeleteJob": {
+              "methods": [
+                "delete_job"
+              ]
+            },
+            "GetIamPolicy": {
+              "methods": [
+                "get_iam_policy"
+              ]
+            },
+            "GetJob": {
+              "methods": [
+                "get_job"
+              ]
+            },
+            "ListJobs": {
+              "methods": [
+                "list_jobs"
+              ]
+            },
+            "RunJob": {
+              "methods": [
+                "run_job"
+              ]
+            },
+            "SetIamPolicy": {
+              "methods": [
+                "set_iam_policy"
+              ]
+            },
+            "TestIamPermissions": {
+              "methods": [
+                "test_iam_permissions"
+              ]
+            },
+            "UpdateJob": {
+              "methods": [
+                "update_job"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "JobsAsyncClient",
+          "rpcs": {
+            "CreateJob": {
+              "methods": [
+                "create_job"
+              ]
+            },
+            "DeleteJob": {
+              "methods": [
+                "delete_job"
+              ]
+            },
+            "GetIamPolicy": {
+              "methods": [
+                "get_iam_policy"
+              ]
+            },
+            "GetJob": {
+              "methods": [
+                "get_job"
+              ]
+            },
+            "ListJobs": {
+              "methods": [
+                "list_jobs"
+              ]
+            },
+            "RunJob": {
+              "methods": [
+                "run_job"
+              ]
+            },
+            "SetIamPolicy": {
+              "methods": [
+                "set_iam_policy"
+              ]
+            },
+            "TestIamPermissions": {
+              "methods": [
+                "test_iam_permissions"
+              ]
+            },
+            "UpdateJob": {
+              "methods": [
+                "update_job"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "JobsClient",
+          "rpcs": {
+            "CreateJob": {
+              "methods": [
+                "create_job"
+              ]
+            },
+            "DeleteJob": {
+              "methods": [
+                "delete_job"
+              ]
+            },
+            "GetIamPolicy": {
+              "methods": [
+                "get_iam_policy"
+              ]
+            },
+            "GetJob": {
+              "methods": [
+                "get_job"
+              ]
+            },
+            "ListJobs": {
+              "methods": [
+                "list_jobs"
+              ]
+            },
+            "RunJob": {
+              "methods": [
+                "run_job"
+              ]
+            },
+            "SetIamPolicy": {
+              "methods": [
+                "set_iam_policy"
+              ]
+            },
+            "TestIamPermissions": {
+              "methods": [
+                "test_iam_permissions"
+              ]
+            },
+            "UpdateJob": {
+              "methods": [
+                "update_job"
+              ]
+            }
+          }
+        }
+      }
+    },
+    "Revisions": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "RevisionsClient",
+          "rpcs": {
+            "DeleteRevision": {
+              "methods": [
+                "delete_revision"
+              ]
+            },
+            "GetRevision": {
+              "methods": [
+                "get_revision"
+              ]
+            },
+            "ListRevisions": {
+              "methods": [
+                "list_revisions"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "RevisionsAsyncClient",
+          "rpcs": {
+            "DeleteRevision": {
+              "methods": [
+                "delete_revision"
+              ]
+            },
+            "GetRevision": {
+              "methods": [
+                "get_revision"
+              ]
+            },
+            "ListRevisions": {
+              "methods": [
+                "list_revisions"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "RevisionsClient",
+          "rpcs": {
+            "DeleteRevision": {
+              "methods": [
+                "delete_revision"
+              ]
+            },
+            "GetRevision": {
+              "methods": [
+                "get_revision"
+              ]
+            },
+            "ListRevisions": {
+              "methods": [
+                "list_revisions"
+              ]
+            }
+          }
+        }
+      }
+    },
+    "Services": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "ServicesClient",
+          "rpcs": {
+            "CreateService": {
+              "methods": [
+                "create_service"
+              ]
+            },
+            "DeleteService": {
+              "methods": [
+                "delete_service"
+              ]
+            },
+            "GetIamPolicy": {
+              "methods": [
+                "get_iam_policy"
+              ]
+            },
+            "GetService": {
+              "methods": [
+                "get_service"
+              ]
+            },
+            "ListServices": {
+              "methods": [
+                "list_services"
+              ]
+            },
+            "SetIamPolicy": {
+              "methods": [
+                "set_iam_policy"
+              ]
+            },
+            "TestIamPermissions": {
+              "methods": [
+                "test_iam_permissions"
+              ]
+            },
+            "UpdateService": {
+              "methods": [
+                "update_service"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "ServicesAsyncClient",
+          "rpcs": {
+            "CreateService": {
+              "methods": [
+                "create_service"
+              ]
+            },
+            "DeleteService": {
+              "methods": [
+                "delete_service"
+              ]
+            },
+            "GetIamPolicy": {
+              "methods": [
+                "get_iam_policy"
+              ]
+            },
+            "GetService": {
+              "methods": [
+                "get_service"
+              ]
+            },
+            "ListServices": {
+              "methods": [
+                "list_services"
+              ]
+            },
+            "SetIamPolicy": {
+              "methods": [
+                "set_iam_policy"
+              ]
+            },
+            "TestIamPermissions": {
+              "methods": [
+                "test_iam_permissions"
+              ]
+            },
+            "UpdateService": {
+              "methods": [
+                "update_service"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "ServicesClient",
+          "rpcs": {
+            "CreateService": {
+              "methods": [
+                "create_service"
+              ]
+            },
+            "DeleteService": {
+              "methods": [
+                "delete_service"
+              ]
+            },
+            "GetIamPolicy": {
+              "methods": [
+                "get_iam_policy"
+              ]
+            },
+            "GetService": {
+              "methods": [
+                "get_service"
+              ]
+            },
+            "ListServices": {
+              "methods": [
+                "list_services"
+              ]
+            },
+            "SetIamPolicy": {
+              "methods": [
+                "set_iam_policy"
+              ]
+            },
+            "TestIamPermissions": {
+              "methods": [
+                "test_iam_permissions"
+              ]
+            },
+            "UpdateService": {
+              "methods": [
+                "update_service"
+              ]
+            }
+          }
+        }
+      }
+    },
+    "Tasks": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "TasksClient",
+          "rpcs": {
+            "GetTask": {
+              "methods": [
+                "get_task"
+              ]
+            },
+            "ListTasks": {
+              "methods": [
+                "list_tasks"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "TasksAsyncClient",
+          "rpcs": {
+            "GetTask": {
+              "methods": [
+                "get_task"
+              ]
+            },
+            "ListTasks": {
+              "methods": [
+                "list_tasks"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "TasksClient",
+          "rpcs": {
+            "GetTask": {
+              "methods": [
+                "get_task"
+              ]
+            },
+            "ListTasks": {
+              "methods": [
+                "list_tasks"
+              ]
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_version.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_version.py
new file mode 100644
index 000000000000..558c8aab67c5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_version.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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__ = "0.0.0"  # {x-release-please-version}
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/py.typed b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/py.typed
new file mode 100644
index 000000000000..a94ba234c15c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/py.typed
@@ -0,0 +1,2 @@
+# Marker file for PEP 561.
+# The google-cloud-run package uses inline types.
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/__init__.py
new file mode 100644
index 000000000000..8f6cf068242c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/__init__.py
@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/__init__.py
new file mode 100644
index 000000000000..4ca26c4d7f96
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from .client import BuildsClient
+from .async_client import BuildsAsyncClient
+
+__all__ = (
+    'BuildsClient',
+    'BuildsAsyncClient',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/async_client.py
new file mode 100644
index 000000000000..b95464b5bcff
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/async_client.py
@@ -0,0 +1,535 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core.client_options import ClientOptions
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry_async as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+
+try:
+    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import build
+from google.longrunning import operations_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from .transports.base import BuildsTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import BuildsGrpcAsyncIOTransport
+from .client import BuildsClient
+
+
+class BuildsAsyncClient:
+    """Cloud Run Build Control Plane API"""
+
+    _client: BuildsClient
+
+    # Copy defaults from the synchronous client for use here.
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = BuildsClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = BuildsClient.DEFAULT_MTLS_ENDPOINT
+    _DEFAULT_ENDPOINT_TEMPLATE = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE
+    _DEFAULT_UNIVERSE = BuildsClient._DEFAULT_UNIVERSE
+
+    worker_pool_path = staticmethod(BuildsClient.worker_pool_path)
+    parse_worker_pool_path = staticmethod(BuildsClient.parse_worker_pool_path)
+    common_billing_account_path = staticmethod(BuildsClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(BuildsClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(BuildsClient.common_folder_path)
+    parse_common_folder_path = staticmethod(BuildsClient.parse_common_folder_path)
+    common_organization_path = staticmethod(BuildsClient.common_organization_path)
+    parse_common_organization_path = staticmethod(BuildsClient.parse_common_organization_path)
+    common_project_path = staticmethod(BuildsClient.common_project_path)
+    parse_common_project_path = staticmethod(BuildsClient.parse_common_project_path)
+    common_location_path = staticmethod(BuildsClient.common_location_path)
+    parse_common_location_path = staticmethod(BuildsClient.parse_common_location_path)
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            BuildsAsyncClient: The constructed client.
+        """
+        return BuildsClient.from_service_account_info.__func__(BuildsAsyncClient, info, *args, **kwargs)  # type: ignore
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            BuildsAsyncClient: The constructed client.
+        """
+        return BuildsClient.from_service_account_file.__func__(BuildsAsyncClient, filename, *args, **kwargs)  # type: ignore
+
+    from_service_account_json = from_service_account_file
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
+        """Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+        return BuildsClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> BuildsTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            BuildsTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._client._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used
+                by the client instance.
+        """
+        return self._client._universe_domain
+
+    get_transport_class = BuildsClient.get_transport_class
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, BuildsTransport, Callable[..., BuildsTransport]]] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the builds async client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,BuildsTransport,Callable[..., BuildsTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport to use.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the BuildsTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = BuildsClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def submit_build(self,
+            request: Optional[Union[build.SubmitBuildRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> build.SubmitBuildResponse:
+        r"""Submits a build in a given project.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_submit_build():
+                # Create a client
+                client = run_v2.BuildsAsyncClient()
+
+                # Initialize request argument(s)
+                storage_source = run_v2.StorageSource()
+                storage_source.bucket = "bucket_value"
+                storage_source.object_ = "object__value"
+
+                request = run_v2.SubmitBuildRequest(
+                    storage_source=storage_source,
+                    parent="parent_value",
+                    image_uri="image_uri_value",
+                )
+
+                # Make the request
+                response = await client.submit_build(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.SubmitBuildRequest, dict]]):
+                The request object. Request message for submitting a
+                Build.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.SubmitBuildResponse:
+                Response message for submitting a
+                Build.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, build.SubmitBuildRequest):
+            request = build.SubmitBuildRequest(request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.submit_build]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("parent", request.parent),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    async def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "BuildsAsyncClient":
+        return self
+
+    async def __aexit__(self, exc_type, exc, tb):
+        await self.transport.close()
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "BuildsAsyncClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/client.py
new file mode 100644
index 000000000000..c6f760d47ad9
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/client.py
@@ -0,0 +1,865 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import os
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+import warnings
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core import client_options as client_options_lib
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials             # type: ignore
+from google.auth.transport import mtls                            # type: ignore
+from google.auth.transport.grpc import SslCredentials             # type: ignore
+from google.auth.exceptions import MutualTLSChannelError          # type: ignore
+from google.oauth2 import service_account                         # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import build
+from google.longrunning import operations_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from .transports.base import BuildsTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import BuildsGrpcTransport
+from .transports.grpc_asyncio import BuildsGrpcAsyncIOTransport
+from .transports.rest import BuildsRestTransport
+
+
+class BuildsClientMeta(type):
+    """Metaclass for the Builds client.
+
+    This provides class-level methods for building and retrieving
+    support objects (e.g. transport) without polluting the client instance
+    objects.
+    """
+    _transport_registry = OrderedDict()  # type: Dict[str, Type[BuildsTransport]]
+    _transport_registry["grpc"] = BuildsGrpcTransport
+    _transport_registry["grpc_asyncio"] = BuildsGrpcAsyncIOTransport
+    _transport_registry["rest"] = BuildsRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[BuildsTransport]:
+        """Returns an appropriate transport class.
+
+        Args:
+            label: The name of the desired transport. If none is
+                provided, then the first transport in the registry is used.
+
+        Returns:
+            The transport class to use.
+        """
+        # If a specific transport is requested, return that one.
+        if label:
+            return cls._transport_registry[label]
+
+        # No transport is requested; return the default (that is, the first one
+        # in the dictionary).
+        return next(iter(cls._transport_registry.values()))
+
+
+class BuildsClient(metaclass=BuildsClientMeta):
+    """Cloud Run Build Control Plane API"""
+
+    @staticmethod
+    def _get_default_mtls_endpoint(api_endpoint):
+        """Converts api endpoint to mTLS endpoint.
+
+        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
+        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
+        Args:
+            api_endpoint (Optional[str]): the api endpoint to convert.
+        Returns:
+            str: converted mTLS api endpoint.
+        """
+        if not api_endpoint:
+            return api_endpoint
+
+        mtls_endpoint_re = re.compile(
+            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
+        )
+
+        m = mtls_endpoint_re.match(api_endpoint)
+        name, mtls, sandbox, googledomain = m.groups()
+        if mtls or not googledomain:
+            return api_endpoint
+
+        if sandbox:
+            return api_endpoint.replace(
+                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
+            )
+
+        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
+
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = "run.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
+    _DEFAULT_UNIVERSE = "googleapis.com"
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            BuildsClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_info(info)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            BuildsClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_file(
+            filename)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    from_service_account_json = from_service_account_file
+
+    @property
+    def transport(self) -> BuildsTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            BuildsTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @staticmethod
+    def worker_pool_path(project: str,location: str,worker_pool: str,) -> str:
+        """Returns a fully-qualified worker_pool string."""
+        return "projects/{project}/locations/{location}/workerPools/{worker_pool}".format(project=project, location=location, worker_pool=worker_pool, )
+
+    @staticmethod
+    def parse_worker_pool_path(path: str) -> Dict[str,str]:
+        """Parses a worker_pool path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/workerPools/(?P<worker_pool>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_billing_account_path(billing_account: str, ) -> str:
+        """Returns a fully-qualified billing_account string."""
+        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+
+    @staticmethod
+    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
+        """Parse a billing_account path into its component segments."""
+        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_folder_path(folder: str, ) -> str:
+        """Returns a fully-qualified folder string."""
+        return "folders/{folder}".format(folder=folder, )
+
+    @staticmethod
+    def parse_common_folder_path(path: str) -> Dict[str,str]:
+        """Parse a folder path into its component segments."""
+        m = re.match(r"^folders/(?P<folder>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_organization_path(organization: str, ) -> str:
+        """Returns a fully-qualified organization string."""
+        return "organizations/{organization}".format(organization=organization, )
+
+    @staticmethod
+    def parse_common_organization_path(path: str) -> Dict[str,str]:
+        """Parse a organization path into its component segments."""
+        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_project_path(project: str, ) -> str:
+        """Returns a fully-qualified project string."""
+        return "projects/{project}".format(project=project, )
+
+    @staticmethod
+    def parse_common_project_path(path: str) -> Dict[str,str]:
+        """Parse a project path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_location_path(project: str, location: str, ) -> str:
+        """Returns a fully-qualified location string."""
+        return "projects/{project}/locations/{location}".format(project=project, location=location, )
+
+    @staticmethod
+    def parse_common_location_path(path: str) -> Dict[str,str]:
+        """Parse a location path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
+        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+
+        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
+            DeprecationWarning)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+
+        # Figure out the client cert source to use.
+        client_cert_source = None
+        if use_client_cert == "true":
+            if client_options.client_cert_source:
+                client_cert_source = client_options.client_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+
+        # Figure out which api endpoint to use.
+        if client_options.api_endpoint is not None:
+            api_endpoint = client_options.api_endpoint
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = cls.DEFAULT_ENDPOINT
+
+        return api_endpoint, client_cert_source
+
+    @staticmethod
+    def _read_environment_variables():
+        """Returns the environment variables used by the client.
+
+        Returns:
+            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
+            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
+
+        Raises:
+            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
+                any of ["true", "false"].
+            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
+                is not any of ["auto", "never", "always"].
+        """
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
+        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
+
+    @staticmethod
+    def _get_client_cert_source(provided_cert_source, use_cert_flag):
+        """Return the client cert source to be used by the client.
+
+        Args:
+            provided_cert_source (bytes): The client certificate source provided.
+            use_cert_flag (bool): A flag indicating whether to use the client certificate.
+
+        Returns:
+            bytes or None: The client cert source to be used by the client.
+        """
+        client_cert_source = None
+        if use_cert_flag:
+            if provided_cert_source:
+                client_cert_source = provided_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+        return client_cert_source
+
+    @staticmethod
+    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
+        """Return the API endpoint used by the client.
+
+        Args:
+            api_override (str): The API endpoint override. If specified, this is always
+                the return value of this function and the other arguments are not used.
+            client_cert_source (bytes): The client certificate source used by the client.
+            universe_domain (str): The universe domain used by the client.
+            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
+                Possible values are "always", "auto", or "never".
+
+        Returns:
+            str: The API endpoint to be used by the client.
+        """
+        if api_override is not None:
+            api_endpoint = api_override
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            _default_universe = BuildsClient._DEFAULT_UNIVERSE
+            if universe_domain != _default_universe:
+                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
+            api_endpoint = BuildsClient.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
+        return api_endpoint
+
+    @staticmethod
+    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
+        """Return the universe domain used by the client.
+
+        Args:
+            client_universe_domain (Optional[str]): The universe domain configured via the client options.
+            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
+
+        Returns:
+            str: The universe domain to be used by the client.
+
+        Raises:
+            ValueError: If the universe domain is an empty string.
+        """
+        universe_domain = BuildsClient._DEFAULT_UNIVERSE
+        if client_universe_domain is not None:
+            universe_domain = client_universe_domain
+        elif universe_domain_env is not None:
+            universe_domain = universe_domain_env
+        if len(universe_domain.strip()) == 0:
+            raise ValueError("Universe Domain cannot be an empty string.")
+        return universe_domain
+
+    def _validate_universe_domain(self):
+        """Validates client's and credentials' universe domains are consistent.
+
+        Returns:
+            bool: True iff the configured universe domain is valid.
+
+        Raises:
+            ValueError: If the configured universe domain is not valid.
+        """
+
+        # NOTE (b/349488459): universe validation is disabled until further notice.
+        return True
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used by the client instance.
+        """
+        return self._universe_domain
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, BuildsTransport, Callable[..., BuildsTransport]]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the builds client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,BuildsTransport,Callable[..., BuildsTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the BuildsTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that the ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client_options = client_options
+        if isinstance(self._client_options, dict):
+            self._client_options = client_options_lib.from_dict(self._client_options)
+        if self._client_options is None:
+            self._client_options = client_options_lib.ClientOptions()
+        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
+
+        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
+
+        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = BuildsClient._read_environment_variables()
+        self._client_cert_source = BuildsClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
+        self._universe_domain = BuildsClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
+        self._api_endpoint = None # updated below, depending on `transport`
+
+        # Initialize the universe domain validation.
+        self._is_universe_domain_valid = False
+
+        api_key_value = getattr(self._client_options, "api_key", None)
+        if api_key_value and credentials:
+            raise ValueError("client_options.api_key and credentials are mutually exclusive")
+
+        # Save or instantiate the transport.
+        # Ordinarily, we provide the transport, but allowing a custom transport
+        # instance provides an extensibility point for unusual situations.
+        transport_provided = isinstance(transport, BuildsTransport)
+        if transport_provided:
+            # transport is a BuildsTransport instance.
+            if credentials or self._client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if self._client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = cast(BuildsTransport, transport)
+            self._api_endpoint = self._transport.host
+
+        self._api_endpoint = (self._api_endpoint or
+            BuildsClient._get_api_endpoint(
+                self._client_options.api_endpoint,
+                self._client_cert_source,
+                self._universe_domain,
+                self._use_mtls_endpoint))
+
+        if not transport_provided:
+            import google.auth._default  # type: ignore
+
+            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
+                credentials = google.auth._default.get_api_key_credentials(api_key_value)
+
+            transport_init: Union[Type[BuildsTransport], Callable[..., BuildsTransport]] = (
+                BuildsClient.get_transport_class(transport)
+                if isinstance(transport, str) or transport is None
+                else cast(Callable[..., BuildsTransport], transport)
+            )
+            # initialize with the provided callable or the passed in class
+            self._transport = transport_init(
+                credentials=credentials,
+                credentials_file=self._client_options.credentials_file,
+                host=self._api_endpoint,
+                scopes=self._client_options.scopes,
+                client_cert_source_for_mtls=self._client_cert_source,
+                quota_project_id=self._client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=self._client_options.api_audience,
+            )
+
+    def submit_build(self,
+            request: Optional[Union[build.SubmitBuildRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> build.SubmitBuildResponse:
+        r"""Submits a build in a given project.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_submit_build():
+                # Create a client
+                client = run_v2.BuildsClient()
+
+                # Initialize request argument(s)
+                storage_source = run_v2.StorageSource()
+                storage_source.bucket = "bucket_value"
+                storage_source.object_ = "object__value"
+
+                request = run_v2.SubmitBuildRequest(
+                    storage_source=storage_source,
+                    parent="parent_value",
+                    image_uri="image_uri_value",
+                )
+
+                # Make the request
+                response = client.submit_build(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.SubmitBuildRequest, dict]):
+                The request object. Request message for submitting a
+                Build.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.SubmitBuildResponse:
+                Response message for submitting a
+                Build.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, build.SubmitBuildRequest):
+            request = build.SubmitBuildRequest(request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.submit_build]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("parent", request.parent),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "BuildsClient":
+        return self
+
+    def __exit__(self, type, value, traceback):
+        """Releases underlying transport's resources.
+
+        .. warning::
+            ONLY use as a context manager if the transport is NOT shared
+            with other clients! Exiting the with block will CLOSE the transport
+            and may cause errors in other clients!
+        """
+        self.transport.close()
+
+    def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "BuildsClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/README.rst
new file mode 100644
index 000000000000..eb8929cb53d9
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/README.rst
@@ -0,0 +1,9 @@
+
+transport inheritance structure
+_______________________________
+
+`BuildsTransport` is the ABC for all transports.
+- public child `BuildsGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
+- public child `BuildsGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
+- private child `_BaseBuildsRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
+- public child `BuildsRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/__init__.py
new file mode 100644
index 000000000000..5b50ea34e1f4
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+from typing import Dict, Type
+
+from .base import BuildsTransport
+from .grpc import BuildsGrpcTransport
+from .grpc_asyncio import BuildsGrpcAsyncIOTransport
+from .rest import BuildsRestTransport
+from .rest import BuildsRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[BuildsTransport]]
+_transport_registry['grpc'] = BuildsGrpcTransport
+_transport_registry['grpc_asyncio'] = BuildsGrpcAsyncIOTransport
+_transport_registry['rest'] = BuildsRestTransport
+
+__all__ = (
+    'BuildsTransport',
+    'BuildsGrpcTransport',
+    'BuildsGrpcAsyncIOTransport',
+    'BuildsRestTransport',
+    'BuildsRestInterceptor',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/base.py
new file mode 100644
index 000000000000..b344d073254c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/base.py
@@ -0,0 +1,212 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 abc
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+import google.auth  # type: ignore
+import google.api_core
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.oauth2 import service_account # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import build
+from google.longrunning import operations_pb2 # type: ignore
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class BuildsTransport(abc.ABC):
+    """Abstract transport class for Builds."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'run.googleapis.com'
+    def __init__(
+            self, *,
+            host: str = DEFAULT_HOST,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            **kwargs,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A list of scopes.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+        """
+
+        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
+
+        # Save the scopes.
+        self._scopes = scopes
+        if not hasattr(self, "_ignore_credentials"):
+            self._ignore_credentials: bool = False
+
+        # If no credentials are provided, then determine the appropriate
+        # defaults.
+        if credentials and credentials_file:
+            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
+
+        if credentials_file is not None:
+            credentials, _ = google.auth.load_credentials_from_file(
+                                credentials_file,
+                                **scopes_kwargs,
+                                quota_project_id=quota_project_id
+                            )
+        elif credentials is None and not self._ignore_credentials:
+            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
+            # Don't apply audience if the credentials file passed from user.
+            if hasattr(credentials, "with_gdch_audience"):
+                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
+
+        # If the credentials are service account credentials, then always try to use self signed JWT.
+        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
+            credentials = credentials.with_always_use_jwt_access(True)
+
+        # Save the credentials.
+        self._credentials = credentials
+
+        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
+        if ':' not in host:
+            host += ':443'
+        self._host = host
+
+    @property
+    def host(self):
+        return self._host
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.submit_build: gapic_v1.method.wrap_method(
+                self.submit_build,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: gapic_v1.method.wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: gapic_v1.method.wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: gapic_v1.method.wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: gapic_v1.method.wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+         }
+
+    def close(self):
+        """Closes resources associated with the transport.
+
+       .. warning::
+            Only call this method if the transport is NOT shared
+            with other clients - this may cause errors in other clients!
+        """
+        raise NotImplementedError()
+
+    @property
+    def submit_build(self) -> Callable[
+            [build.SubmitBuildRequest],
+            Union[
+                build.SubmitBuildResponse,
+                Awaitable[build.SubmitBuildResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[
+        [operations_pb2.ListOperationsRequest],
+        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.GetOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.DeleteOperationRequest],
+        None,
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.WaitOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'BuildsTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc.py
new file mode 100644
index 000000000000..4c9e861f9a71
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc.py
@@ -0,0 +1,344 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 warnings
+from typing import Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import grpc_helpers
+from google.api_core import gapic_v1
+import google.auth                         # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import build
+from google.longrunning import operations_pb2 # type: ignore
+from .base import BuildsTransport, DEFAULT_CLIENT_INFO
+
+
+class BuildsGrpcTransport(BuildsTransport):
+    """gRPC backend transport for Builds.
+
+    Cloud Run Build Control Plane API
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+    _stubs: Dict[str, Callable]
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[grpc.Channel, Callable[..., 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,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if a ``channel`` instance is provided.
+            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, grpc.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._prep_wrapped_messages(client_info)
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> grpc.Channel:
+        """Create and return a gRPC channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            grpc.Channel: A gRPC channel object.
+
+        Raises:
+            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+
+        return grpc_helpers.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    @property
+    def grpc_channel(self) -> grpc.Channel:
+        """Return the channel designed to connect to this service.
+        """
+        return self._grpc_channel
+
+    @property
+    def submit_build(self) -> Callable[
+            [build.SubmitBuildRequest],
+            build.SubmitBuildResponse]:
+        r"""Return a callable for the submit build method over gRPC.
+
+        Submits a build in a given project.
+
+        Returns:
+            Callable[[~.SubmitBuildRequest],
+                    ~.SubmitBuildResponse]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'submit_build' not in self._stubs:
+            self._stubs['submit_build'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Builds/SubmitBuild',
+                request_serializer=build.SubmitBuildRequest.serialize,
+                response_deserializer=build.SubmitBuildResponse.deserialize,
+            )
+        return self._stubs['submit_build']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'BuildsGrpcTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc_asyncio.py
new file mode 100644
index 000000000000..607cdba8e8bf
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc_asyncio.py
@@ -0,0 +1,385 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 inspect
+import warnings
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry_async as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc                        # type: ignore
+from grpc.experimental import aio  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import build
+from google.longrunning import operations_pb2 # type: ignore
+from .base import BuildsTransport, DEFAULT_CLIENT_INFO
+from .grpc import BuildsGrpcTransport
+
+
+class BuildsGrpcAsyncIOTransport(BuildsTransport):
+    """gRPC AsyncIO backend transport for Builds.
+
+    Cloud Run Build Control Plane API
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+
+    _grpc_channel: aio.Channel
+    _stubs: Dict[str, Callable] = {}
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> aio.Channel:
+        """Create and return a gRPC AsyncIO channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            aio.Channel: A gRPC AsyncIO channel object.
+        """
+
+        return grpc_helpers_async.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[aio.Channel, Callable[..., 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,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, aio.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def grpc_channel(self) -> aio.Channel:
+        """Create the channel designed to connect to this service.
+
+        This property caches on the instance; repeated calls return
+        the same channel.
+        """
+        # Return the channel from cache.
+        return self._grpc_channel
+
+    @property
+    def submit_build(self) -> Callable[
+            [build.SubmitBuildRequest],
+            Awaitable[build.SubmitBuildResponse]]:
+        r"""Return a callable for the submit build method over gRPC.
+
+        Submits a build in a given project.
+
+        Returns:
+            Callable[[~.SubmitBuildRequest],
+                    Awaitable[~.SubmitBuildResponse]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'submit_build' not in self._stubs:
+            self._stubs['submit_build'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Builds/SubmitBuild',
+                request_serializer=build.SubmitBuildRequest.serialize,
+                response_deserializer=build.SubmitBuildResponse.deserialize,
+            )
+        return self._stubs['submit_build']
+
+    def _prep_wrapped_messages(self, client_info):
+        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
+        self._wrapped_methods = {
+            self.submit_build: self._wrap_method(
+                self.submit_build,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: self._wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: self._wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: self._wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: self._wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+        }
+
+    def _wrap_method(self, func, *args, **kwargs):
+        if self._wrap_with_kind:  # pragma: NO COVER
+            kwargs["kind"] = self.kind
+        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
+
+    def close(self):
+        return self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc_asyncio"
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+
+__all__ = (
+    'BuildsGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest.py
new file mode 100644
index 000000000000..2ce691d8e431
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest.py
@@ -0,0 +1,652 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+
+from google.auth.transport.requests import AuthorizedSession  # type: ignore
+import json  # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry as retries
+from google.api_core import rest_helpers
+from google.api_core import rest_streaming
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.cloud.location import locations_pb2 # type: ignore
+
+from requests import __version__ as requests_version
+import dataclasses
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+
+from google.cloud.run_v2.types import build
+from google.longrunning import operations_pb2  # type: ignore
+
+
+from .rest_base import _BaseBuildsRestTransport
+from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=f"requests@{requests_version}",
+)
+
+
+class BuildsRestInterceptor:
+    """Interceptor for Builds.
+
+    Interceptors are used to manipulate requests, request metadata, and responses
+    in arbitrary ways.
+    Example use cases include:
+    * Logging
+    * Verifying requests according to service or custom semantics
+    * Stripping extraneous information from responses
+
+    These use cases and more can be enabled by injecting an
+    instance of a custom subclass when constructing the BuildsRestTransport.
+
+    .. code-block:: python
+        class MyCustomBuildsInterceptor(BuildsRestInterceptor):
+            def pre_submit_build(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_submit_build(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = BuildsRestTransport(interceptor=MyCustomBuildsInterceptor())
+        client = BuildsClient(transport=transport)
+
+
+    """
+    def pre_submit_build(self, request: build.SubmitBuildRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[build.SubmitBuildRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for submit_build
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Builds server.
+        """
+        return request, metadata
+
+    def post_submit_build(self, response: build.SubmitBuildResponse) -> build.SubmitBuildResponse:
+        """Post-rpc interceptor for submit_build
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Builds server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_operation(
+        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Builds server.
+        """
+        return request, metadata
+
+    def post_delete_operation(
+        self, response: None
+    ) -> None:
+        """Post-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Builds server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_operation(
+        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Builds server.
+        """
+        return request, metadata
+
+    def post_get_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Builds server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_operations(
+        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Builds server.
+        """
+        return request, metadata
+
+    def post_list_operations(
+        self, response: operations_pb2.ListOperationsResponse
+    ) -> operations_pb2.ListOperationsResponse:
+        """Post-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Builds server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_wait_operation(
+        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Builds server.
+        """
+        return request, metadata
+
+    def post_wait_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Builds server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class BuildsRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: BuildsRestInterceptor
+
+
+class BuildsRestTransport(_BaseBuildsRestTransport):
+    """REST backend synchronous transport for Builds.
+
+    Cloud Run Build Control Plane API
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            url_scheme: str = 'https',
+            interceptor: Optional[BuildsRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
+                certificate to configure mutual TLS HTTP channel. It is ignored
+                if ``channel`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
+        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
+        # credentials object
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            url_scheme=url_scheme,
+            api_audience=api_audience
+        )
+        self._session = AuthorizedSession(
+            self._credentials, default_host=self.DEFAULT_HOST)
+        if client_cert_source_for_mtls:
+            self._session.configure_mtls_channel(client_cert_source_for_mtls)
+        self._interceptor = interceptor or BuildsRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    class _SubmitBuild(_BaseBuildsRestTransport._BaseSubmitBuild, BuildsRestStub):
+        def __hash__(self):
+            return hash("BuildsRestTransport.SubmitBuild")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: build.SubmitBuildRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> build.SubmitBuildResponse:
+            r"""Call the submit build method over HTTP.
+
+            Args:
+                request (~.build.SubmitBuildRequest):
+                    The request object. Request message for submitting a
+                Build.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.build.SubmitBuildResponse:
+                    Response message for submitting a
+                Build.
+
+            """
+
+            http_options = _BaseBuildsRestTransport._BaseSubmitBuild._get_http_options()
+            request, metadata = self._interceptor.pre_submit_build(request, metadata)
+            transcoded_request = _BaseBuildsRestTransport._BaseSubmitBuild._get_transcoded_request(http_options, request)
+
+            body = _BaseBuildsRestTransport._BaseSubmitBuild._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseBuildsRestTransport._BaseSubmitBuild._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = BuildsRestTransport._SubmitBuild._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = build.SubmitBuildResponse()
+            pb_resp = build.SubmitBuildResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_submit_build(resp)
+            return resp
+
+    @property
+    def submit_build(self) -> Callable[
+            [build.SubmitBuildRequest],
+            build.SubmitBuildResponse]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._SubmitBuild(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_operation(self):
+        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _DeleteOperation(_BaseBuildsRestTransport._BaseDeleteOperation, BuildsRestStub):
+        def __hash__(self):
+            return hash("BuildsRestTransport.DeleteOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.DeleteOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> None:
+
+            r"""Call the delete operation method over HTTP.
+
+            Args:
+                request (operations_pb2.DeleteOperationRequest):
+                    The request object for DeleteOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+            """
+
+            http_options = _BaseBuildsRestTransport._BaseDeleteOperation._get_http_options()
+            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
+            transcoded_request = _BaseBuildsRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseBuildsRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = BuildsRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            return self._interceptor.post_delete_operation(None)
+
+    @property
+    def get_operation(self):
+        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _GetOperation(_BaseBuildsRestTransport._BaseGetOperation, BuildsRestStub):
+        def __hash__(self):
+            return hash("BuildsRestTransport.GetOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.GetOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the get operation method over HTTP.
+
+            Args:
+                request (operations_pb2.GetOperationRequest):
+                    The request object for GetOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from GetOperation method.
+            """
+
+            http_options = _BaseBuildsRestTransport._BaseGetOperation._get_http_options()
+            request, metadata = self._interceptor.pre_get_operation(request, metadata)
+            transcoded_request = _BaseBuildsRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseBuildsRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = BuildsRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_get_operation(resp)
+            return resp
+
+    @property
+    def list_operations(self):
+        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
+
+    class _ListOperations(_BaseBuildsRestTransport._BaseListOperations, BuildsRestStub):
+        def __hash__(self):
+            return hash("BuildsRestTransport.ListOperations")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.ListOperationsRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.ListOperationsResponse:
+
+            r"""Call the list operations method over HTTP.
+
+            Args:
+                request (operations_pb2.ListOperationsRequest):
+                    The request object for ListOperations method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.ListOperationsResponse: Response from ListOperations method.
+            """
+
+            http_options = _BaseBuildsRestTransport._BaseListOperations._get_http_options()
+            request, metadata = self._interceptor.pre_list_operations(request, metadata)
+            transcoded_request = _BaseBuildsRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseBuildsRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = BuildsRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.ListOperationsResponse()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_list_operations(resp)
+            return resp
+
+    @property
+    def wait_operation(self):
+        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _WaitOperation(_BaseBuildsRestTransport._BaseWaitOperation, BuildsRestStub):
+        def __hash__(self):
+            return hash("BuildsRestTransport.WaitOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.WaitOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the wait operation method over HTTP.
+
+            Args:
+                request (operations_pb2.WaitOperationRequest):
+                    The request object for WaitOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from WaitOperation method.
+            """
+
+            http_options = _BaseBuildsRestTransport._BaseWaitOperation._get_http_options()
+            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
+            transcoded_request = _BaseBuildsRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
+
+            body = _BaseBuildsRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseBuildsRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = BuildsRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_wait_operation(resp)
+            return resp
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'BuildsRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest_base.py
new file mode 100644
index 000000000000..4926e3b6356a
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest_base.py
@@ -0,0 +1,245 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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  # type: ignore
+from google.api_core import path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.cloud.location import locations_pb2 # type: ignore
+from .base import BuildsTransport, DEFAULT_CLIENT_INFO
+
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+
+
+from google.cloud.run_v2.types import build
+from google.longrunning import operations_pb2  # type: ignore
+
+
+class _BaseBuildsRestTransport(BuildsTransport):
+    """Base REST backend transport for Builds.
+
+    Note: This class is not meant to be used directly. Use its sync and
+    async sub-classes instead.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[Any] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            url_scheme: str = 'https',
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[Any]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
+        if maybe_url_match is None:
+            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
+
+        url_match_items = maybe_url_match.groupdict()
+
+        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
+
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience
+        )
+
+    class _BaseSubmitBuild:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{parent=projects/*/locations/*}/builds:submit',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = build.SubmitBuildRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseBuildsRestTransport._BaseSubmitBuild._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseGetOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseListOperations:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*}/operations',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseWaitOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            body = json.dumps(transcoded_request['body'])
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+
+__all__=(
+    '_BaseBuildsRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/__init__.py
new file mode 100644
index 000000000000..9295dd9a3cb5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from .client import ExecutionsClient
+from .async_client import ExecutionsAsyncClient
+
+__all__ = (
+    'ExecutionsClient',
+    'ExecutionsAsyncClient',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/async_client.py
new file mode 100644
index 000000000000..cd3789fb1e2f
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/async_client.py
@@ -0,0 +1,929 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core.client_options import ClientOptions
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry_async as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+
+try:
+    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import operation  # type: ignore
+from google.api_core import operation_async  # type: ignore
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.executions import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import execution
+from google.cloud.run_v2.types import task_template
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import ExecutionsTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import ExecutionsGrpcAsyncIOTransport
+from .client import ExecutionsClient
+
+
+class ExecutionsAsyncClient:
+    """Cloud Run Execution Control Plane API."""
+
+    _client: ExecutionsClient
+
+    # Copy defaults from the synchronous client for use here.
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = ExecutionsClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = ExecutionsClient.DEFAULT_MTLS_ENDPOINT
+    _DEFAULT_ENDPOINT_TEMPLATE = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE
+    _DEFAULT_UNIVERSE = ExecutionsClient._DEFAULT_UNIVERSE
+
+    connector_path = staticmethod(ExecutionsClient.connector_path)
+    parse_connector_path = staticmethod(ExecutionsClient.parse_connector_path)
+    crypto_key_path = staticmethod(ExecutionsClient.crypto_key_path)
+    parse_crypto_key_path = staticmethod(ExecutionsClient.parse_crypto_key_path)
+    execution_path = staticmethod(ExecutionsClient.execution_path)
+    parse_execution_path = staticmethod(ExecutionsClient.parse_execution_path)
+    job_path = staticmethod(ExecutionsClient.job_path)
+    parse_job_path = staticmethod(ExecutionsClient.parse_job_path)
+    secret_path = staticmethod(ExecutionsClient.secret_path)
+    parse_secret_path = staticmethod(ExecutionsClient.parse_secret_path)
+    secret_version_path = staticmethod(ExecutionsClient.secret_version_path)
+    parse_secret_version_path = staticmethod(ExecutionsClient.parse_secret_version_path)
+    common_billing_account_path = staticmethod(ExecutionsClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(ExecutionsClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(ExecutionsClient.common_folder_path)
+    parse_common_folder_path = staticmethod(ExecutionsClient.parse_common_folder_path)
+    common_organization_path = staticmethod(ExecutionsClient.common_organization_path)
+    parse_common_organization_path = staticmethod(ExecutionsClient.parse_common_organization_path)
+    common_project_path = staticmethod(ExecutionsClient.common_project_path)
+    parse_common_project_path = staticmethod(ExecutionsClient.parse_common_project_path)
+    common_location_path = staticmethod(ExecutionsClient.common_location_path)
+    parse_common_location_path = staticmethod(ExecutionsClient.parse_common_location_path)
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            ExecutionsAsyncClient: The constructed client.
+        """
+        return ExecutionsClient.from_service_account_info.__func__(ExecutionsAsyncClient, info, *args, **kwargs)  # type: ignore
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            ExecutionsAsyncClient: The constructed client.
+        """
+        return ExecutionsClient.from_service_account_file.__func__(ExecutionsAsyncClient, filename, *args, **kwargs)  # type: ignore
+
+    from_service_account_json = from_service_account_file
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
+        """Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+        return ExecutionsClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> ExecutionsTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ExecutionsTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._client._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used
+                by the client instance.
+        """
+        return self._client._universe_domain
+
+    get_transport_class = ExecutionsClient.get_transport_class
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, ExecutionsTransport, Callable[..., ExecutionsTransport]]] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the executions async client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,ExecutionsTransport,Callable[..., ExecutionsTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport to use.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the ExecutionsTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = ExecutionsClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def get_execution(self,
+            request: Optional[Union[execution.GetExecutionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> execution.Execution:
+        r"""Gets information about an Execution.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_get_execution():
+                # Create a client
+                client = run_v2.ExecutionsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetExecutionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = await client.get_execution(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.GetExecutionRequest, dict]]):
+                The request object. Request message for obtaining a
+                Execution by its full name.
+            name (:class:`str`):
+                Required. The full name of the Execution. Format:
+                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+                where ``{project}`` can be project id or number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Execution:
+                Execution represents the
+                configuration of a single execution. A
+                execution an immutable resource that
+                references a container image which is
+                run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, execution.GetExecutionRequest):
+            request = execution.GetExecutionRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.get_execution]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("name", request.name),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_executions(self,
+            request: Optional[Union[execution.ListExecutionsRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListExecutionsAsyncPager:
+        r"""Lists Executions from a Job. Results are sorted by
+        creation time, descending.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_list_executions():
+                # Create a client
+                client = run_v2.ExecutionsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListExecutionsRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_executions(request=request)
+
+                # Handle the response
+                async for response in page_result:
+                    print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.ListExecutionsRequest, dict]]):
+                The request object. Request message for retrieving a list
+                of Executions.
+            parent (:class:`str`):
+                Required. The Execution from which the Executions should
+                be listed. To list all Executions across Jobs, use "-"
+                instead of Job name. Format:
+                ``projects/{project}/locations/{location}/jobs/{job}``,
+                where ``{project}`` can be project id or number.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.executions.pagers.ListExecutionsAsyncPager:
+                Response message containing a list of
+                Executions.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, execution.ListExecutionsRequest):
+            request = execution.ListExecutionsRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if parent is not None:
+            request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.list_executions]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("parent", request.parent),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__aiter__` convenience method.
+        response = pagers.ListExecutionsAsyncPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def delete_execution(self,
+            request: Optional[Union[execution.DeleteExecutionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Deletes an Execution.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_delete_execution():
+                # Create a client
+                client = run_v2.ExecutionsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.DeleteExecutionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.delete_execution(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.DeleteExecutionRequest, dict]]):
+                The request object. Request message for deleting an
+                Execution.
+            name (:class:`str`):
+                Required. The name of the Execution to delete. Format:
+                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+                where ``{project}`` can be project id or number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
+                   immutable resource that references a container image
+                   which is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, execution.DeleteExecutionRequest):
+            request = execution.DeleteExecutionRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.delete_execution]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("name", request.name),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            execution.Execution,
+            metadata_type=execution.Execution,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def cancel_execution(self,
+            request: Optional[Union[execution.CancelExecutionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Cancels an Execution.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_cancel_execution():
+                # Create a client
+                client = run_v2.ExecutionsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.CancelExecutionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.cancel_execution(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.CancelExecutionRequest, dict]]):
+                The request object. Request message for deleting an
+                Execution.
+            name (:class:`str`):
+                Required. The name of the Execution to cancel. Format:
+                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+                where ``{project}`` can be project id or number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
+                   immutable resource that references a container image
+                   which is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, execution.CancelExecutionRequest):
+            request = execution.CancelExecutionRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.cancel_execution]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("name", request.name),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            execution.Execution,
+            metadata_type=execution.Execution,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    async def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "ExecutionsAsyncClient":
+        return self
+
+    async def __aexit__(self, exc_type, exc, tb):
+        await self.transport.close()
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "ExecutionsAsyncClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/client.py
new file mode 100644
index 000000000000..35430e6c4137
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/client.py
@@ -0,0 +1,1300 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import os
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+import warnings
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core import client_options as client_options_lib
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials             # type: ignore
+from google.auth.transport import mtls                            # type: ignore
+from google.auth.transport.grpc import SslCredentials             # type: ignore
+from google.auth.exceptions import MutualTLSChannelError          # type: ignore
+from google.oauth2 import service_account                         # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import operation  # type: ignore
+from google.api_core import operation_async  # type: ignore
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.executions import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import execution
+from google.cloud.run_v2.types import task_template
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import ExecutionsTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import ExecutionsGrpcTransport
+from .transports.grpc_asyncio import ExecutionsGrpcAsyncIOTransport
+from .transports.rest import ExecutionsRestTransport
+
+
+class ExecutionsClientMeta(type):
+    """Metaclass for the Executions client.
+
+    This provides class-level methods for building and retrieving
+    support objects (e.g. transport) without polluting the client instance
+    objects.
+    """
+    _transport_registry = OrderedDict()  # type: Dict[str, Type[ExecutionsTransport]]
+    _transport_registry["grpc"] = ExecutionsGrpcTransport
+    _transport_registry["grpc_asyncio"] = ExecutionsGrpcAsyncIOTransport
+    _transport_registry["rest"] = ExecutionsRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[ExecutionsTransport]:
+        """Returns an appropriate transport class.
+
+        Args:
+            label: The name of the desired transport. If none is
+                provided, then the first transport in the registry is used.
+
+        Returns:
+            The transport class to use.
+        """
+        # If a specific transport is requested, return that one.
+        if label:
+            return cls._transport_registry[label]
+
+        # No transport is requested; return the default (that is, the first one
+        # in the dictionary).
+        return next(iter(cls._transport_registry.values()))
+
+
+class ExecutionsClient(metaclass=ExecutionsClientMeta):
+    """Cloud Run Execution Control Plane API."""
+
+    @staticmethod
+    def _get_default_mtls_endpoint(api_endpoint):
+        """Converts api endpoint to mTLS endpoint.
+
+        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
+        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
+        Args:
+            api_endpoint (Optional[str]): the api endpoint to convert.
+        Returns:
+            str: converted mTLS api endpoint.
+        """
+        if not api_endpoint:
+            return api_endpoint
+
+        mtls_endpoint_re = re.compile(
+            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
+        )
+
+        m = mtls_endpoint_re.match(api_endpoint)
+        name, mtls, sandbox, googledomain = m.groups()
+        if mtls or not googledomain:
+            return api_endpoint
+
+        if sandbox:
+            return api_endpoint.replace(
+                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
+            )
+
+        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
+
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = "run.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
+    _DEFAULT_UNIVERSE = "googleapis.com"
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            ExecutionsClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_info(info)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            ExecutionsClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_file(
+            filename)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    from_service_account_json = from_service_account_file
+
+    @property
+    def transport(self) -> ExecutionsTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ExecutionsTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @staticmethod
+    def connector_path(project: str,location: str,connector: str,) -> str:
+        """Returns a fully-qualified connector string."""
+        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+
+    @staticmethod
+    def parse_connector_path(path: str) -> Dict[str,str]:
+        """Parses a connector path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
+        """Returns a fully-qualified crypto_key string."""
+        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+
+    @staticmethod
+    def parse_crypto_key_path(path: str) -> Dict[str,str]:
+        """Parses a crypto_key path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def execution_path(project: str,location: str,job: str,execution: str,) -> str:
+        """Returns a fully-qualified execution string."""
+        return "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
+
+    @staticmethod
+    def parse_execution_path(path: str) -> Dict[str,str]:
+        """Parses a execution path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)/executions/(?P<execution>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def job_path(project: str,location: str,job: str,) -> str:
+        """Returns a fully-qualified job string."""
+        return "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
+
+    @staticmethod
+    def parse_job_path(path: str) -> Dict[str,str]:
+        """Parses a job path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_path(project: str,secret: str,) -> str:
+        """Returns a fully-qualified secret string."""
+        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+
+    @staticmethod
+    def parse_secret_path(path: str) -> Dict[str,str]:
+        """Parses a secret path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_version_path(project: str,secret: str,version: str,) -> str:
+        """Returns a fully-qualified secret_version string."""
+        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+
+    @staticmethod
+    def parse_secret_version_path(path: str) -> Dict[str,str]:
+        """Parses a secret_version path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_billing_account_path(billing_account: str, ) -> str:
+        """Returns a fully-qualified billing_account string."""
+        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+
+    @staticmethod
+    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
+        """Parse a billing_account path into its component segments."""
+        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_folder_path(folder: str, ) -> str:
+        """Returns a fully-qualified folder string."""
+        return "folders/{folder}".format(folder=folder, )
+
+    @staticmethod
+    def parse_common_folder_path(path: str) -> Dict[str,str]:
+        """Parse a folder path into its component segments."""
+        m = re.match(r"^folders/(?P<folder>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_organization_path(organization: str, ) -> str:
+        """Returns a fully-qualified organization string."""
+        return "organizations/{organization}".format(organization=organization, )
+
+    @staticmethod
+    def parse_common_organization_path(path: str) -> Dict[str,str]:
+        """Parse a organization path into its component segments."""
+        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_project_path(project: str, ) -> str:
+        """Returns a fully-qualified project string."""
+        return "projects/{project}".format(project=project, )
+
+    @staticmethod
+    def parse_common_project_path(path: str) -> Dict[str,str]:
+        """Parse a project path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_location_path(project: str, location: str, ) -> str:
+        """Returns a fully-qualified location string."""
+        return "projects/{project}/locations/{location}".format(project=project, location=location, )
+
+    @staticmethod
+    def parse_common_location_path(path: str) -> Dict[str,str]:
+        """Parse a location path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
+        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+
+        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
+            DeprecationWarning)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+
+        # Figure out the client cert source to use.
+        client_cert_source = None
+        if use_client_cert == "true":
+            if client_options.client_cert_source:
+                client_cert_source = client_options.client_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+
+        # Figure out which api endpoint to use.
+        if client_options.api_endpoint is not None:
+            api_endpoint = client_options.api_endpoint
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = cls.DEFAULT_ENDPOINT
+
+        return api_endpoint, client_cert_source
+
+    @staticmethod
+    def _read_environment_variables():
+        """Returns the environment variables used by the client.
+
+        Returns:
+            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
+            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
+
+        Raises:
+            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
+                any of ["true", "false"].
+            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
+                is not any of ["auto", "never", "always"].
+        """
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
+        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
+
+    @staticmethod
+    def _get_client_cert_source(provided_cert_source, use_cert_flag):
+        """Return the client cert source to be used by the client.
+
+        Args:
+            provided_cert_source (bytes): The client certificate source provided.
+            use_cert_flag (bool): A flag indicating whether to use the client certificate.
+
+        Returns:
+            bytes or None: The client cert source to be used by the client.
+        """
+        client_cert_source = None
+        if use_cert_flag:
+            if provided_cert_source:
+                client_cert_source = provided_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+        return client_cert_source
+
+    @staticmethod
+    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
+        """Return the API endpoint used by the client.
+
+        Args:
+            api_override (str): The API endpoint override. If specified, this is always
+                the return value of this function and the other arguments are not used.
+            client_cert_source (bytes): The client certificate source used by the client.
+            universe_domain (str): The universe domain used by the client.
+            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
+                Possible values are "always", "auto", or "never".
+
+        Returns:
+            str: The API endpoint to be used by the client.
+        """
+        if api_override is not None:
+            api_endpoint = api_override
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            _default_universe = ExecutionsClient._DEFAULT_UNIVERSE
+            if universe_domain != _default_universe:
+                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
+            api_endpoint = ExecutionsClient.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
+        return api_endpoint
+
+    @staticmethod
+    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
+        """Return the universe domain used by the client.
+
+        Args:
+            client_universe_domain (Optional[str]): The universe domain configured via the client options.
+            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
+
+        Returns:
+            str: The universe domain to be used by the client.
+
+        Raises:
+            ValueError: If the universe domain is an empty string.
+        """
+        universe_domain = ExecutionsClient._DEFAULT_UNIVERSE
+        if client_universe_domain is not None:
+            universe_domain = client_universe_domain
+        elif universe_domain_env is not None:
+            universe_domain = universe_domain_env
+        if len(universe_domain.strip()) == 0:
+            raise ValueError("Universe Domain cannot be an empty string.")
+        return universe_domain
+
+    def _validate_universe_domain(self):
+        """Validates client's and credentials' universe domains are consistent.
+
+        Returns:
+            bool: True iff the configured universe domain is valid.
+
+        Raises:
+            ValueError: If the configured universe domain is not valid.
+        """
+
+        # NOTE (b/349488459): universe validation is disabled until further notice.
+        return True
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used by the client instance.
+        """
+        return self._universe_domain
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, ExecutionsTransport, Callable[..., ExecutionsTransport]]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the executions client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,ExecutionsTransport,Callable[..., ExecutionsTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the ExecutionsTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that the ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client_options = client_options
+        if isinstance(self._client_options, dict):
+            self._client_options = client_options_lib.from_dict(self._client_options)
+        if self._client_options is None:
+            self._client_options = client_options_lib.ClientOptions()
+        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
+
+        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
+
+        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = ExecutionsClient._read_environment_variables()
+        self._client_cert_source = ExecutionsClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
+        self._universe_domain = ExecutionsClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
+        self._api_endpoint = None # updated below, depending on `transport`
+
+        # Initialize the universe domain validation.
+        self._is_universe_domain_valid = False
+
+        api_key_value = getattr(self._client_options, "api_key", None)
+        if api_key_value and credentials:
+            raise ValueError("client_options.api_key and credentials are mutually exclusive")
+
+        # Save or instantiate the transport.
+        # Ordinarily, we provide the transport, but allowing a custom transport
+        # instance provides an extensibility point for unusual situations.
+        transport_provided = isinstance(transport, ExecutionsTransport)
+        if transport_provided:
+            # transport is a ExecutionsTransport instance.
+            if credentials or self._client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if self._client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = cast(ExecutionsTransport, transport)
+            self._api_endpoint = self._transport.host
+
+        self._api_endpoint = (self._api_endpoint or
+            ExecutionsClient._get_api_endpoint(
+                self._client_options.api_endpoint,
+                self._client_cert_source,
+                self._universe_domain,
+                self._use_mtls_endpoint))
+
+        if not transport_provided:
+            import google.auth._default  # type: ignore
+
+            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
+                credentials = google.auth._default.get_api_key_credentials(api_key_value)
+
+            transport_init: Union[Type[ExecutionsTransport], Callable[..., ExecutionsTransport]] = (
+                ExecutionsClient.get_transport_class(transport)
+                if isinstance(transport, str) or transport is None
+                else cast(Callable[..., ExecutionsTransport], transport)
+            )
+            # initialize with the provided callable or the passed in class
+            self._transport = transport_init(
+                credentials=credentials,
+                credentials_file=self._client_options.credentials_file,
+                host=self._api_endpoint,
+                scopes=self._client_options.scopes,
+                client_cert_source_for_mtls=self._client_cert_source,
+                quota_project_id=self._client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=self._client_options.api_audience,
+            )
+
+    def get_execution(self,
+            request: Optional[Union[execution.GetExecutionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> execution.Execution:
+        r"""Gets information about an Execution.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_get_execution():
+                # Create a client
+                client = run_v2.ExecutionsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetExecutionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = client.get_execution(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.GetExecutionRequest, dict]):
+                The request object. Request message for obtaining a
+                Execution by its full name.
+            name (str):
+                Required. The full name of the Execution. Format:
+                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+                where ``{project}`` can be project id or number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Execution:
+                Execution represents the
+                configuration of a single execution. A
+                execution an immutable resource that
+                references a container image which is
+                run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, execution.GetExecutionRequest):
+            request = execution.GetExecutionRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_execution]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("name", request.name),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def list_executions(self,
+            request: Optional[Union[execution.ListExecutionsRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListExecutionsPager:
+        r"""Lists Executions from a Job. Results are sorted by
+        creation time, descending.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_list_executions():
+                # Create a client
+                client = run_v2.ExecutionsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListExecutionsRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_executions(request=request)
+
+                # Handle the response
+                for response in page_result:
+                    print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.ListExecutionsRequest, dict]):
+                The request object. Request message for retrieving a list
+                of Executions.
+            parent (str):
+                Required. The Execution from which the Executions should
+                be listed. To list all Executions across Jobs, use "-"
+                instead of Job name. Format:
+                ``projects/{project}/locations/{location}/jobs/{job}``,
+                where ``{project}`` can be project id or number.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.executions.pagers.ListExecutionsPager:
+                Response message containing a list of
+                Executions.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, execution.ListExecutionsRequest):
+            request = execution.ListExecutionsRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if parent is not None:
+                request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_executions]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("parent", request.parent),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__iter__` convenience method.
+        response = pagers.ListExecutionsPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def delete_execution(self,
+            request: Optional[Union[execution.DeleteExecutionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Deletes an Execution.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_delete_execution():
+                # Create a client
+                client = run_v2.ExecutionsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.DeleteExecutionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.delete_execution(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.DeleteExecutionRequest, dict]):
+                The request object. Request message for deleting an
+                Execution.
+            name (str):
+                Required. The name of the Execution to delete. Format:
+                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+                where ``{project}`` can be project id or number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
+                   immutable resource that references a container image
+                   which is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, execution.DeleteExecutionRequest):
+            request = execution.DeleteExecutionRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_execution]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("name", request.name),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            execution.Execution,
+            metadata_type=execution.Execution,
+        )
+
+        # Done; return the response.
+        return response
+
+    def cancel_execution(self,
+            request: Optional[Union[execution.CancelExecutionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Cancels an Execution.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_cancel_execution():
+                # Create a client
+                client = run_v2.ExecutionsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.CancelExecutionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.cancel_execution(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.CancelExecutionRequest, dict]):
+                The request object. Request message for deleting an
+                Execution.
+            name (str):
+                Required. The name of the Execution to cancel. Format:
+                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+                where ``{project}`` can be project id or number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
+                   immutable resource that references a container image
+                   which is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, execution.CancelExecutionRequest):
+            request = execution.CancelExecutionRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.cancel_execution]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("name", request.name),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            execution.Execution,
+            metadata_type=execution.Execution,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "ExecutionsClient":
+        return self
+
+    def __exit__(self, type, value, traceback):
+        """Releases underlying transport's resources.
+
+        .. warning::
+            ONLY use as a context manager if the transport is NOT shared
+            with other clients! Exiting the with block will CLOSE the transport
+            and may cause errors in other clients!
+        """
+        self.transport.close()
+
+    def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "ExecutionsClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/pagers.py
new file mode 100644
index 000000000000..ca1d1f8085a0
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/pagers.py
@@ -0,0 +1,162 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import retry_async as retries_async
+from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
+
+from google.cloud.run_v2.types import execution
+
+
+class ListExecutionsPager:
+    """A pager for iterating through ``list_executions`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListExecutionsResponse` object, and
+    provides an ``__iter__`` method to iterate through its
+    ``executions`` field.
+
+    If there are more pages, the ``__iter__`` method will make additional
+    ``ListExecutions`` requests and continue to iterate
+    through the ``executions`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListExecutionsResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., execution.ListExecutionsResponse],
+            request: execution.ListExecutionsRequest,
+            response: execution.ListExecutionsResponse,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiate the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListExecutionsRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListExecutionsResponse):
+                The initial response object.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = execution.ListExecutionsRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    def pages(self) -> Iterator[execution.ListExecutionsResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+
+    def __iter__(self) -> Iterator[execution.Execution]:
+        for page in self.pages:
+            yield from page.executions
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
+
+
+class ListExecutionsAsyncPager:
+    """A pager for iterating through ``list_executions`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListExecutionsResponse` object, and
+    provides an ``__aiter__`` method to iterate through its
+    ``executions`` field.
+
+    If there are more pages, the ``__aiter__`` method will make additional
+    ``ListExecutions`` requests and continue to iterate
+    through the ``executions`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListExecutionsResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., Awaitable[execution.ListExecutionsResponse]],
+            request: execution.ListExecutionsRequest,
+            response: execution.ListExecutionsResponse,
+            *,
+            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiates the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListExecutionsRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListExecutionsResponse):
+                The initial response object.
+            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = execution.ListExecutionsRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    async def pages(self) -> AsyncIterator[execution.ListExecutionsResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+    def __aiter__(self) -> AsyncIterator[execution.Execution]:
+        async def async_generator():
+            async for page in self.pages:
+                for response in page.executions:
+                    yield response
+
+        return async_generator()
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/README.rst
new file mode 100644
index 000000000000..6555db202c9c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/README.rst
@@ -0,0 +1,9 @@
+
+transport inheritance structure
+_______________________________
+
+`ExecutionsTransport` is the ABC for all transports.
+- public child `ExecutionsGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
+- public child `ExecutionsGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
+- private child `_BaseExecutionsRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
+- public child `ExecutionsRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/__init__.py
new file mode 100644
index 000000000000..1cc3edee2d20
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+from typing import Dict, Type
+
+from .base import ExecutionsTransport
+from .grpc import ExecutionsGrpcTransport
+from .grpc_asyncio import ExecutionsGrpcAsyncIOTransport
+from .rest import ExecutionsRestTransport
+from .rest import ExecutionsRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[ExecutionsTransport]]
+_transport_registry['grpc'] = ExecutionsGrpcTransport
+_transport_registry['grpc_asyncio'] = ExecutionsGrpcAsyncIOTransport
+_transport_registry['rest'] = ExecutionsRestTransport
+
+__all__ = (
+    'ExecutionsTransport',
+    'ExecutionsGrpcTransport',
+    'ExecutionsGrpcAsyncIOTransport',
+    'ExecutionsRestTransport',
+    'ExecutionsRestInterceptor',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/base.py
new file mode 100644
index 000000000000..973ae0051b9c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/base.py
@@ -0,0 +1,260 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 abc
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+import google.auth  # type: ignore
+import google.api_core
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import operations_v1
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.oauth2 import service_account # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import execution
+from google.longrunning import operations_pb2 # type: ignore
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class ExecutionsTransport(abc.ABC):
+    """Abstract transport class for Executions."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'run.googleapis.com'
+    def __init__(
+            self, *,
+            host: str = DEFAULT_HOST,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            **kwargs,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A list of scopes.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+        """
+
+        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
+
+        # Save the scopes.
+        self._scopes = scopes
+        if not hasattr(self, "_ignore_credentials"):
+            self._ignore_credentials: bool = False
+
+        # If no credentials are provided, then determine the appropriate
+        # defaults.
+        if credentials and credentials_file:
+            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
+
+        if credentials_file is not None:
+            credentials, _ = google.auth.load_credentials_from_file(
+                                credentials_file,
+                                **scopes_kwargs,
+                                quota_project_id=quota_project_id
+                            )
+        elif credentials is None and not self._ignore_credentials:
+            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
+            # Don't apply audience if the credentials file passed from user.
+            if hasattr(credentials, "with_gdch_audience"):
+                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
+
+        # If the credentials are service account credentials, then always try to use self signed JWT.
+        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
+            credentials = credentials.with_always_use_jwt_access(True)
+
+        # Save the credentials.
+        self._credentials = credentials
+
+        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
+        if ':' not in host:
+            host += ':443'
+        self._host = host
+
+    @property
+    def host(self):
+        return self._host
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.get_execution: gapic_v1.method.wrap_method(
+                self.get_execution,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_executions: gapic_v1.method.wrap_method(
+                self.list_executions,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_execution: gapic_v1.method.wrap_method(
+                self.delete_execution,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.cancel_execution: gapic_v1.method.wrap_method(
+                self.cancel_execution,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: gapic_v1.method.wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: gapic_v1.method.wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: gapic_v1.method.wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: gapic_v1.method.wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+         }
+
+    def close(self):
+        """Closes resources associated with the transport.
+
+       .. warning::
+            Only call this method if the transport is NOT shared
+            with other clients - this may cause errors in other clients!
+        """
+        raise NotImplementedError()
+
+    @property
+    def operations_client(self):
+        """Return the client designed to process long-running operations."""
+        raise NotImplementedError()
+
+    @property
+    def get_execution(self) -> Callable[
+            [execution.GetExecutionRequest],
+            Union[
+                execution.Execution,
+                Awaitable[execution.Execution]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_executions(self) -> Callable[
+            [execution.ListExecutionsRequest],
+            Union[
+                execution.ListExecutionsResponse,
+                Awaitable[execution.ListExecutionsResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def delete_execution(self) -> Callable[
+            [execution.DeleteExecutionRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def cancel_execution(self) -> Callable[
+            [execution.CancelExecutionRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[
+        [operations_pb2.ListOperationsRequest],
+        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.GetOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.DeleteOperationRequest],
+        None,
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.WaitOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'ExecutionsTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc.py
new file mode 100644
index 000000000000..ece28f1a3664
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc.py
@@ -0,0 +1,441 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 warnings
+from typing import Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import grpc_helpers
+from google.api_core import operations_v1
+from google.api_core import gapic_v1
+import google.auth                         # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import execution
+from google.longrunning import operations_pb2 # type: ignore
+from .base import ExecutionsTransport, DEFAULT_CLIENT_INFO
+
+
+class ExecutionsGrpcTransport(ExecutionsTransport):
+    """gRPC backend transport for Executions.
+
+    Cloud Run Execution Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+    _stubs: Dict[str, Callable]
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[grpc.Channel, Callable[..., 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,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if a ``channel`` instance is provided.
+            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+        self._operations_client: Optional[operations_v1.OperationsClient] = None
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, grpc.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._prep_wrapped_messages(client_info)
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> grpc.Channel:
+        """Create and return a gRPC channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            grpc.Channel: A gRPC channel object.
+
+        Raises:
+            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+
+        return grpc_helpers.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    @property
+    def grpc_channel(self) -> grpc.Channel:
+        """Return the channel designed to connect to this service.
+        """
+        return self._grpc_channel
+
+    @property
+    def operations_client(self) -> operations_v1.OperationsClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Quick check: Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            self._operations_client = operations_v1.OperationsClient(
+                self.grpc_channel
+            )
+
+        # Return the client from cache.
+        return self._operations_client
+
+    @property
+    def get_execution(self) -> Callable[
+            [execution.GetExecutionRequest],
+            execution.Execution]:
+        r"""Return a callable for the get execution method over gRPC.
+
+        Gets information about an Execution.
+
+        Returns:
+            Callable[[~.GetExecutionRequest],
+                    ~.Execution]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_execution' not in self._stubs:
+            self._stubs['get_execution'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Executions/GetExecution',
+                request_serializer=execution.GetExecutionRequest.serialize,
+                response_deserializer=execution.Execution.deserialize,
+            )
+        return self._stubs['get_execution']
+
+    @property
+    def list_executions(self) -> Callable[
+            [execution.ListExecutionsRequest],
+            execution.ListExecutionsResponse]:
+        r"""Return a callable for the list executions method over gRPC.
+
+        Lists Executions from a Job. Results are sorted by
+        creation time, descending.
+
+        Returns:
+            Callable[[~.ListExecutionsRequest],
+                    ~.ListExecutionsResponse]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_executions' not in self._stubs:
+            self._stubs['list_executions'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Executions/ListExecutions',
+                request_serializer=execution.ListExecutionsRequest.serialize,
+                response_deserializer=execution.ListExecutionsResponse.deserialize,
+            )
+        return self._stubs['list_executions']
+
+    @property
+    def delete_execution(self) -> Callable[
+            [execution.DeleteExecutionRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the delete execution method over gRPC.
+
+        Deletes an Execution.
+
+        Returns:
+            Callable[[~.DeleteExecutionRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'delete_execution' not in self._stubs:
+            self._stubs['delete_execution'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Executions/DeleteExecution',
+                request_serializer=execution.DeleteExecutionRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['delete_execution']
+
+    @property
+    def cancel_execution(self) -> Callable[
+            [execution.CancelExecutionRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the cancel execution method over gRPC.
+
+        Cancels an Execution.
+
+        Returns:
+            Callable[[~.CancelExecutionRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'cancel_execution' not in self._stubs:
+            self._stubs['cancel_execution'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Executions/CancelExecution',
+                request_serializer=execution.CancelExecutionRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['cancel_execution']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'ExecutionsGrpcTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc_asyncio.py
new file mode 100644
index 000000000000..dc788d50ee15
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc_asyncio.py
@@ -0,0 +1,497 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 inspect
+import warnings
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry_async as retries
+from google.api_core import operations_v1
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc                        # type: ignore
+from grpc.experimental import aio  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import execution
+from google.longrunning import operations_pb2 # type: ignore
+from .base import ExecutionsTransport, DEFAULT_CLIENT_INFO
+from .grpc import ExecutionsGrpcTransport
+
+
+class ExecutionsGrpcAsyncIOTransport(ExecutionsTransport):
+    """gRPC AsyncIO backend transport for Executions.
+
+    Cloud Run Execution Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+
+    _grpc_channel: aio.Channel
+    _stubs: Dict[str, Callable] = {}
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> aio.Channel:
+        """Create and return a gRPC AsyncIO channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            aio.Channel: A gRPC AsyncIO channel object.
+        """
+
+        return grpc_helpers_async.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[aio.Channel, Callable[..., 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,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, aio.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def grpc_channel(self) -> aio.Channel:
+        """Create the channel designed to connect to this service.
+
+        This property caches on the instance; repeated calls return
+        the same channel.
+        """
+        # Return the channel from cache.
+        return self._grpc_channel
+
+    @property
+    def operations_client(self) -> operations_v1.OperationsAsyncClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Quick check: Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            self._operations_client = operations_v1.OperationsAsyncClient(
+                self.grpc_channel
+            )
+
+        # Return the client from cache.
+        return self._operations_client
+
+    @property
+    def get_execution(self) -> Callable[
+            [execution.GetExecutionRequest],
+            Awaitable[execution.Execution]]:
+        r"""Return a callable for the get execution method over gRPC.
+
+        Gets information about an Execution.
+
+        Returns:
+            Callable[[~.GetExecutionRequest],
+                    Awaitable[~.Execution]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_execution' not in self._stubs:
+            self._stubs['get_execution'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Executions/GetExecution',
+                request_serializer=execution.GetExecutionRequest.serialize,
+                response_deserializer=execution.Execution.deserialize,
+            )
+        return self._stubs['get_execution']
+
+    @property
+    def list_executions(self) -> Callable[
+            [execution.ListExecutionsRequest],
+            Awaitable[execution.ListExecutionsResponse]]:
+        r"""Return a callable for the list executions method over gRPC.
+
+        Lists Executions from a Job. Results are sorted by
+        creation time, descending.
+
+        Returns:
+            Callable[[~.ListExecutionsRequest],
+                    Awaitable[~.ListExecutionsResponse]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_executions' not in self._stubs:
+            self._stubs['list_executions'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Executions/ListExecutions',
+                request_serializer=execution.ListExecutionsRequest.serialize,
+                response_deserializer=execution.ListExecutionsResponse.deserialize,
+            )
+        return self._stubs['list_executions']
+
+    @property
+    def delete_execution(self) -> Callable[
+            [execution.DeleteExecutionRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the delete execution method over gRPC.
+
+        Deletes an Execution.
+
+        Returns:
+            Callable[[~.DeleteExecutionRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'delete_execution' not in self._stubs:
+            self._stubs['delete_execution'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Executions/DeleteExecution',
+                request_serializer=execution.DeleteExecutionRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['delete_execution']
+
+    @property
+    def cancel_execution(self) -> Callable[
+            [execution.CancelExecutionRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the cancel execution method over gRPC.
+
+        Cancels an Execution.
+
+        Returns:
+            Callable[[~.CancelExecutionRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'cancel_execution' not in self._stubs:
+            self._stubs['cancel_execution'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Executions/CancelExecution',
+                request_serializer=execution.CancelExecutionRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['cancel_execution']
+
+    def _prep_wrapped_messages(self, client_info):
+        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
+        self._wrapped_methods = {
+            self.get_execution: self._wrap_method(
+                self.get_execution,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_executions: self._wrap_method(
+                self.list_executions,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_execution: self._wrap_method(
+                self.delete_execution,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.cancel_execution: self._wrap_method(
+                self.cancel_execution,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: self._wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: self._wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: self._wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: self._wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+        }
+
+    def _wrap_method(self, func, *args, **kwargs):
+        if self._wrap_with_kind:  # pragma: NO COVER
+            kwargs["kind"] = self.kind
+        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
+
+    def close(self):
+        return self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc_asyncio"
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+
+__all__ = (
+    'ExecutionsGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest.py
new file mode 100644
index 000000000000..7fd83961d5e9
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest.py
@@ -0,0 +1,1026 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+
+from google.auth.transport.requests import AuthorizedSession  # type: ignore
+import json  # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry as retries
+from google.api_core import rest_helpers
+from google.api_core import rest_streaming
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.api_core import operations_v1
+from google.cloud.location import locations_pb2 # type: ignore
+
+from requests import __version__ as requests_version
+import dataclasses
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+
+from google.cloud.run_v2.types import execution
+from google.longrunning import operations_pb2  # type: ignore
+
+
+from .rest_base import _BaseExecutionsRestTransport
+from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=f"requests@{requests_version}",
+)
+
+
+class ExecutionsRestInterceptor:
+    """Interceptor for Executions.
+
+    Interceptors are used to manipulate requests, request metadata, and responses
+    in arbitrary ways.
+    Example use cases include:
+    * Logging
+    * Verifying requests according to service or custom semantics
+    * Stripping extraneous information from responses
+
+    These use cases and more can be enabled by injecting an
+    instance of a custom subclass when constructing the ExecutionsRestTransport.
+
+    .. code-block:: python
+        class MyCustomExecutionsInterceptor(ExecutionsRestInterceptor):
+            def pre_cancel_execution(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_cancel_execution(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_delete_execution(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_delete_execution(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_get_execution(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_get_execution(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_list_executions(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_list_executions(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = ExecutionsRestTransport(interceptor=MyCustomExecutionsInterceptor())
+        client = ExecutionsClient(transport=transport)
+
+
+    """
+    def pre_cancel_execution(self, request: execution.CancelExecutionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[execution.CancelExecutionRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for cancel_execution
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Executions server.
+        """
+        return request, metadata
+
+    def post_cancel_execution(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for cancel_execution
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Executions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_execution(self, request: execution.DeleteExecutionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[execution.DeleteExecutionRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_execution
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Executions server.
+        """
+        return request, metadata
+
+    def post_delete_execution(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for delete_execution
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Executions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_execution(self, request: execution.GetExecutionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[execution.GetExecutionRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_execution
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Executions server.
+        """
+        return request, metadata
+
+    def post_get_execution(self, response: execution.Execution) -> execution.Execution:
+        """Post-rpc interceptor for get_execution
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Executions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_executions(self, request: execution.ListExecutionsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[execution.ListExecutionsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_executions
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Executions server.
+        """
+        return request, metadata
+
+    def post_list_executions(self, response: execution.ListExecutionsResponse) -> execution.ListExecutionsResponse:
+        """Post-rpc interceptor for list_executions
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Executions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_operation(
+        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Executions server.
+        """
+        return request, metadata
+
+    def post_delete_operation(
+        self, response: None
+    ) -> None:
+        """Post-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Executions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_operation(
+        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Executions server.
+        """
+        return request, metadata
+
+    def post_get_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Executions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_operations(
+        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Executions server.
+        """
+        return request, metadata
+
+    def post_list_operations(
+        self, response: operations_pb2.ListOperationsResponse
+    ) -> operations_pb2.ListOperationsResponse:
+        """Post-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Executions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_wait_operation(
+        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Executions server.
+        """
+        return request, metadata
+
+    def post_wait_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Executions server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class ExecutionsRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: ExecutionsRestInterceptor
+
+
+class ExecutionsRestTransport(_BaseExecutionsRestTransport):
+    """REST backend synchronous transport for Executions.
+
+    Cloud Run Execution Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            url_scheme: str = 'https',
+            interceptor: Optional[ExecutionsRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
+                certificate to configure mutual TLS HTTP channel. It is ignored
+                if ``channel`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
+        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
+        # credentials object
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            url_scheme=url_scheme,
+            api_audience=api_audience
+        )
+        self._session = AuthorizedSession(
+            self._credentials, default_host=self.DEFAULT_HOST)
+        self._operations_client: Optional[operations_v1.AbstractOperationsClient] = None
+        if client_cert_source_for_mtls:
+            self._session.configure_mtls_channel(client_cert_source_for_mtls)
+        self._interceptor = interceptor or ExecutionsRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def operations_client(self) -> operations_v1.AbstractOperationsClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            http_options: Dict[str, List[Dict[str, str]]] = {
+                'google.longrunning.Operations.DeleteOperation': [
+                    {
+                        'method': 'delete',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+                    },
+                ],
+                'google.longrunning.Operations.GetOperation': [
+                    {
+                        'method': 'get',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+                    },
+                ],
+                'google.longrunning.Operations.ListOperations': [
+                    {
+                        'method': 'get',
+                        'uri': '/v2/{name=projects/*/locations/*}/operations',
+                    },
+                ],
+                'google.longrunning.Operations.WaitOperation': [
+                    {
+                        'method': 'post',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                        'body': '*',
+                    },
+                ],
+            }
+
+            rest_transport = operations_v1.OperationsRestTransport(
+                    host=self._host,
+                    # use the credentials which are saved
+                    credentials=self._credentials,
+                    scopes=self._scopes,
+                    http_options=http_options,
+                    path_prefix="v2")
+
+            self._operations_client = operations_v1.AbstractOperationsClient(transport=rest_transport)
+
+        # Return the client from cache.
+        return self._operations_client
+
+    class _CancelExecution(_BaseExecutionsRestTransport._BaseCancelExecution, ExecutionsRestStub):
+        def __hash__(self):
+            return hash("ExecutionsRestTransport.CancelExecution")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: execution.CancelExecutionRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the cancel execution method over HTTP.
+
+            Args:
+                request (~.execution.CancelExecutionRequest):
+                    The request object. Request message for deleting an
+                Execution.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseExecutionsRestTransport._BaseCancelExecution._get_http_options()
+            request, metadata = self._interceptor.pre_cancel_execution(request, metadata)
+            transcoded_request = _BaseExecutionsRestTransport._BaseCancelExecution._get_transcoded_request(http_options, request)
+
+            body = _BaseExecutionsRestTransport._BaseCancelExecution._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseExecutionsRestTransport._BaseCancelExecution._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ExecutionsRestTransport._CancelExecution._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_cancel_execution(resp)
+            return resp
+
+    class _DeleteExecution(_BaseExecutionsRestTransport._BaseDeleteExecution, ExecutionsRestStub):
+        def __hash__(self):
+            return hash("ExecutionsRestTransport.DeleteExecution")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: execution.DeleteExecutionRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the delete execution method over HTTP.
+
+            Args:
+                request (~.execution.DeleteExecutionRequest):
+                    The request object. Request message for deleting an
+                Execution.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseExecutionsRestTransport._BaseDeleteExecution._get_http_options()
+            request, metadata = self._interceptor.pre_delete_execution(request, metadata)
+            transcoded_request = _BaseExecutionsRestTransport._BaseDeleteExecution._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseExecutionsRestTransport._BaseDeleteExecution._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ExecutionsRestTransport._DeleteExecution._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_delete_execution(resp)
+            return resp
+
+    class _GetExecution(_BaseExecutionsRestTransport._BaseGetExecution, ExecutionsRestStub):
+        def __hash__(self):
+            return hash("ExecutionsRestTransport.GetExecution")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: execution.GetExecutionRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> execution.Execution:
+            r"""Call the get execution method over HTTP.
+
+            Args:
+                request (~.execution.GetExecutionRequest):
+                    The request object. Request message for obtaining a
+                Execution by its full name.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.execution.Execution:
+                    Execution represents the
+                configuration of a single execution. A
+                execution an immutable resource that
+                references a container image which is
+                run to completion.
+
+            """
+
+            http_options = _BaseExecutionsRestTransport._BaseGetExecution._get_http_options()
+            request, metadata = self._interceptor.pre_get_execution(request, metadata)
+            transcoded_request = _BaseExecutionsRestTransport._BaseGetExecution._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseExecutionsRestTransport._BaseGetExecution._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ExecutionsRestTransport._GetExecution._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = execution.Execution()
+            pb_resp = execution.Execution.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_get_execution(resp)
+            return resp
+
+    class _ListExecutions(_BaseExecutionsRestTransport._BaseListExecutions, ExecutionsRestStub):
+        def __hash__(self):
+            return hash("ExecutionsRestTransport.ListExecutions")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: execution.ListExecutionsRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> execution.ListExecutionsResponse:
+            r"""Call the list executions method over HTTP.
+
+            Args:
+                request (~.execution.ListExecutionsRequest):
+                    The request object. Request message for retrieving a list
+                of Executions.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.execution.ListExecutionsResponse:
+                    Response message containing a list of
+                Executions.
+
+            """
+
+            http_options = _BaseExecutionsRestTransport._BaseListExecutions._get_http_options()
+            request, metadata = self._interceptor.pre_list_executions(request, metadata)
+            transcoded_request = _BaseExecutionsRestTransport._BaseListExecutions._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseExecutionsRestTransport._BaseListExecutions._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ExecutionsRestTransport._ListExecutions._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = execution.ListExecutionsResponse()
+            pb_resp = execution.ListExecutionsResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_list_executions(resp)
+            return resp
+
+    @property
+    def cancel_execution(self) -> Callable[
+            [execution.CancelExecutionRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._CancelExecution(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_execution(self) -> Callable[
+            [execution.DeleteExecutionRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._DeleteExecution(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def get_execution(self) -> Callable[
+            [execution.GetExecutionRequest],
+            execution.Execution]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._GetExecution(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def list_executions(self) -> Callable[
+            [execution.ListExecutionsRequest],
+            execution.ListExecutionsResponse]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._ListExecutions(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_operation(self):
+        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _DeleteOperation(_BaseExecutionsRestTransport._BaseDeleteOperation, ExecutionsRestStub):
+        def __hash__(self):
+            return hash("ExecutionsRestTransport.DeleteOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.DeleteOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> None:
+
+            r"""Call the delete operation method over HTTP.
+
+            Args:
+                request (operations_pb2.DeleteOperationRequest):
+                    The request object for DeleteOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+            """
+
+            http_options = _BaseExecutionsRestTransport._BaseDeleteOperation._get_http_options()
+            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
+            transcoded_request = _BaseExecutionsRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseExecutionsRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ExecutionsRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            return self._interceptor.post_delete_operation(None)
+
+    @property
+    def get_operation(self):
+        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _GetOperation(_BaseExecutionsRestTransport._BaseGetOperation, ExecutionsRestStub):
+        def __hash__(self):
+            return hash("ExecutionsRestTransport.GetOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.GetOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the get operation method over HTTP.
+
+            Args:
+                request (operations_pb2.GetOperationRequest):
+                    The request object for GetOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from GetOperation method.
+            """
+
+            http_options = _BaseExecutionsRestTransport._BaseGetOperation._get_http_options()
+            request, metadata = self._interceptor.pre_get_operation(request, metadata)
+            transcoded_request = _BaseExecutionsRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseExecutionsRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ExecutionsRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_get_operation(resp)
+            return resp
+
+    @property
+    def list_operations(self):
+        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
+
+    class _ListOperations(_BaseExecutionsRestTransport._BaseListOperations, ExecutionsRestStub):
+        def __hash__(self):
+            return hash("ExecutionsRestTransport.ListOperations")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.ListOperationsRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.ListOperationsResponse:
+
+            r"""Call the list operations method over HTTP.
+
+            Args:
+                request (operations_pb2.ListOperationsRequest):
+                    The request object for ListOperations method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.ListOperationsResponse: Response from ListOperations method.
+            """
+
+            http_options = _BaseExecutionsRestTransport._BaseListOperations._get_http_options()
+            request, metadata = self._interceptor.pre_list_operations(request, metadata)
+            transcoded_request = _BaseExecutionsRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseExecutionsRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ExecutionsRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.ListOperationsResponse()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_list_operations(resp)
+            return resp
+
+    @property
+    def wait_operation(self):
+        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _WaitOperation(_BaseExecutionsRestTransport._BaseWaitOperation, ExecutionsRestStub):
+        def __hash__(self):
+            return hash("ExecutionsRestTransport.WaitOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.WaitOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the wait operation method over HTTP.
+
+            Args:
+                request (operations_pb2.WaitOperationRequest):
+                    The request object for WaitOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from WaitOperation method.
+            """
+
+            http_options = _BaseExecutionsRestTransport._BaseWaitOperation._get_http_options()
+            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
+            transcoded_request = _BaseExecutionsRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
+
+            body = _BaseExecutionsRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseExecutionsRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ExecutionsRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_wait_operation(resp)
+            return resp
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'ExecutionsRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest_base.py
new file mode 100644
index 000000000000..9d79aed15e73
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest_base.py
@@ -0,0 +1,356 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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  # type: ignore
+from google.api_core import path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.cloud.location import locations_pb2 # type: ignore
+from .base import ExecutionsTransport, DEFAULT_CLIENT_INFO
+
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+
+
+from google.cloud.run_v2.types import execution
+from google.longrunning import operations_pb2  # type: ignore
+
+
+class _BaseExecutionsRestTransport(ExecutionsTransport):
+    """Base REST backend transport for Executions.
+
+    Note: This class is not meant to be used directly. Use its sync and
+    async sub-classes instead.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[Any] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            url_scheme: str = 'https',
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[Any]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
+        if maybe_url_match is None:
+            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
+
+        url_match_items = maybe_url_match.groupdict()
+
+        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
+
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience
+        )
+
+    class _BaseCancelExecution:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{name=projects/*/locations/*/jobs/*/executions/*}:cancel',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = execution.CancelExecutionRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseExecutionsRestTransport._BaseCancelExecution._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteExecution:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/jobs/*/executions/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = execution.DeleteExecutionRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseExecutionsRestTransport._BaseDeleteExecution._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseGetExecution:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/jobs/*/executions/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = execution.GetExecutionRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseExecutionsRestTransport._BaseGetExecution._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseListExecutions:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{parent=projects/*/locations/*/jobs/*}/executions',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = execution.ListExecutionsRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseExecutionsRestTransport._BaseListExecutions._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseGetOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseListOperations:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*}/operations',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseWaitOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            body = json.dumps(transcoded_request['body'])
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+
+__all__=(
+    '_BaseExecutionsRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/__init__.py
new file mode 100644
index 000000000000..32941b54dc83
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from .client import JobsClient
+from .async_client import JobsAsyncClient
+
+__all__ = (
+    'JobsClient',
+    'JobsAsyncClient',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/async_client.py
new file mode 100644
index 000000000000..2086e535ff29
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/async_client.py
@@ -0,0 +1,1541 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core.client_options import ClientOptions
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry_async as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+
+try:
+    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import operation  # type: ignore
+from google.api_core import operation_async  # type: ignore
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.jobs import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import execution
+from google.cloud.run_v2.types import execution_template
+from google.cloud.run_v2.types import job
+from google.cloud.run_v2.types import job as gcr_job
+from google.cloud.run_v2.types import vendor_settings
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import JobsTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import JobsGrpcAsyncIOTransport
+from .client import JobsClient
+
+
+class JobsAsyncClient:
+    """Cloud Run Job Control Plane API."""
+
+    _client: JobsClient
+
+    # Copy defaults from the synchronous client for use here.
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = JobsClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = JobsClient.DEFAULT_MTLS_ENDPOINT
+    _DEFAULT_ENDPOINT_TEMPLATE = JobsClient._DEFAULT_ENDPOINT_TEMPLATE
+    _DEFAULT_UNIVERSE = JobsClient._DEFAULT_UNIVERSE
+
+    connector_path = staticmethod(JobsClient.connector_path)
+    parse_connector_path = staticmethod(JobsClient.parse_connector_path)
+    crypto_key_path = staticmethod(JobsClient.crypto_key_path)
+    parse_crypto_key_path = staticmethod(JobsClient.parse_crypto_key_path)
+    execution_path = staticmethod(JobsClient.execution_path)
+    parse_execution_path = staticmethod(JobsClient.parse_execution_path)
+    job_path = staticmethod(JobsClient.job_path)
+    parse_job_path = staticmethod(JobsClient.parse_job_path)
+    policy_path = staticmethod(JobsClient.policy_path)
+    parse_policy_path = staticmethod(JobsClient.parse_policy_path)
+    secret_path = staticmethod(JobsClient.secret_path)
+    parse_secret_path = staticmethod(JobsClient.parse_secret_path)
+    secret_version_path = staticmethod(JobsClient.secret_version_path)
+    parse_secret_version_path = staticmethod(JobsClient.parse_secret_version_path)
+    common_billing_account_path = staticmethod(JobsClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(JobsClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(JobsClient.common_folder_path)
+    parse_common_folder_path = staticmethod(JobsClient.parse_common_folder_path)
+    common_organization_path = staticmethod(JobsClient.common_organization_path)
+    parse_common_organization_path = staticmethod(JobsClient.parse_common_organization_path)
+    common_project_path = staticmethod(JobsClient.common_project_path)
+    parse_common_project_path = staticmethod(JobsClient.parse_common_project_path)
+    common_location_path = staticmethod(JobsClient.common_location_path)
+    parse_common_location_path = staticmethod(JobsClient.parse_common_location_path)
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            JobsAsyncClient: The constructed client.
+        """
+        return JobsClient.from_service_account_info.__func__(JobsAsyncClient, info, *args, **kwargs)  # type: ignore
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            JobsAsyncClient: The constructed client.
+        """
+        return JobsClient.from_service_account_file.__func__(JobsAsyncClient, filename, *args, **kwargs)  # type: ignore
+
+    from_service_account_json = from_service_account_file
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
+        """Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+        return JobsClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> JobsTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            JobsTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._client._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used
+                by the client instance.
+        """
+        return self._client._universe_domain
+
+    get_transport_class = JobsClient.get_transport_class
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, JobsTransport, Callable[..., JobsTransport]]] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the jobs async client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,JobsTransport,Callable[..., JobsTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport to use.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the JobsTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = JobsClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def create_job(self,
+            request: Optional[Union[gcr_job.CreateJobRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            job: Optional[gcr_job.Job] = None,
+            job_id: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Creates a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_create_job():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                job = run_v2.Job()
+                job.start_execution_token = "start_execution_token_value"
+                job.template.template.max_retries = 1187
+
+                request = run_v2.CreateJobRequest(
+                    parent="parent_value",
+                    job=job,
+                    job_id="job_id_value",
+                )
+
+                # Make the request
+                operation = client.create_job(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.CreateJobRequest, dict]]):
+                The request object. Request message for creating a Job.
+            parent (:class:`str`):
+                Required. The location and project in
+                which this Job should be created.
+                Format:
+                projects/{project}/locations/{location},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            job (:class:`google.cloud.run_v2.types.Job`):
+                Required. The Job instance to create.
+                This corresponds to the ``job`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            job_id (:class:`str`):
+                Required. The unique identifier for the Job. The name of
+                the job becomes {parent}/jobs/{job_id}.
+
+                This corresponds to the ``job_id`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
+                   container image that is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent, job, job_id])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, gcr_job.CreateJobRequest):
+            request = gcr_job.CreateJobRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if parent is not None:
+            request.parent = parent
+        if job is not None:
+            request.job = job
+        if job_id is not None:
+            request.job_id = job_id
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.create_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            gcr_job.Job,
+            metadata_type=gcr_job.Job,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def get_job(self,
+            request: Optional[Union[job.GetJobRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> job.Job:
+        r"""Gets information about a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_get_job():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetJobRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = await client.get_job(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.GetJobRequest, dict]]):
+                The request object. Request message for obtaining a Job
+                by its full name.
+            name (:class:`str`):
+                Required. The full name of the Job.
+                Format:
+                projects/{project}/locations/{location}/jobs/{job},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Job:
+                Job represents the configuration of a
+                single job, which references a container
+                image that is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, job.GetJobRequest):
+            request = job.GetJobRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.get_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_jobs(self,
+            request: Optional[Union[job.ListJobsRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListJobsAsyncPager:
+        r"""Lists Jobs. Results are sorted by creation time,
+        descending.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_list_jobs():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListJobsRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_jobs(request=request)
+
+                # Handle the response
+                async for response in page_result:
+                    print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.ListJobsRequest, dict]]):
+                The request object. Request message for retrieving a list
+                of Jobs.
+            parent (:class:`str`):
+                Required. The location and project to
+                list resources on. Format:
+                projects/{project}/locations/{location},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.jobs.pagers.ListJobsAsyncPager:
+                Response message containing a list of
+                Jobs.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, job.ListJobsRequest):
+            request = job.ListJobsRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if parent is not None:
+            request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.list_jobs]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__aiter__` convenience method.
+        response = pagers.ListJobsAsyncPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def update_job(self,
+            request: Optional[Union[gcr_job.UpdateJobRequest, dict]] = None,
+            *,
+            job: Optional[gcr_job.Job] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Updates a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_update_job():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                job = run_v2.Job()
+                job.start_execution_token = "start_execution_token_value"
+                job.template.template.max_retries = 1187
+
+                request = run_v2.UpdateJobRequest(
+                    job=job,
+                )
+
+                # Make the request
+                operation = client.update_job(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.UpdateJobRequest, dict]]):
+                The request object. Request message for updating a Job.
+            job (:class:`google.cloud.run_v2.types.Job`):
+                Required. The Job to be updated.
+                This corresponds to the ``job`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
+                   container image that is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([job])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, gcr_job.UpdateJobRequest):
+            request = gcr_job.UpdateJobRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if job is not None:
+            request.job = job
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.update_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.job.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            gcr_job.Job,
+            metadata_type=gcr_job.Job,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def delete_job(self,
+            request: Optional[Union[job.DeleteJobRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Deletes a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_delete_job():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.DeleteJobRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.delete_job(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.DeleteJobRequest, dict]]):
+                The request object. Request message to delete a Job by
+                its full name.
+            name (:class:`str`):
+                Required. The full name of the Job.
+                Format:
+                projects/{project}/locations/{location}/jobs/{job},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
+                   container image that is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, job.DeleteJobRequest):
+            request = job.DeleteJobRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.delete_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            job.Job,
+            metadata_type=job.Job,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def run_job(self,
+            request: Optional[Union[job.RunJobRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Triggers creation of a new Execution of this Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_run_job():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.RunJobRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.run_job(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.RunJobRequest, dict]]):
+                The request object. Request message to create a new
+                Execution of a Job.
+            name (:class:`str`):
+                Required. The full name of the Job.
+                Format:
+                projects/{project}/locations/{location}/jobs/{job},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
+                   immutable resource that references a container image
+                   which is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, job.RunJobRequest):
+            request = job.RunJobRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.run_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            execution.Execution,
+            metadata_type=execution.Execution,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def get_iam_policy(self,
+            request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> policy_pb2.Policy:
+        r"""Gets the IAM Access Control policy currently in
+        effect for the given Job. This result does not include
+        any inherited policies.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            async def sample_get_iam_policy():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.GetIamPolicyRequest(
+                    resource="resource_value",
+                )
+
+                # Make the request
+                response = await client.get_iam_policy(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]]):
+                The request object. Request message for ``GetIamPolicy`` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.policy_pb2.Policy:
+                An Identity and Access Management (IAM) policy, which specifies access
+                   controls for Google Cloud resources.
+
+                   A Policy is a collection of bindings. A binding binds
+                   one or more members, or principals, to a single role.
+                   Principals can be user accounts, service accounts,
+                   Google groups, and domains (such as G Suite). A role
+                   is a named list of permissions; each role can be an
+                   IAM predefined role or a user-created custom role.
+
+                   For some types of Google Cloud resources, a binding
+                   can also specify a condition, which is a logical
+                   expression that allows access to a resource only if
+                   the expression evaluates to true. A condition can add
+                   constraints based on attributes of the request, the
+                   resource, or both. To learn which resources support
+                   conditions in their IAM policies, see the [IAM
+                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
+
+                   **JSON example:**
+
+                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
+
+                   **YAML example:**
+
+                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
+
+                   For a description of IAM and its features, see the
+                   [IAM
+                   documentation](\ https://cloud.google.com/iam/docs/).
+
+        """
+        # Create or coerce a protobuf request object.
+         # - The request isn't a proto-plus wrapped type,
+        #   so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = iam_policy_pb2.GetIamPolicyRequest(**request)
+        elif not request:
+            request = iam_policy_pb2.GetIamPolicyRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.get_iam_policy]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def set_iam_policy(self,
+            request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> policy_pb2.Policy:
+        r"""Sets the IAM Access control policy for the specified
+        Job. Overwrites any existing policy.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            async def sample_set_iam_policy():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.SetIamPolicyRequest(
+                    resource="resource_value",
+                )
+
+                # Make the request
+                response = await client.set_iam_policy(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]]):
+                The request object. Request message for ``SetIamPolicy`` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.policy_pb2.Policy:
+                An Identity and Access Management (IAM) policy, which specifies access
+                   controls for Google Cloud resources.
+
+                   A Policy is a collection of bindings. A binding binds
+                   one or more members, or principals, to a single role.
+                   Principals can be user accounts, service accounts,
+                   Google groups, and domains (such as G Suite). A role
+                   is a named list of permissions; each role can be an
+                   IAM predefined role or a user-created custom role.
+
+                   For some types of Google Cloud resources, a binding
+                   can also specify a condition, which is a logical
+                   expression that allows access to a resource only if
+                   the expression evaluates to true. A condition can add
+                   constraints based on attributes of the request, the
+                   resource, or both. To learn which resources support
+                   conditions in their IAM policies, see the [IAM
+                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
+
+                   **JSON example:**
+
+                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
+
+                   **YAML example:**
+
+                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
+
+                   For a description of IAM and its features, see the
+                   [IAM
+                   documentation](\ https://cloud.google.com/iam/docs/).
+
+        """
+        # Create or coerce a protobuf request object.
+         # - The request isn't a proto-plus wrapped type,
+        #   so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = iam_policy_pb2.SetIamPolicyRequest(**request)
+        elif not request:
+            request = iam_policy_pb2.SetIamPolicyRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.set_iam_policy]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def test_iam_permissions(self,
+            request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> iam_policy_pb2.TestIamPermissionsResponse:
+        r"""Returns permissions that a caller has on the
+        specified Project.
+        There are no permissions required for making this API
+        call.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            async def sample_test_iam_permissions():
+                # Create a client
+                client = run_v2.JobsAsyncClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.TestIamPermissionsRequest(
+                    resource="resource_value",
+                    permissions=['permissions_value1', 'permissions_value2'],
+                )
+
+                # Make the request
+                response = await client.test_iam_permissions(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]]):
+                The request object. Request message for ``TestIamPermissions`` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse:
+                Response message for TestIamPermissions method.
+        """
+        # Create or coerce a protobuf request object.
+         # - The request isn't a proto-plus wrapped type,
+        #   so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = iam_policy_pb2.TestIamPermissionsRequest(**request)
+        elif not request:
+            request = iam_policy_pb2.TestIamPermissionsRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.test_iam_permissions]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    async def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "JobsAsyncClient":
+        return self
+
+    async def __aexit__(self, exc_type, exc, tb):
+        await self.transport.close()
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "JobsAsyncClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/client.py
new file mode 100644
index 000000000000..bfad5d67382d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/client.py
@@ -0,0 +1,1922 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import os
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+import warnings
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core import client_options as client_options_lib
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials             # type: ignore
+from google.auth.transport import mtls                            # type: ignore
+from google.auth.transport.grpc import SslCredentials             # type: ignore
+from google.auth.exceptions import MutualTLSChannelError          # type: ignore
+from google.oauth2 import service_account                         # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import operation  # type: ignore
+from google.api_core import operation_async  # type: ignore
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.jobs import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import execution
+from google.cloud.run_v2.types import execution_template
+from google.cloud.run_v2.types import job
+from google.cloud.run_v2.types import job as gcr_job
+from google.cloud.run_v2.types import vendor_settings
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import JobsTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import JobsGrpcTransport
+from .transports.grpc_asyncio import JobsGrpcAsyncIOTransport
+from .transports.rest import JobsRestTransport
+
+
+class JobsClientMeta(type):
+    """Metaclass for the Jobs client.
+
+    This provides class-level methods for building and retrieving
+    support objects (e.g. transport) without polluting the client instance
+    objects.
+    """
+    _transport_registry = OrderedDict()  # type: Dict[str, Type[JobsTransport]]
+    _transport_registry["grpc"] = JobsGrpcTransport
+    _transport_registry["grpc_asyncio"] = JobsGrpcAsyncIOTransport
+    _transport_registry["rest"] = JobsRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[JobsTransport]:
+        """Returns an appropriate transport class.
+
+        Args:
+            label: The name of the desired transport. If none is
+                provided, then the first transport in the registry is used.
+
+        Returns:
+            The transport class to use.
+        """
+        # If a specific transport is requested, return that one.
+        if label:
+            return cls._transport_registry[label]
+
+        # No transport is requested; return the default (that is, the first one
+        # in the dictionary).
+        return next(iter(cls._transport_registry.values()))
+
+
+class JobsClient(metaclass=JobsClientMeta):
+    """Cloud Run Job Control Plane API."""
+
+    @staticmethod
+    def _get_default_mtls_endpoint(api_endpoint):
+        """Converts api endpoint to mTLS endpoint.
+
+        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
+        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
+        Args:
+            api_endpoint (Optional[str]): the api endpoint to convert.
+        Returns:
+            str: converted mTLS api endpoint.
+        """
+        if not api_endpoint:
+            return api_endpoint
+
+        mtls_endpoint_re = re.compile(
+            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
+        )
+
+        m = mtls_endpoint_re.match(api_endpoint)
+        name, mtls, sandbox, googledomain = m.groups()
+        if mtls or not googledomain:
+            return api_endpoint
+
+        if sandbox:
+            return api_endpoint.replace(
+                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
+            )
+
+        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
+
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = "run.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
+    _DEFAULT_UNIVERSE = "googleapis.com"
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            JobsClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_info(info)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            JobsClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_file(
+            filename)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    from_service_account_json = from_service_account_file
+
+    @property
+    def transport(self) -> JobsTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            JobsTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @staticmethod
+    def connector_path(project: str,location: str,connector: str,) -> str:
+        """Returns a fully-qualified connector string."""
+        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+
+    @staticmethod
+    def parse_connector_path(path: str) -> Dict[str,str]:
+        """Parses a connector path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
+        """Returns a fully-qualified crypto_key string."""
+        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+
+    @staticmethod
+    def parse_crypto_key_path(path: str) -> Dict[str,str]:
+        """Parses a crypto_key path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def execution_path(project: str,location: str,job: str,execution: str,) -> str:
+        """Returns a fully-qualified execution string."""
+        return "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
+
+    @staticmethod
+    def parse_execution_path(path: str) -> Dict[str,str]:
+        """Parses a execution path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)/executions/(?P<execution>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def job_path(project: str,location: str,job: str,) -> str:
+        """Returns a fully-qualified job string."""
+        return "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
+
+    @staticmethod
+    def parse_job_path(path: str) -> Dict[str,str]:
+        """Parses a job path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def policy_path(project: str,) -> str:
+        """Returns a fully-qualified policy string."""
+        return "projects/{project}/policy".format(project=project, )
+
+    @staticmethod
+    def parse_policy_path(path: str) -> Dict[str,str]:
+        """Parses a policy path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/policy$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_path(project: str,secret: str,) -> str:
+        """Returns a fully-qualified secret string."""
+        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+
+    @staticmethod
+    def parse_secret_path(path: str) -> Dict[str,str]:
+        """Parses a secret path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_version_path(project: str,secret: str,version: str,) -> str:
+        """Returns a fully-qualified secret_version string."""
+        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+
+    @staticmethod
+    def parse_secret_version_path(path: str) -> Dict[str,str]:
+        """Parses a secret_version path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_billing_account_path(billing_account: str, ) -> str:
+        """Returns a fully-qualified billing_account string."""
+        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+
+    @staticmethod
+    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
+        """Parse a billing_account path into its component segments."""
+        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_folder_path(folder: str, ) -> str:
+        """Returns a fully-qualified folder string."""
+        return "folders/{folder}".format(folder=folder, )
+
+    @staticmethod
+    def parse_common_folder_path(path: str) -> Dict[str,str]:
+        """Parse a folder path into its component segments."""
+        m = re.match(r"^folders/(?P<folder>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_organization_path(organization: str, ) -> str:
+        """Returns a fully-qualified organization string."""
+        return "organizations/{organization}".format(organization=organization, )
+
+    @staticmethod
+    def parse_common_organization_path(path: str) -> Dict[str,str]:
+        """Parse a organization path into its component segments."""
+        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_project_path(project: str, ) -> str:
+        """Returns a fully-qualified project string."""
+        return "projects/{project}".format(project=project, )
+
+    @staticmethod
+    def parse_common_project_path(path: str) -> Dict[str,str]:
+        """Parse a project path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_location_path(project: str, location: str, ) -> str:
+        """Returns a fully-qualified location string."""
+        return "projects/{project}/locations/{location}".format(project=project, location=location, )
+
+    @staticmethod
+    def parse_common_location_path(path: str) -> Dict[str,str]:
+        """Parse a location path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
+        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+
+        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
+            DeprecationWarning)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+
+        # Figure out the client cert source to use.
+        client_cert_source = None
+        if use_client_cert == "true":
+            if client_options.client_cert_source:
+                client_cert_source = client_options.client_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+
+        # Figure out which api endpoint to use.
+        if client_options.api_endpoint is not None:
+            api_endpoint = client_options.api_endpoint
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = cls.DEFAULT_ENDPOINT
+
+        return api_endpoint, client_cert_source
+
+    @staticmethod
+    def _read_environment_variables():
+        """Returns the environment variables used by the client.
+
+        Returns:
+            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
+            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
+
+        Raises:
+            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
+                any of ["true", "false"].
+            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
+                is not any of ["auto", "never", "always"].
+        """
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
+        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
+
+    @staticmethod
+    def _get_client_cert_source(provided_cert_source, use_cert_flag):
+        """Return the client cert source to be used by the client.
+
+        Args:
+            provided_cert_source (bytes): The client certificate source provided.
+            use_cert_flag (bool): A flag indicating whether to use the client certificate.
+
+        Returns:
+            bytes or None: The client cert source to be used by the client.
+        """
+        client_cert_source = None
+        if use_cert_flag:
+            if provided_cert_source:
+                client_cert_source = provided_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+        return client_cert_source
+
+    @staticmethod
+    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
+        """Return the API endpoint used by the client.
+
+        Args:
+            api_override (str): The API endpoint override. If specified, this is always
+                the return value of this function and the other arguments are not used.
+            client_cert_source (bytes): The client certificate source used by the client.
+            universe_domain (str): The universe domain used by the client.
+            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
+                Possible values are "always", "auto", or "never".
+
+        Returns:
+            str: The API endpoint to be used by the client.
+        """
+        if api_override is not None:
+            api_endpoint = api_override
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            _default_universe = JobsClient._DEFAULT_UNIVERSE
+            if universe_domain != _default_universe:
+                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
+            api_endpoint = JobsClient.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
+        return api_endpoint
+
+    @staticmethod
+    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
+        """Return the universe domain used by the client.
+
+        Args:
+            client_universe_domain (Optional[str]): The universe domain configured via the client options.
+            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
+
+        Returns:
+            str: The universe domain to be used by the client.
+
+        Raises:
+            ValueError: If the universe domain is an empty string.
+        """
+        universe_domain = JobsClient._DEFAULT_UNIVERSE
+        if client_universe_domain is not None:
+            universe_domain = client_universe_domain
+        elif universe_domain_env is not None:
+            universe_domain = universe_domain_env
+        if len(universe_domain.strip()) == 0:
+            raise ValueError("Universe Domain cannot be an empty string.")
+        return universe_domain
+
+    def _validate_universe_domain(self):
+        """Validates client's and credentials' universe domains are consistent.
+
+        Returns:
+            bool: True iff the configured universe domain is valid.
+
+        Raises:
+            ValueError: If the configured universe domain is not valid.
+        """
+
+        # NOTE (b/349488459): universe validation is disabled until further notice.
+        return True
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used by the client instance.
+        """
+        return self._universe_domain
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, JobsTransport, Callable[..., JobsTransport]]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the jobs client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,JobsTransport,Callable[..., JobsTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the JobsTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that the ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client_options = client_options
+        if isinstance(self._client_options, dict):
+            self._client_options = client_options_lib.from_dict(self._client_options)
+        if self._client_options is None:
+            self._client_options = client_options_lib.ClientOptions()
+        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
+
+        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
+
+        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = JobsClient._read_environment_variables()
+        self._client_cert_source = JobsClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
+        self._universe_domain = JobsClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
+        self._api_endpoint = None # updated below, depending on `transport`
+
+        # Initialize the universe domain validation.
+        self._is_universe_domain_valid = False
+
+        api_key_value = getattr(self._client_options, "api_key", None)
+        if api_key_value and credentials:
+            raise ValueError("client_options.api_key and credentials are mutually exclusive")
+
+        # Save or instantiate the transport.
+        # Ordinarily, we provide the transport, but allowing a custom transport
+        # instance provides an extensibility point for unusual situations.
+        transport_provided = isinstance(transport, JobsTransport)
+        if transport_provided:
+            # transport is a JobsTransport instance.
+            if credentials or self._client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if self._client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = cast(JobsTransport, transport)
+            self._api_endpoint = self._transport.host
+
+        self._api_endpoint = (self._api_endpoint or
+            JobsClient._get_api_endpoint(
+                self._client_options.api_endpoint,
+                self._client_cert_source,
+                self._universe_domain,
+                self._use_mtls_endpoint))
+
+        if not transport_provided:
+            import google.auth._default  # type: ignore
+
+            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
+                credentials = google.auth._default.get_api_key_credentials(api_key_value)
+
+            transport_init: Union[Type[JobsTransport], Callable[..., JobsTransport]] = (
+                JobsClient.get_transport_class(transport)
+                if isinstance(transport, str) or transport is None
+                else cast(Callable[..., JobsTransport], transport)
+            )
+            # initialize with the provided callable or the passed in class
+            self._transport = transport_init(
+                credentials=credentials,
+                credentials_file=self._client_options.credentials_file,
+                host=self._api_endpoint,
+                scopes=self._client_options.scopes,
+                client_cert_source_for_mtls=self._client_cert_source,
+                quota_project_id=self._client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=self._client_options.api_audience,
+            )
+
+    def create_job(self,
+            request: Optional[Union[gcr_job.CreateJobRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            job: Optional[gcr_job.Job] = None,
+            job_id: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Creates a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_create_job():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                job = run_v2.Job()
+                job.start_execution_token = "start_execution_token_value"
+                job.template.template.max_retries = 1187
+
+                request = run_v2.CreateJobRequest(
+                    parent="parent_value",
+                    job=job,
+                    job_id="job_id_value",
+                )
+
+                # Make the request
+                operation = client.create_job(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.CreateJobRequest, dict]):
+                The request object. Request message for creating a Job.
+            parent (str):
+                Required. The location and project in
+                which this Job should be created.
+                Format:
+                projects/{project}/locations/{location},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            job (google.cloud.run_v2.types.Job):
+                Required. The Job instance to create.
+                This corresponds to the ``job`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            job_id (str):
+                Required. The unique identifier for the Job. The name of
+                the job becomes {parent}/jobs/{job_id}.
+
+                This corresponds to the ``job_id`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
+                   container image that is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent, job, job_id])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, gcr_job.CreateJobRequest):
+            request = gcr_job.CreateJobRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if parent is not None:
+                request.parent = parent
+            if job is not None:
+                request.job = job
+            if job_id is not None:
+                request.job_id = job_id
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.create_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            gcr_job.Job,
+            metadata_type=gcr_job.Job,
+        )
+
+        # Done; return the response.
+        return response
+
+    def get_job(self,
+            request: Optional[Union[job.GetJobRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> job.Job:
+        r"""Gets information about a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_get_job():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetJobRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = client.get_job(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.GetJobRequest, dict]):
+                The request object. Request message for obtaining a Job
+                by its full name.
+            name (str):
+                Required. The full name of the Job.
+                Format:
+                projects/{project}/locations/{location}/jobs/{job},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Job:
+                Job represents the configuration of a
+                single job, which references a container
+                image that is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, job.GetJobRequest):
+            request = job.GetJobRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def list_jobs(self,
+            request: Optional[Union[job.ListJobsRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListJobsPager:
+        r"""Lists Jobs. Results are sorted by creation time,
+        descending.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_list_jobs():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListJobsRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_jobs(request=request)
+
+                # Handle the response
+                for response in page_result:
+                    print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.ListJobsRequest, dict]):
+                The request object. Request message for retrieving a list
+                of Jobs.
+            parent (str):
+                Required. The location and project to
+                list resources on. Format:
+                projects/{project}/locations/{location},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.jobs.pagers.ListJobsPager:
+                Response message containing a list of
+                Jobs.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, job.ListJobsRequest):
+            request = job.ListJobsRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if parent is not None:
+                request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_jobs]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__iter__` convenience method.
+        response = pagers.ListJobsPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def update_job(self,
+            request: Optional[Union[gcr_job.UpdateJobRequest, dict]] = None,
+            *,
+            job: Optional[gcr_job.Job] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Updates a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_update_job():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                job = run_v2.Job()
+                job.start_execution_token = "start_execution_token_value"
+                job.template.template.max_retries = 1187
+
+                request = run_v2.UpdateJobRequest(
+                    job=job,
+                )
+
+                # Make the request
+                operation = client.update_job(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.UpdateJobRequest, dict]):
+                The request object. Request message for updating a Job.
+            job (google.cloud.run_v2.types.Job):
+                Required. The Job to be updated.
+                This corresponds to the ``job`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
+                   container image that is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([job])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, gcr_job.UpdateJobRequest):
+            request = gcr_job.UpdateJobRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if job is not None:
+                request.job = job
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.update_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.job.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            gcr_job.Job,
+            metadata_type=gcr_job.Job,
+        )
+
+        # Done; return the response.
+        return response
+
+    def delete_job(self,
+            request: Optional[Union[job.DeleteJobRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Deletes a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_delete_job():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.DeleteJobRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.delete_job(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.DeleteJobRequest, dict]):
+                The request object. Request message to delete a Job by
+                its full name.
+            name (str):
+                Required. The full name of the Job.
+                Format:
+                projects/{project}/locations/{location}/jobs/{job},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
+                   container image that is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, job.DeleteJobRequest):
+            request = job.DeleteJobRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            job.Job,
+            metadata_type=job.Job,
+        )
+
+        # Done; return the response.
+        return response
+
+    def run_job(self,
+            request: Optional[Union[job.RunJobRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Triggers creation of a new Execution of this Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_run_job():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.RunJobRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.run_job(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.RunJobRequest, dict]):
+                The request object. Request message to create a new
+                Execution of a Job.
+            name (str):
+                Required. The full name of the Job.
+                Format:
+                projects/{project}/locations/{location}/jobs/{job},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
+                   immutable resource that references a container image
+                   which is run to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, job.RunJobRequest):
+            request = job.RunJobRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.run_job]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            execution.Execution,
+            metadata_type=execution.Execution,
+        )
+
+        # Done; return the response.
+        return response
+
+    def get_iam_policy(self,
+            request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> policy_pb2.Policy:
+        r"""Gets the IAM Access Control policy currently in
+        effect for the given Job. This result does not include
+        any inherited policies.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            def sample_get_iam_policy():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.GetIamPolicyRequest(
+                    resource="resource_value",
+                )
+
+                # Make the request
+                response = client.get_iam_policy(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]):
+                The request object. Request message for ``GetIamPolicy`` method.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.policy_pb2.Policy:
+                An Identity and Access Management (IAM) policy, which specifies access
+                   controls for Google Cloud resources.
+
+                   A Policy is a collection of bindings. A binding binds
+                   one or more members, or principals, to a single role.
+                   Principals can be user accounts, service accounts,
+                   Google groups, and domains (such as G Suite). A role
+                   is a named list of permissions; each role can be an
+                   IAM predefined role or a user-created custom role.
+
+                   For some types of Google Cloud resources, a binding
+                   can also specify a condition, which is a logical
+                   expression that allows access to a resource only if
+                   the expression evaluates to true. A condition can add
+                   constraints based on attributes of the request, the
+                   resource, or both. To learn which resources support
+                   conditions in their IAM policies, see the [IAM
+                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
+
+                   **JSON example:**
+
+                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
+
+                   **YAML example:**
+
+                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
+
+                   For a description of IAM and its features, see the
+                   [IAM
+                   documentation](\ https://cloud.google.com/iam/docs/).
+
+        """
+        # Create or coerce a protobuf request object.
+        if isinstance(request, dict):
+            # - The request isn't a proto-plus wrapped type,
+            #   so it must be constructed via keyword expansion.
+            request = iam_policy_pb2.GetIamPolicyRequest(**request)
+        elif not request:
+            # Null request, just make one.
+            request = iam_policy_pb2.GetIamPolicyRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_iam_policy]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def set_iam_policy(self,
+            request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> policy_pb2.Policy:
+        r"""Sets the IAM Access control policy for the specified
+        Job. Overwrites any existing policy.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            def sample_set_iam_policy():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.SetIamPolicyRequest(
+                    resource="resource_value",
+                )
+
+                # Make the request
+                response = client.set_iam_policy(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]):
+                The request object. Request message for ``SetIamPolicy`` method.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.policy_pb2.Policy:
+                An Identity and Access Management (IAM) policy, which specifies access
+                   controls for Google Cloud resources.
+
+                   A Policy is a collection of bindings. A binding binds
+                   one or more members, or principals, to a single role.
+                   Principals can be user accounts, service accounts,
+                   Google groups, and domains (such as G Suite). A role
+                   is a named list of permissions; each role can be an
+                   IAM predefined role or a user-created custom role.
+
+                   For some types of Google Cloud resources, a binding
+                   can also specify a condition, which is a logical
+                   expression that allows access to a resource only if
+                   the expression evaluates to true. A condition can add
+                   constraints based on attributes of the request, the
+                   resource, or both. To learn which resources support
+                   conditions in their IAM policies, see the [IAM
+                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
+
+                   **JSON example:**
+
+                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
+
+                   **YAML example:**
+
+                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
+
+                   For a description of IAM and its features, see the
+                   [IAM
+                   documentation](\ https://cloud.google.com/iam/docs/).
+
+        """
+        # Create or coerce a protobuf request object.
+        if isinstance(request, dict):
+            # - The request isn't a proto-plus wrapped type,
+            #   so it must be constructed via keyword expansion.
+            request = iam_policy_pb2.SetIamPolicyRequest(**request)
+        elif not request:
+            # Null request, just make one.
+            request = iam_policy_pb2.SetIamPolicyRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.set_iam_policy]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def test_iam_permissions(self,
+            request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> iam_policy_pb2.TestIamPermissionsResponse:
+        r"""Returns permissions that a caller has on the
+        specified Project.
+        There are no permissions required for making this API
+        call.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            def sample_test_iam_permissions():
+                # Create a client
+                client = run_v2.JobsClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.TestIamPermissionsRequest(
+                    resource="resource_value",
+                    permissions=['permissions_value1', 'permissions_value2'],
+                )
+
+                # Make the request
+                response = client.test_iam_permissions(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]):
+                The request object. Request message for ``TestIamPermissions`` method.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse:
+                Response message for TestIamPermissions method.
+        """
+        # Create or coerce a protobuf request object.
+        if isinstance(request, dict):
+            # - The request isn't a proto-plus wrapped type,
+            #   so it must be constructed via keyword expansion.
+            request = iam_policy_pb2.TestIamPermissionsRequest(**request)
+        elif not request:
+            # Null request, just make one.
+            request = iam_policy_pb2.TestIamPermissionsRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.test_iam_permissions]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "JobsClient":
+        return self
+
+    def __exit__(self, type, value, traceback):
+        """Releases underlying transport's resources.
+
+        .. warning::
+            ONLY use as a context manager if the transport is NOT shared
+            with other clients! Exiting the with block will CLOSE the transport
+            and may cause errors in other clients!
+        """
+        self.transport.close()
+
+    def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "JobsClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/pagers.py
new file mode 100644
index 000000000000..200072a93a0d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/pagers.py
@@ -0,0 +1,162 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import retry_async as retries_async
+from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
+
+from google.cloud.run_v2.types import job
+
+
+class ListJobsPager:
+    """A pager for iterating through ``list_jobs`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListJobsResponse` object, and
+    provides an ``__iter__`` method to iterate through its
+    ``jobs`` field.
+
+    If there are more pages, the ``__iter__`` method will make additional
+    ``ListJobs`` requests and continue to iterate
+    through the ``jobs`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListJobsResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., job.ListJobsResponse],
+            request: job.ListJobsRequest,
+            response: job.ListJobsResponse,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiate the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListJobsRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListJobsResponse):
+                The initial response object.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = job.ListJobsRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    def pages(self) -> Iterator[job.ListJobsResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+
+    def __iter__(self) -> Iterator[job.Job]:
+        for page in self.pages:
+            yield from page.jobs
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
+
+
+class ListJobsAsyncPager:
+    """A pager for iterating through ``list_jobs`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListJobsResponse` object, and
+    provides an ``__aiter__`` method to iterate through its
+    ``jobs`` field.
+
+    If there are more pages, the ``__aiter__`` method will make additional
+    ``ListJobs`` requests and continue to iterate
+    through the ``jobs`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListJobsResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., Awaitable[job.ListJobsResponse]],
+            request: job.ListJobsRequest,
+            response: job.ListJobsResponse,
+            *,
+            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiates the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListJobsRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListJobsResponse):
+                The initial response object.
+            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = job.ListJobsRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    async def pages(self) -> AsyncIterator[job.ListJobsResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+    def __aiter__(self) -> AsyncIterator[job.Job]:
+        async def async_generator():
+            async for page in self.pages:
+                for response in page.jobs:
+                    yield response
+
+        return async_generator()
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/README.rst
new file mode 100644
index 000000000000..098a69237e16
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/README.rst
@@ -0,0 +1,9 @@
+
+transport inheritance structure
+_______________________________
+
+`JobsTransport` is the ABC for all transports.
+- public child `JobsGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
+- public child `JobsGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
+- private child `_BaseJobsRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
+- public child `JobsRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/__init__.py
new file mode 100644
index 000000000000..f4812231df92
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+from typing import Dict, Type
+
+from .base import JobsTransport
+from .grpc import JobsGrpcTransport
+from .grpc_asyncio import JobsGrpcAsyncIOTransport
+from .rest import JobsRestTransport
+from .rest import JobsRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[JobsTransport]]
+_transport_registry['grpc'] = JobsGrpcTransport
+_transport_registry['grpc_asyncio'] = JobsGrpcAsyncIOTransport
+_transport_registry['rest'] = JobsRestTransport
+
+__all__ = (
+    'JobsTransport',
+    'JobsGrpcTransport',
+    'JobsGrpcAsyncIOTransport',
+    'JobsRestTransport',
+    'JobsRestInterceptor',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/base.py
new file mode 100644
index 000000000000..a94a8f9e129b
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/base.py
@@ -0,0 +1,333 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 abc
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+import google.auth  # type: ignore
+import google.api_core
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import operations_v1
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.oauth2 import service_account # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import job
+from google.cloud.run_v2.types import job as gcr_job
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class JobsTransport(abc.ABC):
+    """Abstract transport class for Jobs."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'run.googleapis.com'
+    def __init__(
+            self, *,
+            host: str = DEFAULT_HOST,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            **kwargs,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A list of scopes.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+        """
+
+        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
+
+        # Save the scopes.
+        self._scopes = scopes
+        if not hasattr(self, "_ignore_credentials"):
+            self._ignore_credentials: bool = False
+
+        # If no credentials are provided, then determine the appropriate
+        # defaults.
+        if credentials and credentials_file:
+            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
+
+        if credentials_file is not None:
+            credentials, _ = google.auth.load_credentials_from_file(
+                                credentials_file,
+                                **scopes_kwargs,
+                                quota_project_id=quota_project_id
+                            )
+        elif credentials is None and not self._ignore_credentials:
+            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
+            # Don't apply audience if the credentials file passed from user.
+            if hasattr(credentials, "with_gdch_audience"):
+                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
+
+        # If the credentials are service account credentials, then always try to use self signed JWT.
+        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
+            credentials = credentials.with_always_use_jwt_access(True)
+
+        # Save the credentials.
+        self._credentials = credentials
+
+        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
+        if ':' not in host:
+            host += ':443'
+        self._host = host
+
+    @property
+    def host(self):
+        return self._host
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.create_job: gapic_v1.method.wrap_method(
+                self.create_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_job: gapic_v1.method.wrap_method(
+                self.get_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_jobs: gapic_v1.method.wrap_method(
+                self.list_jobs,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.update_job: gapic_v1.method.wrap_method(
+                self.update_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_job: gapic_v1.method.wrap_method(
+                self.delete_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.run_job: gapic_v1.method.wrap_method(
+                self.run_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_iam_policy: gapic_v1.method.wrap_method(
+                self.get_iam_policy,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.set_iam_policy: gapic_v1.method.wrap_method(
+                self.set_iam_policy,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.test_iam_permissions: gapic_v1.method.wrap_method(
+                self.test_iam_permissions,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: gapic_v1.method.wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: gapic_v1.method.wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: gapic_v1.method.wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: gapic_v1.method.wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+         }
+
+    def close(self):
+        """Closes resources associated with the transport.
+
+       .. warning::
+            Only call this method if the transport is NOT shared
+            with other clients - this may cause errors in other clients!
+        """
+        raise NotImplementedError()
+
+    @property
+    def operations_client(self):
+        """Return the client designed to process long-running operations."""
+        raise NotImplementedError()
+
+    @property
+    def create_job(self) -> Callable[
+            [gcr_job.CreateJobRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def get_job(self) -> Callable[
+            [job.GetJobRequest],
+            Union[
+                job.Job,
+                Awaitable[job.Job]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_jobs(self) -> Callable[
+            [job.ListJobsRequest],
+            Union[
+                job.ListJobsResponse,
+                Awaitable[job.ListJobsResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def update_job(self) -> Callable[
+            [gcr_job.UpdateJobRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def delete_job(self) -> Callable[
+            [job.DeleteJobRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def run_job(self) -> Callable[
+            [job.RunJobRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def get_iam_policy(self) -> Callable[
+            [iam_policy_pb2.GetIamPolicyRequest],
+            Union[
+                policy_pb2.Policy,
+                Awaitable[policy_pb2.Policy]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def set_iam_policy(self) -> Callable[
+            [iam_policy_pb2.SetIamPolicyRequest],
+            Union[
+                policy_pb2.Policy,
+                Awaitable[policy_pb2.Policy]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def test_iam_permissions(self) -> Callable[
+            [iam_policy_pb2.TestIamPermissionsRequest],
+            Union[
+                iam_policy_pb2.TestIamPermissionsResponse,
+                Awaitable[iam_policy_pb2.TestIamPermissionsResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[
+        [operations_pb2.ListOperationsRequest],
+        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.GetOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.DeleteOperationRequest],
+        None,
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.WaitOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'JobsTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc.py
new file mode 100644
index 000000000000..6b3c08fcc8d3
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc.py
@@ -0,0 +1,580 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 warnings
+from typing import Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import grpc_helpers
+from google.api_core import operations_v1
+from google.api_core import gapic_v1
+import google.auth                         # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import job
+from google.cloud.run_v2.types import job as gcr_job
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from .base import JobsTransport, DEFAULT_CLIENT_INFO
+
+
+class JobsGrpcTransport(JobsTransport):
+    """gRPC backend transport for Jobs.
+
+    Cloud Run Job Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+    _stubs: Dict[str, Callable]
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[grpc.Channel, Callable[..., 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,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if a ``channel`` instance is provided.
+            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+        self._operations_client: Optional[operations_v1.OperationsClient] = None
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, grpc.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._prep_wrapped_messages(client_info)
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> grpc.Channel:
+        """Create and return a gRPC channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            grpc.Channel: A gRPC channel object.
+
+        Raises:
+            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+
+        return grpc_helpers.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    @property
+    def grpc_channel(self) -> grpc.Channel:
+        """Return the channel designed to connect to this service.
+        """
+        return self._grpc_channel
+
+    @property
+    def operations_client(self) -> operations_v1.OperationsClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Quick check: Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            self._operations_client = operations_v1.OperationsClient(
+                self.grpc_channel
+            )
+
+        # Return the client from cache.
+        return self._operations_client
+
+    @property
+    def create_job(self) -> Callable[
+            [gcr_job.CreateJobRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the create job method over gRPC.
+
+        Creates a Job.
+
+        Returns:
+            Callable[[~.CreateJobRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'create_job' not in self._stubs:
+            self._stubs['create_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/CreateJob',
+                request_serializer=gcr_job.CreateJobRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['create_job']
+
+    @property
+    def get_job(self) -> Callable[
+            [job.GetJobRequest],
+            job.Job]:
+        r"""Return a callable for the get job method over gRPC.
+
+        Gets information about a Job.
+
+        Returns:
+            Callable[[~.GetJobRequest],
+                    ~.Job]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_job' not in self._stubs:
+            self._stubs['get_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/GetJob',
+                request_serializer=job.GetJobRequest.serialize,
+                response_deserializer=job.Job.deserialize,
+            )
+        return self._stubs['get_job']
+
+    @property
+    def list_jobs(self) -> Callable[
+            [job.ListJobsRequest],
+            job.ListJobsResponse]:
+        r"""Return a callable for the list jobs method over gRPC.
+
+        Lists Jobs. Results are sorted by creation time,
+        descending.
+
+        Returns:
+            Callable[[~.ListJobsRequest],
+                    ~.ListJobsResponse]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_jobs' not in self._stubs:
+            self._stubs['list_jobs'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/ListJobs',
+                request_serializer=job.ListJobsRequest.serialize,
+                response_deserializer=job.ListJobsResponse.deserialize,
+            )
+        return self._stubs['list_jobs']
+
+    @property
+    def update_job(self) -> Callable[
+            [gcr_job.UpdateJobRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the update job method over gRPC.
+
+        Updates a Job.
+
+        Returns:
+            Callable[[~.UpdateJobRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'update_job' not in self._stubs:
+            self._stubs['update_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/UpdateJob',
+                request_serializer=gcr_job.UpdateJobRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['update_job']
+
+    @property
+    def delete_job(self) -> Callable[
+            [job.DeleteJobRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the delete job method over gRPC.
+
+        Deletes a Job.
+
+        Returns:
+            Callable[[~.DeleteJobRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'delete_job' not in self._stubs:
+            self._stubs['delete_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/DeleteJob',
+                request_serializer=job.DeleteJobRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['delete_job']
+
+    @property
+    def run_job(self) -> Callable[
+            [job.RunJobRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the run job method over gRPC.
+
+        Triggers creation of a new Execution of this Job.
+
+        Returns:
+            Callable[[~.RunJobRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'run_job' not in self._stubs:
+            self._stubs['run_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/RunJob',
+                request_serializer=job.RunJobRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['run_job']
+
+    @property
+    def get_iam_policy(self) -> Callable[
+            [iam_policy_pb2.GetIamPolicyRequest],
+            policy_pb2.Policy]:
+        r"""Return a callable for the get iam policy method over gRPC.
+
+        Gets the IAM Access Control policy currently in
+        effect for the given Job. This result does not include
+        any inherited policies.
+
+        Returns:
+            Callable[[~.GetIamPolicyRequest],
+                    ~.Policy]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_iam_policy' not in self._stubs:
+            self._stubs['get_iam_policy'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/GetIamPolicy',
+                request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString,
+                response_deserializer=policy_pb2.Policy.FromString,
+            )
+        return self._stubs['get_iam_policy']
+
+    @property
+    def set_iam_policy(self) -> Callable[
+            [iam_policy_pb2.SetIamPolicyRequest],
+            policy_pb2.Policy]:
+        r"""Return a callable for the set iam policy method over gRPC.
+
+        Sets the IAM Access control policy for the specified
+        Job. Overwrites any existing policy.
+
+        Returns:
+            Callable[[~.SetIamPolicyRequest],
+                    ~.Policy]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'set_iam_policy' not in self._stubs:
+            self._stubs['set_iam_policy'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/SetIamPolicy',
+                request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString,
+                response_deserializer=policy_pb2.Policy.FromString,
+            )
+        return self._stubs['set_iam_policy']
+
+    @property
+    def test_iam_permissions(self) -> Callable[
+            [iam_policy_pb2.TestIamPermissionsRequest],
+            iam_policy_pb2.TestIamPermissionsResponse]:
+        r"""Return a callable for the test iam permissions method over gRPC.
+
+        Returns permissions that a caller has on the
+        specified Project.
+        There are no permissions required for making this API
+        call.
+
+        Returns:
+            Callable[[~.TestIamPermissionsRequest],
+                    ~.TestIamPermissionsResponse]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'test_iam_permissions' not in self._stubs:
+            self._stubs['test_iam_permissions'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/TestIamPermissions',
+                request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString,
+                response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString,
+            )
+        return self._stubs['test_iam_permissions']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'JobsGrpcTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc_asyncio.py
new file mode 100644
index 000000000000..cbd2fedf21b0
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc_asyncio.py
@@ -0,0 +1,661 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 inspect
+import warnings
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry_async as retries
+from google.api_core import operations_v1
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc                        # type: ignore
+from grpc.experimental import aio  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import job
+from google.cloud.run_v2.types import job as gcr_job
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from .base import JobsTransport, DEFAULT_CLIENT_INFO
+from .grpc import JobsGrpcTransport
+
+
+class JobsGrpcAsyncIOTransport(JobsTransport):
+    """gRPC AsyncIO backend transport for Jobs.
+
+    Cloud Run Job Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+
+    _grpc_channel: aio.Channel
+    _stubs: Dict[str, Callable] = {}
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> aio.Channel:
+        """Create and return a gRPC AsyncIO channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            aio.Channel: A gRPC AsyncIO channel object.
+        """
+
+        return grpc_helpers_async.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[aio.Channel, Callable[..., 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,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, aio.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def grpc_channel(self) -> aio.Channel:
+        """Create the channel designed to connect to this service.
+
+        This property caches on the instance; repeated calls return
+        the same channel.
+        """
+        # Return the channel from cache.
+        return self._grpc_channel
+
+    @property
+    def operations_client(self) -> operations_v1.OperationsAsyncClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Quick check: Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            self._operations_client = operations_v1.OperationsAsyncClient(
+                self.grpc_channel
+            )
+
+        # Return the client from cache.
+        return self._operations_client
+
+    @property
+    def create_job(self) -> Callable[
+            [gcr_job.CreateJobRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the create job method over gRPC.
+
+        Creates a Job.
+
+        Returns:
+            Callable[[~.CreateJobRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'create_job' not in self._stubs:
+            self._stubs['create_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/CreateJob',
+                request_serializer=gcr_job.CreateJobRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['create_job']
+
+    @property
+    def get_job(self) -> Callable[
+            [job.GetJobRequest],
+            Awaitable[job.Job]]:
+        r"""Return a callable for the get job method over gRPC.
+
+        Gets information about a Job.
+
+        Returns:
+            Callable[[~.GetJobRequest],
+                    Awaitable[~.Job]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_job' not in self._stubs:
+            self._stubs['get_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/GetJob',
+                request_serializer=job.GetJobRequest.serialize,
+                response_deserializer=job.Job.deserialize,
+            )
+        return self._stubs['get_job']
+
+    @property
+    def list_jobs(self) -> Callable[
+            [job.ListJobsRequest],
+            Awaitable[job.ListJobsResponse]]:
+        r"""Return a callable for the list jobs method over gRPC.
+
+        Lists Jobs. Results are sorted by creation time,
+        descending.
+
+        Returns:
+            Callable[[~.ListJobsRequest],
+                    Awaitable[~.ListJobsResponse]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_jobs' not in self._stubs:
+            self._stubs['list_jobs'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/ListJobs',
+                request_serializer=job.ListJobsRequest.serialize,
+                response_deserializer=job.ListJobsResponse.deserialize,
+            )
+        return self._stubs['list_jobs']
+
+    @property
+    def update_job(self) -> Callable[
+            [gcr_job.UpdateJobRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the update job method over gRPC.
+
+        Updates a Job.
+
+        Returns:
+            Callable[[~.UpdateJobRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'update_job' not in self._stubs:
+            self._stubs['update_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/UpdateJob',
+                request_serializer=gcr_job.UpdateJobRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['update_job']
+
+    @property
+    def delete_job(self) -> Callable[
+            [job.DeleteJobRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the delete job method over gRPC.
+
+        Deletes a Job.
+
+        Returns:
+            Callable[[~.DeleteJobRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'delete_job' not in self._stubs:
+            self._stubs['delete_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/DeleteJob',
+                request_serializer=job.DeleteJobRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['delete_job']
+
+    @property
+    def run_job(self) -> Callable[
+            [job.RunJobRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the run job method over gRPC.
+
+        Triggers creation of a new Execution of this Job.
+
+        Returns:
+            Callable[[~.RunJobRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'run_job' not in self._stubs:
+            self._stubs['run_job'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/RunJob',
+                request_serializer=job.RunJobRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['run_job']
+
+    @property
+    def get_iam_policy(self) -> Callable[
+            [iam_policy_pb2.GetIamPolicyRequest],
+            Awaitable[policy_pb2.Policy]]:
+        r"""Return a callable for the get iam policy method over gRPC.
+
+        Gets the IAM Access Control policy currently in
+        effect for the given Job. This result does not include
+        any inherited policies.
+
+        Returns:
+            Callable[[~.GetIamPolicyRequest],
+                    Awaitable[~.Policy]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_iam_policy' not in self._stubs:
+            self._stubs['get_iam_policy'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/GetIamPolicy',
+                request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString,
+                response_deserializer=policy_pb2.Policy.FromString,
+            )
+        return self._stubs['get_iam_policy']
+
+    @property
+    def set_iam_policy(self) -> Callable[
+            [iam_policy_pb2.SetIamPolicyRequest],
+            Awaitable[policy_pb2.Policy]]:
+        r"""Return a callable for the set iam policy method over gRPC.
+
+        Sets the IAM Access control policy for the specified
+        Job. Overwrites any existing policy.
+
+        Returns:
+            Callable[[~.SetIamPolicyRequest],
+                    Awaitable[~.Policy]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'set_iam_policy' not in self._stubs:
+            self._stubs['set_iam_policy'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/SetIamPolicy',
+                request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString,
+                response_deserializer=policy_pb2.Policy.FromString,
+            )
+        return self._stubs['set_iam_policy']
+
+    @property
+    def test_iam_permissions(self) -> Callable[
+            [iam_policy_pb2.TestIamPermissionsRequest],
+            Awaitable[iam_policy_pb2.TestIamPermissionsResponse]]:
+        r"""Return a callable for the test iam permissions method over gRPC.
+
+        Returns permissions that a caller has on the
+        specified Project.
+        There are no permissions required for making this API
+        call.
+
+        Returns:
+            Callable[[~.TestIamPermissionsRequest],
+                    Awaitable[~.TestIamPermissionsResponse]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'test_iam_permissions' not in self._stubs:
+            self._stubs['test_iam_permissions'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Jobs/TestIamPermissions',
+                request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString,
+                response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString,
+            )
+        return self._stubs['test_iam_permissions']
+
+    def _prep_wrapped_messages(self, client_info):
+        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
+        self._wrapped_methods = {
+            self.create_job: self._wrap_method(
+                self.create_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_job: self._wrap_method(
+                self.get_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_jobs: self._wrap_method(
+                self.list_jobs,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.update_job: self._wrap_method(
+                self.update_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_job: self._wrap_method(
+                self.delete_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.run_job: self._wrap_method(
+                self.run_job,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_iam_policy: self._wrap_method(
+                self.get_iam_policy,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.set_iam_policy: self._wrap_method(
+                self.set_iam_policy,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.test_iam_permissions: self._wrap_method(
+                self.test_iam_permissions,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: self._wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: self._wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: self._wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: self._wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+        }
+
+    def _wrap_method(self, func, *args, **kwargs):
+        if self._wrap_with_kind:  # pragma: NO COVER
+            kwargs["kind"] = self.kind
+        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
+
+    def close(self):
+        return self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc_asyncio"
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+
+__all__ = (
+    'JobsGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest.py
new file mode 100644
index 000000000000..a2a22c7aad47
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest.py
@@ -0,0 +1,1711 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+
+from google.auth.transport.requests import AuthorizedSession  # type: ignore
+import json  # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry as retries
+from google.api_core import rest_helpers
+from google.api_core import rest_streaming
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.api_core import operations_v1
+from google.cloud.location import locations_pb2 # type: ignore
+
+from requests import __version__ as requests_version
+import dataclasses
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+
+from google.cloud.run_v2.types import job
+from google.cloud.run_v2.types import job as gcr_job
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2  # type: ignore
+
+
+from .rest_base import _BaseJobsRestTransport
+from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=f"requests@{requests_version}",
+)
+
+
+class JobsRestInterceptor:
+    """Interceptor for Jobs.
+
+    Interceptors are used to manipulate requests, request metadata, and responses
+    in arbitrary ways.
+    Example use cases include:
+    * Logging
+    * Verifying requests according to service or custom semantics
+    * Stripping extraneous information from responses
+
+    These use cases and more can be enabled by injecting an
+    instance of a custom subclass when constructing the JobsRestTransport.
+
+    .. code-block:: python
+        class MyCustomJobsInterceptor(JobsRestInterceptor):
+            def pre_create_job(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_create_job(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_delete_job(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_delete_job(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_get_iam_policy(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_get_iam_policy(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_get_job(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_get_job(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_list_jobs(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_list_jobs(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_run_job(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_run_job(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_set_iam_policy(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_set_iam_policy(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_test_iam_permissions(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_test_iam_permissions(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_update_job(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_update_job(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = JobsRestTransport(interceptor=MyCustomJobsInterceptor())
+        client = JobsClient(transport=transport)
+
+
+    """
+    def pre_create_job(self, request: gcr_job.CreateJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[gcr_job.CreateJobRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for create_job
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_create_job(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for create_job
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_job(self, request: job.DeleteJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[job.DeleteJobRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_job
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_delete_job(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for delete_job
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_iam_policy(self, request: iam_policy_pb2.GetIamPolicyRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.GetIamPolicyRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_iam_policy
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_get_iam_policy(self, response: policy_pb2.Policy) -> policy_pb2.Policy:
+        """Post-rpc interceptor for get_iam_policy
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_job(self, request: job.GetJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[job.GetJobRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_job
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_get_job(self, response: job.Job) -> job.Job:
+        """Post-rpc interceptor for get_job
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_jobs(self, request: job.ListJobsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[job.ListJobsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_jobs
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_list_jobs(self, response: job.ListJobsResponse) -> job.ListJobsResponse:
+        """Post-rpc interceptor for list_jobs
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_run_job(self, request: job.RunJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[job.RunJobRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for run_job
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_run_job(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for run_job
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_set_iam_policy(self, request: iam_policy_pb2.SetIamPolicyRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.SetIamPolicyRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for set_iam_policy
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_set_iam_policy(self, response: policy_pb2.Policy) -> policy_pb2.Policy:
+        """Post-rpc interceptor for set_iam_policy
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_test_iam_permissions(self, request: iam_policy_pb2.TestIamPermissionsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.TestIamPermissionsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for test_iam_permissions
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_test_iam_permissions(self, response: iam_policy_pb2.TestIamPermissionsResponse) -> iam_policy_pb2.TestIamPermissionsResponse:
+        """Post-rpc interceptor for test_iam_permissions
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_update_job(self, request: gcr_job.UpdateJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[gcr_job.UpdateJobRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for update_job
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_update_job(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for update_job
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_operation(
+        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_delete_operation(
+        self, response: None
+    ) -> None:
+        """Post-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_operation(
+        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_get_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_operations(
+        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_list_operations(
+        self, response: operations_pb2.ListOperationsResponse
+    ) -> operations_pb2.ListOperationsResponse:
+        """Post-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_wait_operation(
+        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Jobs server.
+        """
+        return request, metadata
+
+    def post_wait_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Jobs server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class JobsRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: JobsRestInterceptor
+
+
+class JobsRestTransport(_BaseJobsRestTransport):
+    """REST backend synchronous transport for Jobs.
+
+    Cloud Run Job Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            url_scheme: str = 'https',
+            interceptor: Optional[JobsRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
+                certificate to configure mutual TLS HTTP channel. It is ignored
+                if ``channel`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
+        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
+        # credentials object
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            url_scheme=url_scheme,
+            api_audience=api_audience
+        )
+        self._session = AuthorizedSession(
+            self._credentials, default_host=self.DEFAULT_HOST)
+        self._operations_client: Optional[operations_v1.AbstractOperationsClient] = None
+        if client_cert_source_for_mtls:
+            self._session.configure_mtls_channel(client_cert_source_for_mtls)
+        self._interceptor = interceptor or JobsRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def operations_client(self) -> operations_v1.AbstractOperationsClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            http_options: Dict[str, List[Dict[str, str]]] = {
+                'google.longrunning.Operations.DeleteOperation': [
+                    {
+                        'method': 'delete',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+                    },
+                ],
+                'google.longrunning.Operations.GetOperation': [
+                    {
+                        'method': 'get',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+                    },
+                ],
+                'google.longrunning.Operations.ListOperations': [
+                    {
+                        'method': 'get',
+                        'uri': '/v2/{name=projects/*/locations/*}/operations',
+                    },
+                ],
+                'google.longrunning.Operations.WaitOperation': [
+                    {
+                        'method': 'post',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                        'body': '*',
+                    },
+                ],
+            }
+
+            rest_transport = operations_v1.OperationsRestTransport(
+                    host=self._host,
+                    # use the credentials which are saved
+                    credentials=self._credentials,
+                    scopes=self._scopes,
+                    http_options=http_options,
+                    path_prefix="v2")
+
+            self._operations_client = operations_v1.AbstractOperationsClient(transport=rest_transport)
+
+        # Return the client from cache.
+        return self._operations_client
+
+    class _CreateJob(_BaseJobsRestTransport._BaseCreateJob, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.CreateJob")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: gcr_job.CreateJobRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the create job method over HTTP.
+
+            Args:
+                request (~.gcr_job.CreateJobRequest):
+                    The request object. Request message for creating a Job.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseJobsRestTransport._BaseCreateJob._get_http_options()
+            request, metadata = self._interceptor.pre_create_job(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseCreateJob._get_transcoded_request(http_options, request)
+
+            body = _BaseJobsRestTransport._BaseCreateJob._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseCreateJob._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._CreateJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_create_job(resp)
+            return resp
+
+    class _DeleteJob(_BaseJobsRestTransport._BaseDeleteJob, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.DeleteJob")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: job.DeleteJobRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the delete job method over HTTP.
+
+            Args:
+                request (~.job.DeleteJobRequest):
+                    The request object. Request message to delete a Job by
+                its full name.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseJobsRestTransport._BaseDeleteJob._get_http_options()
+            request, metadata = self._interceptor.pre_delete_job(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseDeleteJob._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseDeleteJob._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._DeleteJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_delete_job(resp)
+            return resp
+
+    class _GetIamPolicy(_BaseJobsRestTransport._BaseGetIamPolicy, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.GetIamPolicy")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: iam_policy_pb2.GetIamPolicyRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> policy_pb2.Policy:
+            r"""Call the get iam policy method over HTTP.
+
+            Args:
+                request (~.iam_policy_pb2.GetIamPolicyRequest):
+                    The request object. Request message for ``GetIamPolicy`` method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.policy_pb2.Policy:
+                    An Identity and Access Management (IAM) policy, which
+                specifies access controls for Google Cloud resources.
+
+                A ``Policy`` is a collection of ``bindings``. A
+                ``binding`` binds one or more ``members``, or
+                principals, to a single ``role``. Principals can be user
+                accounts, service accounts, Google groups, and domains
+                (such as G Suite). A ``role`` is a named list of
+                permissions; each ``role`` can be an IAM predefined role
+                or a user-created custom role.
+
+                For some types of Google Cloud resources, a ``binding``
+                can also specify a ``condition``, which is a logical
+                expression that allows access to a resource only if the
+                expression evaluates to ``true``. A condition can add
+                constraints based on attributes of the request, the
+                resource, or both. To learn which resources support
+                conditions in their IAM policies, see the `IAM
+                documentation <https://cloud.google.com/iam/help/conditions/resource-policies>`__.
+
+                **JSON example:**
+
+                ::
+
+                       {
+                         "bindings": [
+                           {
+                             "role": "roles/resourcemanager.organizationAdmin",
+                             "members": [
+                               "user:mike@example.com",
+                               "group:admins@example.com",
+                               "domain:google.com",
+                               "serviceAccount:my-project-id@appspot.gserviceaccount.com"
+                             ]
+                           },
+                           {
+                             "role": "roles/resourcemanager.organizationViewer",
+                             "members": [
+                               "user:eve@example.com"
+                             ],
+                             "condition": {
+                               "title": "expirable access",
+                               "description": "Does not grant access after Sep 2020",
+                               "expression": "request.time <
+                               timestamp('2020-10-01T00:00:00.000Z')",
+                             }
+                           }
+                         ],
+                         "etag": "BwWWja0YfJA=",
+                         "version": 3
+                       }
+
+                **YAML example:**
+
+                ::
+
+                       bindings:
+                       - members:
+                         - user:mike@example.com
+                         - group:admins@example.com
+                         - domain:google.com
+                         - serviceAccount:my-project-id@appspot.gserviceaccount.com
+                         role: roles/resourcemanager.organizationAdmin
+                       - members:
+                         - user:eve@example.com
+                         role: roles/resourcemanager.organizationViewer
+                         condition:
+                           title: expirable access
+                           description: Does not grant access after Sep 2020
+                           expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
+                       etag: BwWWja0YfJA=
+                       version: 3
+
+                For a description of IAM and its features, see the `IAM
+                documentation <https://cloud.google.com/iam/docs/>`__.
+
+            """
+
+            http_options = _BaseJobsRestTransport._BaseGetIamPolicy._get_http_options()
+            request, metadata = self._interceptor.pre_get_iam_policy(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseGetIamPolicy._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseGetIamPolicy._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._GetIamPolicy._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = policy_pb2.Policy()
+            pb_resp = resp
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_get_iam_policy(resp)
+            return resp
+
+    class _GetJob(_BaseJobsRestTransport._BaseGetJob, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.GetJob")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: job.GetJobRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> job.Job:
+            r"""Call the get job method over HTTP.
+
+            Args:
+                request (~.job.GetJobRequest):
+                    The request object. Request message for obtaining a Job
+                by its full name.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.job.Job:
+                    Job represents the configuration of a
+                single job, which references a container
+                image that is run to completion.
+
+            """
+
+            http_options = _BaseJobsRestTransport._BaseGetJob._get_http_options()
+            request, metadata = self._interceptor.pre_get_job(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseGetJob._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseGetJob._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._GetJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = job.Job()
+            pb_resp = job.Job.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_get_job(resp)
+            return resp
+
+    class _ListJobs(_BaseJobsRestTransport._BaseListJobs, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.ListJobs")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: job.ListJobsRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> job.ListJobsResponse:
+            r"""Call the list jobs method over HTTP.
+
+            Args:
+                request (~.job.ListJobsRequest):
+                    The request object. Request message for retrieving a list
+                of Jobs.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.job.ListJobsResponse:
+                    Response message containing a list of
+                Jobs.
+
+            """
+
+            http_options = _BaseJobsRestTransport._BaseListJobs._get_http_options()
+            request, metadata = self._interceptor.pre_list_jobs(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseListJobs._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseListJobs._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._ListJobs._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = job.ListJobsResponse()
+            pb_resp = job.ListJobsResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_list_jobs(resp)
+            return resp
+
+    class _RunJob(_BaseJobsRestTransport._BaseRunJob, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.RunJob")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: job.RunJobRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the run job method over HTTP.
+
+            Args:
+                request (~.job.RunJobRequest):
+                    The request object. Request message to create a new
+                Execution of a Job.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseJobsRestTransport._BaseRunJob._get_http_options()
+            request, metadata = self._interceptor.pre_run_job(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseRunJob._get_transcoded_request(http_options, request)
+
+            body = _BaseJobsRestTransport._BaseRunJob._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseRunJob._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._RunJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_run_job(resp)
+            return resp
+
+    class _SetIamPolicy(_BaseJobsRestTransport._BaseSetIamPolicy, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.SetIamPolicy")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: iam_policy_pb2.SetIamPolicyRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> policy_pb2.Policy:
+            r"""Call the set iam policy method over HTTP.
+
+            Args:
+                request (~.iam_policy_pb2.SetIamPolicyRequest):
+                    The request object. Request message for ``SetIamPolicy`` method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.policy_pb2.Policy:
+                    An Identity and Access Management (IAM) policy, which
+                specifies access controls for Google Cloud resources.
+
+                A ``Policy`` is a collection of ``bindings``. A
+                ``binding`` binds one or more ``members``, or
+                principals, to a single ``role``. Principals can be user
+                accounts, service accounts, Google groups, and domains
+                (such as G Suite). A ``role`` is a named list of
+                permissions; each ``role`` can be an IAM predefined role
+                or a user-created custom role.
+
+                For some types of Google Cloud resources, a ``binding``
+                can also specify a ``condition``, which is a logical
+                expression that allows access to a resource only if the
+                expression evaluates to ``true``. A condition can add
+                constraints based on attributes of the request, the
+                resource, or both. To learn which resources support
+                conditions in their IAM policies, see the `IAM
+                documentation <https://cloud.google.com/iam/help/conditions/resource-policies>`__.
+
+                **JSON example:**
+
+                ::
+
+                       {
+                         "bindings": [
+                           {
+                             "role": "roles/resourcemanager.organizationAdmin",
+                             "members": [
+                               "user:mike@example.com",
+                               "group:admins@example.com",
+                               "domain:google.com",
+                               "serviceAccount:my-project-id@appspot.gserviceaccount.com"
+                             ]
+                           },
+                           {
+                             "role": "roles/resourcemanager.organizationViewer",
+                             "members": [
+                               "user:eve@example.com"
+                             ],
+                             "condition": {
+                               "title": "expirable access",
+                               "description": "Does not grant access after Sep 2020",
+                               "expression": "request.time <
+                               timestamp('2020-10-01T00:00:00.000Z')",
+                             }
+                           }
+                         ],
+                         "etag": "BwWWja0YfJA=",
+                         "version": 3
+                       }
+
+                **YAML example:**
+
+                ::
+
+                       bindings:
+                       - members:
+                         - user:mike@example.com
+                         - group:admins@example.com
+                         - domain:google.com
+                         - serviceAccount:my-project-id@appspot.gserviceaccount.com
+                         role: roles/resourcemanager.organizationAdmin
+                       - members:
+                         - user:eve@example.com
+                         role: roles/resourcemanager.organizationViewer
+                         condition:
+                           title: expirable access
+                           description: Does not grant access after Sep 2020
+                           expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
+                       etag: BwWWja0YfJA=
+                       version: 3
+
+                For a description of IAM and its features, see the `IAM
+                documentation <https://cloud.google.com/iam/docs/>`__.
+
+            """
+
+            http_options = _BaseJobsRestTransport._BaseSetIamPolicy._get_http_options()
+            request, metadata = self._interceptor.pre_set_iam_policy(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseSetIamPolicy._get_transcoded_request(http_options, request)
+
+            body = _BaseJobsRestTransport._BaseSetIamPolicy._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseSetIamPolicy._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._SetIamPolicy._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = policy_pb2.Policy()
+            pb_resp = resp
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_set_iam_policy(resp)
+            return resp
+
+    class _TestIamPermissions(_BaseJobsRestTransport._BaseTestIamPermissions, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.TestIamPermissions")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: iam_policy_pb2.TestIamPermissionsRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> iam_policy_pb2.TestIamPermissionsResponse:
+            r"""Call the test iam permissions method over HTTP.
+
+            Args:
+                request (~.iam_policy_pb2.TestIamPermissionsRequest):
+                    The request object. Request message for ``TestIamPermissions`` method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.iam_policy_pb2.TestIamPermissionsResponse:
+                    Response message for ``TestIamPermissions`` method.
+            """
+
+            http_options = _BaseJobsRestTransport._BaseTestIamPermissions._get_http_options()
+            request, metadata = self._interceptor.pre_test_iam_permissions(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseTestIamPermissions._get_transcoded_request(http_options, request)
+
+            body = _BaseJobsRestTransport._BaseTestIamPermissions._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseTestIamPermissions._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._TestIamPermissions._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = iam_policy_pb2.TestIamPermissionsResponse()
+            pb_resp = resp
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_test_iam_permissions(resp)
+            return resp
+
+    class _UpdateJob(_BaseJobsRestTransport._BaseUpdateJob, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.UpdateJob")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: gcr_job.UpdateJobRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the update job method over HTTP.
+
+            Args:
+                request (~.gcr_job.UpdateJobRequest):
+                    The request object. Request message for updating a Job.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseJobsRestTransport._BaseUpdateJob._get_http_options()
+            request, metadata = self._interceptor.pre_update_job(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseUpdateJob._get_transcoded_request(http_options, request)
+
+            body = _BaseJobsRestTransport._BaseUpdateJob._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseUpdateJob._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._UpdateJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_update_job(resp)
+            return resp
+
+    @property
+    def create_job(self) -> Callable[
+            [gcr_job.CreateJobRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._CreateJob(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_job(self) -> Callable[
+            [job.DeleteJobRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._DeleteJob(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def get_iam_policy(self) -> Callable[
+            [iam_policy_pb2.GetIamPolicyRequest],
+            policy_pb2.Policy]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._GetIamPolicy(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def get_job(self) -> Callable[
+            [job.GetJobRequest],
+            job.Job]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._GetJob(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def list_jobs(self) -> Callable[
+            [job.ListJobsRequest],
+            job.ListJobsResponse]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._ListJobs(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def run_job(self) -> Callable[
+            [job.RunJobRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._RunJob(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def set_iam_policy(self) -> Callable[
+            [iam_policy_pb2.SetIamPolicyRequest],
+            policy_pb2.Policy]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._SetIamPolicy(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def test_iam_permissions(self) -> Callable[
+            [iam_policy_pb2.TestIamPermissionsRequest],
+            iam_policy_pb2.TestIamPermissionsResponse]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._TestIamPermissions(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def update_job(self) -> Callable[
+            [gcr_job.UpdateJobRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._UpdateJob(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_operation(self):
+        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _DeleteOperation(_BaseJobsRestTransport._BaseDeleteOperation, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.DeleteOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.DeleteOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> None:
+
+            r"""Call the delete operation method over HTTP.
+
+            Args:
+                request (operations_pb2.DeleteOperationRequest):
+                    The request object for DeleteOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+            """
+
+            http_options = _BaseJobsRestTransport._BaseDeleteOperation._get_http_options()
+            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            return self._interceptor.post_delete_operation(None)
+
+    @property
+    def get_operation(self):
+        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _GetOperation(_BaseJobsRestTransport._BaseGetOperation, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.GetOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.GetOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the get operation method over HTTP.
+
+            Args:
+                request (operations_pb2.GetOperationRequest):
+                    The request object for GetOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from GetOperation method.
+            """
+
+            http_options = _BaseJobsRestTransport._BaseGetOperation._get_http_options()
+            request, metadata = self._interceptor.pre_get_operation(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_get_operation(resp)
+            return resp
+
+    @property
+    def list_operations(self):
+        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
+
+    class _ListOperations(_BaseJobsRestTransport._BaseListOperations, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.ListOperations")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.ListOperationsRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.ListOperationsResponse:
+
+            r"""Call the list operations method over HTTP.
+
+            Args:
+                request (operations_pb2.ListOperationsRequest):
+                    The request object for ListOperations method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.ListOperationsResponse: Response from ListOperations method.
+            """
+
+            http_options = _BaseJobsRestTransport._BaseListOperations._get_http_options()
+            request, metadata = self._interceptor.pre_list_operations(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.ListOperationsResponse()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_list_operations(resp)
+            return resp
+
+    @property
+    def wait_operation(self):
+        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _WaitOperation(_BaseJobsRestTransport._BaseWaitOperation, JobsRestStub):
+        def __hash__(self):
+            return hash("JobsRestTransport.WaitOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.WaitOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the wait operation method over HTTP.
+
+            Args:
+                request (operations_pb2.WaitOperationRequest):
+                    The request object for WaitOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from WaitOperation method.
+            """
+
+            http_options = _BaseJobsRestTransport._BaseWaitOperation._get_http_options()
+            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
+            transcoded_request = _BaseJobsRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
+
+            body = _BaseJobsRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseJobsRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = JobsRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_wait_operation(resp)
+            return resp
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'JobsRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest_base.py
new file mode 100644
index 000000000000..e3edb3fc23b9
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest_base.py
@@ -0,0 +1,584 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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  # type: ignore
+from google.api_core import path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.cloud.location import locations_pb2 # type: ignore
+from .base import JobsTransport, DEFAULT_CLIENT_INFO
+
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+
+
+from google.cloud.run_v2.types import job
+from google.cloud.run_v2.types import job as gcr_job
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2  # type: ignore
+
+
+class _BaseJobsRestTransport(JobsTransport):
+    """Base REST backend transport for Jobs.
+
+    Note: This class is not meant to be used directly. Use its sync and
+    async sub-classes instead.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[Any] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            url_scheme: str = 'https',
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[Any]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
+        if maybe_url_match is None:
+            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
+
+        url_match_items = maybe_url_match.groupdict()
+
+        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
+
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience
+        )
+
+    class _BaseCreateJob:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+            "jobId" : "",        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{parent=projects/*/locations/*}/jobs',
+                'body': 'job',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = gcr_job.CreateJobRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseCreateJob._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteJob:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/jobs/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = job.DeleteJobRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseDeleteJob._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseGetIamPolicy:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{resource=projects/*/locations/*/jobs/*}:getIamPolicy',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = request
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseGetIamPolicy._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseGetJob:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/jobs/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = job.GetJobRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseGetJob._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseListJobs:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{parent=projects/*/locations/*}/jobs',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = job.ListJobsRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseListJobs._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseRunJob:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{name=projects/*/locations/*/jobs/*}:run',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = job.RunJobRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseRunJob._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseSetIamPolicy:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{resource=projects/*/locations/*/jobs/*}:setIamPolicy',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = request
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseSetIamPolicy._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseTestIamPermissions:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{resource=projects/*/locations/*/jobs/*}:testIamPermissions',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = request
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseTestIamPermissions._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseUpdateJob:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'patch',
+                'uri': '/v2/{job.name=projects/*/locations/*/jobs/*}',
+                'body': 'job',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = gcr_job.UpdateJobRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseJobsRestTransport._BaseUpdateJob._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseGetOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseListOperations:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*}/operations',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseWaitOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            body = json.dumps(transcoded_request['body'])
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+
+__all__=(
+    '_BaseJobsRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/__init__.py
new file mode 100644
index 000000000000..00ff1866adbe
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from .client import RevisionsClient
+from .async_client import RevisionsAsyncClient
+
+__all__ = (
+    'RevisionsClient',
+    'RevisionsAsyncClient',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/async_client.py
new file mode 100644
index 000000000000..aa8325ddadde
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/async_client.py
@@ -0,0 +1,834 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core.client_options import ClientOptions
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry_async as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+
+try:
+    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import operation  # type: ignore
+from google.api_core import operation_async  # type: ignore
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.revisions import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import revision
+from google.cloud.run_v2.types import status
+from google.cloud.run_v2.types import vendor_settings
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import RevisionsTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import RevisionsGrpcAsyncIOTransport
+from .client import RevisionsClient
+
+
+class RevisionsAsyncClient:
+    """Cloud Run Revision Control Plane API."""
+
+    _client: RevisionsClient
+
+    # Copy defaults from the synchronous client for use here.
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = RevisionsClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = RevisionsClient.DEFAULT_MTLS_ENDPOINT
+    _DEFAULT_ENDPOINT_TEMPLATE = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE
+    _DEFAULT_UNIVERSE = RevisionsClient._DEFAULT_UNIVERSE
+
+    connector_path = staticmethod(RevisionsClient.connector_path)
+    parse_connector_path = staticmethod(RevisionsClient.parse_connector_path)
+    crypto_key_path = staticmethod(RevisionsClient.crypto_key_path)
+    parse_crypto_key_path = staticmethod(RevisionsClient.parse_crypto_key_path)
+    mesh_path = staticmethod(RevisionsClient.mesh_path)
+    parse_mesh_path = staticmethod(RevisionsClient.parse_mesh_path)
+    revision_path = staticmethod(RevisionsClient.revision_path)
+    parse_revision_path = staticmethod(RevisionsClient.parse_revision_path)
+    secret_path = staticmethod(RevisionsClient.secret_path)
+    parse_secret_path = staticmethod(RevisionsClient.parse_secret_path)
+    secret_version_path = staticmethod(RevisionsClient.secret_version_path)
+    parse_secret_version_path = staticmethod(RevisionsClient.parse_secret_version_path)
+    service_path = staticmethod(RevisionsClient.service_path)
+    parse_service_path = staticmethod(RevisionsClient.parse_service_path)
+    common_billing_account_path = staticmethod(RevisionsClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(RevisionsClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(RevisionsClient.common_folder_path)
+    parse_common_folder_path = staticmethod(RevisionsClient.parse_common_folder_path)
+    common_organization_path = staticmethod(RevisionsClient.common_organization_path)
+    parse_common_organization_path = staticmethod(RevisionsClient.parse_common_organization_path)
+    common_project_path = staticmethod(RevisionsClient.common_project_path)
+    parse_common_project_path = staticmethod(RevisionsClient.parse_common_project_path)
+    common_location_path = staticmethod(RevisionsClient.common_location_path)
+    parse_common_location_path = staticmethod(RevisionsClient.parse_common_location_path)
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            RevisionsAsyncClient: The constructed client.
+        """
+        return RevisionsClient.from_service_account_info.__func__(RevisionsAsyncClient, info, *args, **kwargs)  # type: ignore
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            RevisionsAsyncClient: The constructed client.
+        """
+        return RevisionsClient.from_service_account_file.__func__(RevisionsAsyncClient, filename, *args, **kwargs)  # type: ignore
+
+    from_service_account_json = from_service_account_file
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
+        """Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+        return RevisionsClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> RevisionsTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            RevisionsTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._client._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used
+                by the client instance.
+        """
+        return self._client._universe_domain
+
+    get_transport_class = RevisionsClient.get_transport_class
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, RevisionsTransport, Callable[..., RevisionsTransport]]] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the revisions async client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,RevisionsTransport,Callable[..., RevisionsTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport to use.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the RevisionsTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = RevisionsClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def get_revision(self,
+            request: Optional[Union[revision.GetRevisionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> revision.Revision:
+        r"""Gets information about a Revision.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_get_revision():
+                # Create a client
+                client = run_v2.RevisionsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetRevisionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = await client.get_revision(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.GetRevisionRequest, dict]]):
+                The request object. Request message for obtaining a
+                Revision by its full name.
+            name (:class:`str`):
+                Required. The full name of the
+                Revision. Format:
+
+                projects/{project}/locations/{location}/services/{service}/revisions/{revision}
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Revision:
+                A Revision is an immutable snapshot
+                of code and configuration.  A Revision
+                references a container image. Revisions
+                are only created by updates to its
+                parent Service.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, revision.GetRevisionRequest):
+            request = revision.GetRevisionRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.get_revision]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_revisions(self,
+            request: Optional[Union[revision.ListRevisionsRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListRevisionsAsyncPager:
+        r"""Lists Revisions from a given Service, or from a given
+        location.  Results are sorted by creation time,
+        descending.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_list_revisions():
+                # Create a client
+                client = run_v2.RevisionsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListRevisionsRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_revisions(request=request)
+
+                # Handle the response
+                async for response in page_result:
+                    print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.ListRevisionsRequest, dict]]):
+                The request object. Request message for retrieving a list
+                of Revisions.
+            parent (:class:`str`):
+                Required. The Service from which the
+                Revisions should be listed. To list all
+                Revisions across Services, use "-"
+                instead of Service name. Format:
+
+                projects/{project}/locations/{location}/services/{service}
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.revisions.pagers.ListRevisionsAsyncPager:
+                Response message containing a list of
+                Revisions.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, revision.ListRevisionsRequest):
+            request = revision.ListRevisionsRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if parent is not None:
+            request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.list_revisions]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__aiter__` convenience method.
+        response = pagers.ListRevisionsAsyncPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def delete_revision(self,
+            request: Optional[Union[revision.DeleteRevisionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Deletes a Revision.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_delete_revision():
+                # Create a client
+                client = run_v2.RevisionsAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.DeleteRevisionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.delete_revision(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.DeleteRevisionRequest, dict]]):
+                The request object. Request message for deleting a
+                retired Revision. Revision lifecycle is
+                usually managed by making changes to the
+                parent Service. Only retired revisions
+                can be deleted with this API.
+            name (:class:`str`):
+                Required. The name of the Revision to
+                delete. Format:
+
+                projects/{project}/locations/{location}/services/{service}/revisions/{revision}
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Revision` A Revision is an immutable snapshot of code and configuration. A Revision
+                   references a container image. Revisions are only
+                   created by updates to its parent Service.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, revision.DeleteRevisionRequest):
+            request = revision.DeleteRevisionRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.delete_revision]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            revision.Revision,
+            metadata_type=revision.Revision,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    async def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "RevisionsAsyncClient":
+        return self
+
+    async def __aexit__(self, exc_type, exc, tb):
+        await self.transport.close()
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "RevisionsAsyncClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/client.py
new file mode 100644
index 000000000000..6145da966620
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/client.py
@@ -0,0 +1,1215 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import os
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+import warnings
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core import client_options as client_options_lib
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials             # type: ignore
+from google.auth.transport import mtls                            # type: ignore
+from google.auth.transport.grpc import SslCredentials             # type: ignore
+from google.auth.exceptions import MutualTLSChannelError          # type: ignore
+from google.oauth2 import service_account                         # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import operation  # type: ignore
+from google.api_core import operation_async  # type: ignore
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.revisions import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import revision
+from google.cloud.run_v2.types import status
+from google.cloud.run_v2.types import vendor_settings
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import RevisionsTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import RevisionsGrpcTransport
+from .transports.grpc_asyncio import RevisionsGrpcAsyncIOTransport
+from .transports.rest import RevisionsRestTransport
+
+
+class RevisionsClientMeta(type):
+    """Metaclass for the Revisions client.
+
+    This provides class-level methods for building and retrieving
+    support objects (e.g. transport) without polluting the client instance
+    objects.
+    """
+    _transport_registry = OrderedDict()  # type: Dict[str, Type[RevisionsTransport]]
+    _transport_registry["grpc"] = RevisionsGrpcTransport
+    _transport_registry["grpc_asyncio"] = RevisionsGrpcAsyncIOTransport
+    _transport_registry["rest"] = RevisionsRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[RevisionsTransport]:
+        """Returns an appropriate transport class.
+
+        Args:
+            label: The name of the desired transport. If none is
+                provided, then the first transport in the registry is used.
+
+        Returns:
+            The transport class to use.
+        """
+        # If a specific transport is requested, return that one.
+        if label:
+            return cls._transport_registry[label]
+
+        # No transport is requested; return the default (that is, the first one
+        # in the dictionary).
+        return next(iter(cls._transport_registry.values()))
+
+
+class RevisionsClient(metaclass=RevisionsClientMeta):
+    """Cloud Run Revision Control Plane API."""
+
+    @staticmethod
+    def _get_default_mtls_endpoint(api_endpoint):
+        """Converts api endpoint to mTLS endpoint.
+
+        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
+        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
+        Args:
+            api_endpoint (Optional[str]): the api endpoint to convert.
+        Returns:
+            str: converted mTLS api endpoint.
+        """
+        if not api_endpoint:
+            return api_endpoint
+
+        mtls_endpoint_re = re.compile(
+            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
+        )
+
+        m = mtls_endpoint_re.match(api_endpoint)
+        name, mtls, sandbox, googledomain = m.groups()
+        if mtls or not googledomain:
+            return api_endpoint
+
+        if sandbox:
+            return api_endpoint.replace(
+                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
+            )
+
+        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
+
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = "run.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
+    _DEFAULT_UNIVERSE = "googleapis.com"
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            RevisionsClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_info(info)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            RevisionsClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_file(
+            filename)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    from_service_account_json = from_service_account_file
+
+    @property
+    def transport(self) -> RevisionsTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            RevisionsTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @staticmethod
+    def connector_path(project: str,location: str,connector: str,) -> str:
+        """Returns a fully-qualified connector string."""
+        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+
+    @staticmethod
+    def parse_connector_path(path: str) -> Dict[str,str]:
+        """Parses a connector path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
+        """Returns a fully-qualified crypto_key string."""
+        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+
+    @staticmethod
+    def parse_crypto_key_path(path: str) -> Dict[str,str]:
+        """Parses a crypto_key path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def mesh_path(project: str,location: str,mesh: str,) -> str:
+        """Returns a fully-qualified mesh string."""
+        return "projects/{project}/locations/{location}/meshes/{mesh}".format(project=project, location=location, mesh=mesh, )
+
+    @staticmethod
+    def parse_mesh_path(path: str) -> Dict[str,str]:
+        """Parses a mesh path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/meshes/(?P<mesh>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def revision_path(project: str,location: str,service: str,revision: str,) -> str:
+        """Returns a fully-qualified revision string."""
+        return "projects/{project}/locations/{location}/services/{service}/revisions/{revision}".format(project=project, location=location, service=service, revision=revision, )
+
+    @staticmethod
+    def parse_revision_path(path: str) -> Dict[str,str]:
+        """Parses a revision path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/services/(?P<service>.+?)/revisions/(?P<revision>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_path(project: str,secret: str,) -> str:
+        """Returns a fully-qualified secret string."""
+        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+
+    @staticmethod
+    def parse_secret_path(path: str) -> Dict[str,str]:
+        """Parses a secret path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_version_path(project: str,secret: str,version: str,) -> str:
+        """Returns a fully-qualified secret_version string."""
+        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+
+    @staticmethod
+    def parse_secret_version_path(path: str) -> Dict[str,str]:
+        """Parses a secret_version path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def service_path(project: str,location: str,service: str,) -> str:
+        """Returns a fully-qualified service string."""
+        return "projects/{project}/locations/{location}/services/{service}".format(project=project, location=location, service=service, )
+
+    @staticmethod
+    def parse_service_path(path: str) -> Dict[str,str]:
+        """Parses a service path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/services/(?P<service>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_billing_account_path(billing_account: str, ) -> str:
+        """Returns a fully-qualified billing_account string."""
+        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+
+    @staticmethod
+    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
+        """Parse a billing_account path into its component segments."""
+        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_folder_path(folder: str, ) -> str:
+        """Returns a fully-qualified folder string."""
+        return "folders/{folder}".format(folder=folder, )
+
+    @staticmethod
+    def parse_common_folder_path(path: str) -> Dict[str,str]:
+        """Parse a folder path into its component segments."""
+        m = re.match(r"^folders/(?P<folder>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_organization_path(organization: str, ) -> str:
+        """Returns a fully-qualified organization string."""
+        return "organizations/{organization}".format(organization=organization, )
+
+    @staticmethod
+    def parse_common_organization_path(path: str) -> Dict[str,str]:
+        """Parse a organization path into its component segments."""
+        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_project_path(project: str, ) -> str:
+        """Returns a fully-qualified project string."""
+        return "projects/{project}".format(project=project, )
+
+    @staticmethod
+    def parse_common_project_path(path: str) -> Dict[str,str]:
+        """Parse a project path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_location_path(project: str, location: str, ) -> str:
+        """Returns a fully-qualified location string."""
+        return "projects/{project}/locations/{location}".format(project=project, location=location, )
+
+    @staticmethod
+    def parse_common_location_path(path: str) -> Dict[str,str]:
+        """Parse a location path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
+        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+
+        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
+            DeprecationWarning)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+
+        # Figure out the client cert source to use.
+        client_cert_source = None
+        if use_client_cert == "true":
+            if client_options.client_cert_source:
+                client_cert_source = client_options.client_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+
+        # Figure out which api endpoint to use.
+        if client_options.api_endpoint is not None:
+            api_endpoint = client_options.api_endpoint
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = cls.DEFAULT_ENDPOINT
+
+        return api_endpoint, client_cert_source
+
+    @staticmethod
+    def _read_environment_variables():
+        """Returns the environment variables used by the client.
+
+        Returns:
+            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
+            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
+
+        Raises:
+            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
+                any of ["true", "false"].
+            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
+                is not any of ["auto", "never", "always"].
+        """
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
+        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
+
+    @staticmethod
+    def _get_client_cert_source(provided_cert_source, use_cert_flag):
+        """Return the client cert source to be used by the client.
+
+        Args:
+            provided_cert_source (bytes): The client certificate source provided.
+            use_cert_flag (bool): A flag indicating whether to use the client certificate.
+
+        Returns:
+            bytes or None: The client cert source to be used by the client.
+        """
+        client_cert_source = None
+        if use_cert_flag:
+            if provided_cert_source:
+                client_cert_source = provided_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+        return client_cert_source
+
+    @staticmethod
+    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
+        """Return the API endpoint used by the client.
+
+        Args:
+            api_override (str): The API endpoint override. If specified, this is always
+                the return value of this function and the other arguments are not used.
+            client_cert_source (bytes): The client certificate source used by the client.
+            universe_domain (str): The universe domain used by the client.
+            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
+                Possible values are "always", "auto", or "never".
+
+        Returns:
+            str: The API endpoint to be used by the client.
+        """
+        if api_override is not None:
+            api_endpoint = api_override
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            _default_universe = RevisionsClient._DEFAULT_UNIVERSE
+            if universe_domain != _default_universe:
+                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
+            api_endpoint = RevisionsClient.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
+        return api_endpoint
+
+    @staticmethod
+    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
+        """Return the universe domain used by the client.
+
+        Args:
+            client_universe_domain (Optional[str]): The universe domain configured via the client options.
+            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
+
+        Returns:
+            str: The universe domain to be used by the client.
+
+        Raises:
+            ValueError: If the universe domain is an empty string.
+        """
+        universe_domain = RevisionsClient._DEFAULT_UNIVERSE
+        if client_universe_domain is not None:
+            universe_domain = client_universe_domain
+        elif universe_domain_env is not None:
+            universe_domain = universe_domain_env
+        if len(universe_domain.strip()) == 0:
+            raise ValueError("Universe Domain cannot be an empty string.")
+        return universe_domain
+
+    def _validate_universe_domain(self):
+        """Validates client's and credentials' universe domains are consistent.
+
+        Returns:
+            bool: True iff the configured universe domain is valid.
+
+        Raises:
+            ValueError: If the configured universe domain is not valid.
+        """
+
+        # NOTE (b/349488459): universe validation is disabled until further notice.
+        return True
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used by the client instance.
+        """
+        return self._universe_domain
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, RevisionsTransport, Callable[..., RevisionsTransport]]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the revisions client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,RevisionsTransport,Callable[..., RevisionsTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the RevisionsTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that the ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client_options = client_options
+        if isinstance(self._client_options, dict):
+            self._client_options = client_options_lib.from_dict(self._client_options)
+        if self._client_options is None:
+            self._client_options = client_options_lib.ClientOptions()
+        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
+
+        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
+
+        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = RevisionsClient._read_environment_variables()
+        self._client_cert_source = RevisionsClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
+        self._universe_domain = RevisionsClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
+        self._api_endpoint = None # updated below, depending on `transport`
+
+        # Initialize the universe domain validation.
+        self._is_universe_domain_valid = False
+
+        api_key_value = getattr(self._client_options, "api_key", None)
+        if api_key_value and credentials:
+            raise ValueError("client_options.api_key and credentials are mutually exclusive")
+
+        # Save or instantiate the transport.
+        # Ordinarily, we provide the transport, but allowing a custom transport
+        # instance provides an extensibility point for unusual situations.
+        transport_provided = isinstance(transport, RevisionsTransport)
+        if transport_provided:
+            # transport is a RevisionsTransport instance.
+            if credentials or self._client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if self._client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = cast(RevisionsTransport, transport)
+            self._api_endpoint = self._transport.host
+
+        self._api_endpoint = (self._api_endpoint or
+            RevisionsClient._get_api_endpoint(
+                self._client_options.api_endpoint,
+                self._client_cert_source,
+                self._universe_domain,
+                self._use_mtls_endpoint))
+
+        if not transport_provided:
+            import google.auth._default  # type: ignore
+
+            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
+                credentials = google.auth._default.get_api_key_credentials(api_key_value)
+
+            transport_init: Union[Type[RevisionsTransport], Callable[..., RevisionsTransport]] = (
+                RevisionsClient.get_transport_class(transport)
+                if isinstance(transport, str) or transport is None
+                else cast(Callable[..., RevisionsTransport], transport)
+            )
+            # initialize with the provided callable or the passed in class
+            self._transport = transport_init(
+                credentials=credentials,
+                credentials_file=self._client_options.credentials_file,
+                host=self._api_endpoint,
+                scopes=self._client_options.scopes,
+                client_cert_source_for_mtls=self._client_cert_source,
+                quota_project_id=self._client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=self._client_options.api_audience,
+            )
+
+    def get_revision(self,
+            request: Optional[Union[revision.GetRevisionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> revision.Revision:
+        r"""Gets information about a Revision.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_get_revision():
+                # Create a client
+                client = run_v2.RevisionsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetRevisionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = client.get_revision(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.GetRevisionRequest, dict]):
+                The request object. Request message for obtaining a
+                Revision by its full name.
+            name (str):
+                Required. The full name of the
+                Revision. Format:
+
+                projects/{project}/locations/{location}/services/{service}/revisions/{revision}
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Revision:
+                A Revision is an immutable snapshot
+                of code and configuration.  A Revision
+                references a container image. Revisions
+                are only created by updates to its
+                parent Service.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, revision.GetRevisionRequest):
+            request = revision.GetRevisionRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_revision]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def list_revisions(self,
+            request: Optional[Union[revision.ListRevisionsRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListRevisionsPager:
+        r"""Lists Revisions from a given Service, or from a given
+        location.  Results are sorted by creation time,
+        descending.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_list_revisions():
+                # Create a client
+                client = run_v2.RevisionsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListRevisionsRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_revisions(request=request)
+
+                # Handle the response
+                for response in page_result:
+                    print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.ListRevisionsRequest, dict]):
+                The request object. Request message for retrieving a list
+                of Revisions.
+            parent (str):
+                Required. The Service from which the
+                Revisions should be listed. To list all
+                Revisions across Services, use "-"
+                instead of Service name. Format:
+
+                projects/{project}/locations/{location}/services/{service}
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.revisions.pagers.ListRevisionsPager:
+                Response message containing a list of
+                Revisions.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, revision.ListRevisionsRequest):
+            request = revision.ListRevisionsRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if parent is not None:
+                request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_revisions]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__iter__` convenience method.
+        response = pagers.ListRevisionsPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def delete_revision(self,
+            request: Optional[Union[revision.DeleteRevisionRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Deletes a Revision.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_delete_revision():
+                # Create a client
+                client = run_v2.RevisionsClient()
+
+                # Initialize request argument(s)
+                request = run_v2.DeleteRevisionRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.delete_revision(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.DeleteRevisionRequest, dict]):
+                The request object. Request message for deleting a
+                retired Revision. Revision lifecycle is
+                usually managed by making changes to the
+                parent Service. Only retired revisions
+                can be deleted with this API.
+            name (str):
+                Required. The name of the Revision to
+                delete. Format:
+
+                projects/{project}/locations/{location}/services/{service}/revisions/{revision}
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Revision` A Revision is an immutable snapshot of code and configuration. A Revision
+                   references a container image. Revisions are only
+                   created by updates to its parent Service.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, revision.DeleteRevisionRequest):
+            request = revision.DeleteRevisionRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_revision]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            revision.Revision,
+            metadata_type=revision.Revision,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "RevisionsClient":
+        return self
+
+    def __exit__(self, type, value, traceback):
+        """Releases underlying transport's resources.
+
+        .. warning::
+            ONLY use as a context manager if the transport is NOT shared
+            with other clients! Exiting the with block will CLOSE the transport
+            and may cause errors in other clients!
+        """
+        self.transport.close()
+
+    def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "RevisionsClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/pagers.py
new file mode 100644
index 000000000000..8a289a1c9e86
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/pagers.py
@@ -0,0 +1,162 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import retry_async as retries_async
+from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
+
+from google.cloud.run_v2.types import revision
+
+
+class ListRevisionsPager:
+    """A pager for iterating through ``list_revisions`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListRevisionsResponse` object, and
+    provides an ``__iter__`` method to iterate through its
+    ``revisions`` field.
+
+    If there are more pages, the ``__iter__`` method will make additional
+    ``ListRevisions`` requests and continue to iterate
+    through the ``revisions`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListRevisionsResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., revision.ListRevisionsResponse],
+            request: revision.ListRevisionsRequest,
+            response: revision.ListRevisionsResponse,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiate the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListRevisionsRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListRevisionsResponse):
+                The initial response object.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = revision.ListRevisionsRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    def pages(self) -> Iterator[revision.ListRevisionsResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+
+    def __iter__(self) -> Iterator[revision.Revision]:
+        for page in self.pages:
+            yield from page.revisions
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
+
+
+class ListRevisionsAsyncPager:
+    """A pager for iterating through ``list_revisions`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListRevisionsResponse` object, and
+    provides an ``__aiter__`` method to iterate through its
+    ``revisions`` field.
+
+    If there are more pages, the ``__aiter__`` method will make additional
+    ``ListRevisions`` requests and continue to iterate
+    through the ``revisions`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListRevisionsResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., Awaitable[revision.ListRevisionsResponse]],
+            request: revision.ListRevisionsRequest,
+            response: revision.ListRevisionsResponse,
+            *,
+            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiates the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListRevisionsRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListRevisionsResponse):
+                The initial response object.
+            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = revision.ListRevisionsRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    async def pages(self) -> AsyncIterator[revision.ListRevisionsResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+    def __aiter__(self) -> AsyncIterator[revision.Revision]:
+        async def async_generator():
+            async for page in self.pages:
+                for response in page.revisions:
+                    yield response
+
+        return async_generator()
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/README.rst
new file mode 100644
index 000000000000..81dc915c3637
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/README.rst
@@ -0,0 +1,9 @@
+
+transport inheritance structure
+_______________________________
+
+`RevisionsTransport` is the ABC for all transports.
+- public child `RevisionsGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
+- public child `RevisionsGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
+- private child `_BaseRevisionsRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
+- public child `RevisionsRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/__init__.py
new file mode 100644
index 000000000000..668b1b7a8e0d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+from typing import Dict, Type
+
+from .base import RevisionsTransport
+from .grpc import RevisionsGrpcTransport
+from .grpc_asyncio import RevisionsGrpcAsyncIOTransport
+from .rest import RevisionsRestTransport
+from .rest import RevisionsRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[RevisionsTransport]]
+_transport_registry['grpc'] = RevisionsGrpcTransport
+_transport_registry['grpc_asyncio'] = RevisionsGrpcAsyncIOTransport
+_transport_registry['rest'] = RevisionsRestTransport
+
+__all__ = (
+    'RevisionsTransport',
+    'RevisionsGrpcTransport',
+    'RevisionsGrpcAsyncIOTransport',
+    'RevisionsRestTransport',
+    'RevisionsRestInterceptor',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/base.py
new file mode 100644
index 000000000000..effb9620423f
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/base.py
@@ -0,0 +1,246 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 abc
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+import google.auth  # type: ignore
+import google.api_core
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import operations_v1
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.oauth2 import service_account # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import revision
+from google.longrunning import operations_pb2 # type: ignore
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class RevisionsTransport(abc.ABC):
+    """Abstract transport class for Revisions."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'run.googleapis.com'
+    def __init__(
+            self, *,
+            host: str = DEFAULT_HOST,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            **kwargs,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A list of scopes.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+        """
+
+        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
+
+        # Save the scopes.
+        self._scopes = scopes
+        if not hasattr(self, "_ignore_credentials"):
+            self._ignore_credentials: bool = False
+
+        # If no credentials are provided, then determine the appropriate
+        # defaults.
+        if credentials and credentials_file:
+            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
+
+        if credentials_file is not None:
+            credentials, _ = google.auth.load_credentials_from_file(
+                                credentials_file,
+                                **scopes_kwargs,
+                                quota_project_id=quota_project_id
+                            )
+        elif credentials is None and not self._ignore_credentials:
+            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
+            # Don't apply audience if the credentials file passed from user.
+            if hasattr(credentials, "with_gdch_audience"):
+                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
+
+        # If the credentials are service account credentials, then always try to use self signed JWT.
+        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
+            credentials = credentials.with_always_use_jwt_access(True)
+
+        # Save the credentials.
+        self._credentials = credentials
+
+        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
+        if ':' not in host:
+            host += ':443'
+        self._host = host
+
+    @property
+    def host(self):
+        return self._host
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.get_revision: gapic_v1.method.wrap_method(
+                self.get_revision,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_revisions: gapic_v1.method.wrap_method(
+                self.list_revisions,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_revision: gapic_v1.method.wrap_method(
+                self.delete_revision,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: gapic_v1.method.wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: gapic_v1.method.wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: gapic_v1.method.wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: gapic_v1.method.wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+         }
+
+    def close(self):
+        """Closes resources associated with the transport.
+
+       .. warning::
+            Only call this method if the transport is NOT shared
+            with other clients - this may cause errors in other clients!
+        """
+        raise NotImplementedError()
+
+    @property
+    def operations_client(self):
+        """Return the client designed to process long-running operations."""
+        raise NotImplementedError()
+
+    @property
+    def get_revision(self) -> Callable[
+            [revision.GetRevisionRequest],
+            Union[
+                revision.Revision,
+                Awaitable[revision.Revision]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_revisions(self) -> Callable[
+            [revision.ListRevisionsRequest],
+            Union[
+                revision.ListRevisionsResponse,
+                Awaitable[revision.ListRevisionsResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def delete_revision(self) -> Callable[
+            [revision.DeleteRevisionRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[
+        [operations_pb2.ListOperationsRequest],
+        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.GetOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.DeleteOperationRequest],
+        None,
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.WaitOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'RevisionsTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc.py
new file mode 100644
index 000000000000..654b11fcb540
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc.py
@@ -0,0 +1,416 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 warnings
+from typing import Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import grpc_helpers
+from google.api_core import operations_v1
+from google.api_core import gapic_v1
+import google.auth                         # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import revision
+from google.longrunning import operations_pb2 # type: ignore
+from .base import RevisionsTransport, DEFAULT_CLIENT_INFO
+
+
+class RevisionsGrpcTransport(RevisionsTransport):
+    """gRPC backend transport for Revisions.
+
+    Cloud Run Revision Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+    _stubs: Dict[str, Callable]
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[grpc.Channel, Callable[..., 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,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if a ``channel`` instance is provided.
+            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+        self._operations_client: Optional[operations_v1.OperationsClient] = None
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, grpc.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._prep_wrapped_messages(client_info)
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> grpc.Channel:
+        """Create and return a gRPC channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            grpc.Channel: A gRPC channel object.
+
+        Raises:
+            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+
+        return grpc_helpers.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    @property
+    def grpc_channel(self) -> grpc.Channel:
+        """Return the channel designed to connect to this service.
+        """
+        return self._grpc_channel
+
+    @property
+    def operations_client(self) -> operations_v1.OperationsClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Quick check: Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            self._operations_client = operations_v1.OperationsClient(
+                self.grpc_channel
+            )
+
+        # Return the client from cache.
+        return self._operations_client
+
+    @property
+    def get_revision(self) -> Callable[
+            [revision.GetRevisionRequest],
+            revision.Revision]:
+        r"""Return a callable for the get revision method over gRPC.
+
+        Gets information about a Revision.
+
+        Returns:
+            Callable[[~.GetRevisionRequest],
+                    ~.Revision]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_revision' not in self._stubs:
+            self._stubs['get_revision'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Revisions/GetRevision',
+                request_serializer=revision.GetRevisionRequest.serialize,
+                response_deserializer=revision.Revision.deserialize,
+            )
+        return self._stubs['get_revision']
+
+    @property
+    def list_revisions(self) -> Callable[
+            [revision.ListRevisionsRequest],
+            revision.ListRevisionsResponse]:
+        r"""Return a callable for the list revisions method over gRPC.
+
+        Lists Revisions from a given Service, or from a given
+        location.  Results are sorted by creation time,
+        descending.
+
+        Returns:
+            Callable[[~.ListRevisionsRequest],
+                    ~.ListRevisionsResponse]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_revisions' not in self._stubs:
+            self._stubs['list_revisions'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Revisions/ListRevisions',
+                request_serializer=revision.ListRevisionsRequest.serialize,
+                response_deserializer=revision.ListRevisionsResponse.deserialize,
+            )
+        return self._stubs['list_revisions']
+
+    @property
+    def delete_revision(self) -> Callable[
+            [revision.DeleteRevisionRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the delete revision method over gRPC.
+
+        Deletes a Revision.
+
+        Returns:
+            Callable[[~.DeleteRevisionRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'delete_revision' not in self._stubs:
+            self._stubs['delete_revision'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Revisions/DeleteRevision',
+                request_serializer=revision.DeleteRevisionRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['delete_revision']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'RevisionsGrpcTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc_asyncio.py
new file mode 100644
index 000000000000..1e1f0d31f514
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc_asyncio.py
@@ -0,0 +1,467 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 inspect
+import warnings
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry_async as retries
+from google.api_core import operations_v1
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc                        # type: ignore
+from grpc.experimental import aio  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import revision
+from google.longrunning import operations_pb2 # type: ignore
+from .base import RevisionsTransport, DEFAULT_CLIENT_INFO
+from .grpc import RevisionsGrpcTransport
+
+
+class RevisionsGrpcAsyncIOTransport(RevisionsTransport):
+    """gRPC AsyncIO backend transport for Revisions.
+
+    Cloud Run Revision Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+
+    _grpc_channel: aio.Channel
+    _stubs: Dict[str, Callable] = {}
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> aio.Channel:
+        """Create and return a gRPC AsyncIO channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            aio.Channel: A gRPC AsyncIO channel object.
+        """
+
+        return grpc_helpers_async.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[aio.Channel, Callable[..., 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,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, aio.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def grpc_channel(self) -> aio.Channel:
+        """Create the channel designed to connect to this service.
+
+        This property caches on the instance; repeated calls return
+        the same channel.
+        """
+        # Return the channel from cache.
+        return self._grpc_channel
+
+    @property
+    def operations_client(self) -> operations_v1.OperationsAsyncClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Quick check: Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            self._operations_client = operations_v1.OperationsAsyncClient(
+                self.grpc_channel
+            )
+
+        # Return the client from cache.
+        return self._operations_client
+
+    @property
+    def get_revision(self) -> Callable[
+            [revision.GetRevisionRequest],
+            Awaitable[revision.Revision]]:
+        r"""Return a callable for the get revision method over gRPC.
+
+        Gets information about a Revision.
+
+        Returns:
+            Callable[[~.GetRevisionRequest],
+                    Awaitable[~.Revision]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_revision' not in self._stubs:
+            self._stubs['get_revision'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Revisions/GetRevision',
+                request_serializer=revision.GetRevisionRequest.serialize,
+                response_deserializer=revision.Revision.deserialize,
+            )
+        return self._stubs['get_revision']
+
+    @property
+    def list_revisions(self) -> Callable[
+            [revision.ListRevisionsRequest],
+            Awaitable[revision.ListRevisionsResponse]]:
+        r"""Return a callable for the list revisions method over gRPC.
+
+        Lists Revisions from a given Service, or from a given
+        location.  Results are sorted by creation time,
+        descending.
+
+        Returns:
+            Callable[[~.ListRevisionsRequest],
+                    Awaitable[~.ListRevisionsResponse]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_revisions' not in self._stubs:
+            self._stubs['list_revisions'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Revisions/ListRevisions',
+                request_serializer=revision.ListRevisionsRequest.serialize,
+                response_deserializer=revision.ListRevisionsResponse.deserialize,
+            )
+        return self._stubs['list_revisions']
+
+    @property
+    def delete_revision(self) -> Callable[
+            [revision.DeleteRevisionRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the delete revision method over gRPC.
+
+        Deletes a Revision.
+
+        Returns:
+            Callable[[~.DeleteRevisionRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'delete_revision' not in self._stubs:
+            self._stubs['delete_revision'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Revisions/DeleteRevision',
+                request_serializer=revision.DeleteRevisionRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['delete_revision']
+
+    def _prep_wrapped_messages(self, client_info):
+        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
+        self._wrapped_methods = {
+            self.get_revision: self._wrap_method(
+                self.get_revision,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_revisions: self._wrap_method(
+                self.list_revisions,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_revision: self._wrap_method(
+                self.delete_revision,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: self._wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: self._wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: self._wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: self._wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+        }
+
+    def _wrap_method(self, func, *args, **kwargs):
+        if self._wrap_with_kind:  # pragma: NO COVER
+            kwargs["kind"] = self.kind
+        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
+
+    def close(self):
+        return self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc_asyncio"
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+
+__all__ = (
+    'RevisionsGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest.py
new file mode 100644
index 000000000000..a79e87ca7bb7
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest.py
@@ -0,0 +1,920 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+
+from google.auth.transport.requests import AuthorizedSession  # type: ignore
+import json  # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry as retries
+from google.api_core import rest_helpers
+from google.api_core import rest_streaming
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.api_core import operations_v1
+from google.cloud.location import locations_pb2 # type: ignore
+
+from requests import __version__ as requests_version
+import dataclasses
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+
+from google.cloud.run_v2.types import revision
+from google.longrunning import operations_pb2  # type: ignore
+
+
+from .rest_base import _BaseRevisionsRestTransport
+from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=f"requests@{requests_version}",
+)
+
+
+class RevisionsRestInterceptor:
+    """Interceptor for Revisions.
+
+    Interceptors are used to manipulate requests, request metadata, and responses
+    in arbitrary ways.
+    Example use cases include:
+    * Logging
+    * Verifying requests according to service or custom semantics
+    * Stripping extraneous information from responses
+
+    These use cases and more can be enabled by injecting an
+    instance of a custom subclass when constructing the RevisionsRestTransport.
+
+    .. code-block:: python
+        class MyCustomRevisionsInterceptor(RevisionsRestInterceptor):
+            def pre_delete_revision(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_delete_revision(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_get_revision(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_get_revision(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_list_revisions(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_list_revisions(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = RevisionsRestTransport(interceptor=MyCustomRevisionsInterceptor())
+        client = RevisionsClient(transport=transport)
+
+
+    """
+    def pre_delete_revision(self, request: revision.DeleteRevisionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[revision.DeleteRevisionRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_revision
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Revisions server.
+        """
+        return request, metadata
+
+    def post_delete_revision(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for delete_revision
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Revisions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_revision(self, request: revision.GetRevisionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[revision.GetRevisionRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_revision
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Revisions server.
+        """
+        return request, metadata
+
+    def post_get_revision(self, response: revision.Revision) -> revision.Revision:
+        """Post-rpc interceptor for get_revision
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Revisions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_revisions(self, request: revision.ListRevisionsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[revision.ListRevisionsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_revisions
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Revisions server.
+        """
+        return request, metadata
+
+    def post_list_revisions(self, response: revision.ListRevisionsResponse) -> revision.ListRevisionsResponse:
+        """Post-rpc interceptor for list_revisions
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Revisions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_operation(
+        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Revisions server.
+        """
+        return request, metadata
+
+    def post_delete_operation(
+        self, response: None
+    ) -> None:
+        """Post-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Revisions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_operation(
+        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Revisions server.
+        """
+        return request, metadata
+
+    def post_get_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Revisions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_operations(
+        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Revisions server.
+        """
+        return request, metadata
+
+    def post_list_operations(
+        self, response: operations_pb2.ListOperationsResponse
+    ) -> operations_pb2.ListOperationsResponse:
+        """Post-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Revisions server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_wait_operation(
+        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Revisions server.
+        """
+        return request, metadata
+
+    def post_wait_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Revisions server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class RevisionsRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: RevisionsRestInterceptor
+
+
+class RevisionsRestTransport(_BaseRevisionsRestTransport):
+    """REST backend synchronous transport for Revisions.
+
+    Cloud Run Revision Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            url_scheme: str = 'https',
+            interceptor: Optional[RevisionsRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
+                certificate to configure mutual TLS HTTP channel. It is ignored
+                if ``channel`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
+        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
+        # credentials object
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            url_scheme=url_scheme,
+            api_audience=api_audience
+        )
+        self._session = AuthorizedSession(
+            self._credentials, default_host=self.DEFAULT_HOST)
+        self._operations_client: Optional[operations_v1.AbstractOperationsClient] = None
+        if client_cert_source_for_mtls:
+            self._session.configure_mtls_channel(client_cert_source_for_mtls)
+        self._interceptor = interceptor or RevisionsRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def operations_client(self) -> operations_v1.AbstractOperationsClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            http_options: Dict[str, List[Dict[str, str]]] = {
+                'google.longrunning.Operations.DeleteOperation': [
+                    {
+                        'method': 'delete',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+                    },
+                ],
+                'google.longrunning.Operations.GetOperation': [
+                    {
+                        'method': 'get',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+                    },
+                ],
+                'google.longrunning.Operations.ListOperations': [
+                    {
+                        'method': 'get',
+                        'uri': '/v2/{name=projects/*/locations/*}/operations',
+                    },
+                ],
+                'google.longrunning.Operations.WaitOperation': [
+                    {
+                        'method': 'post',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                        'body': '*',
+                    },
+                ],
+            }
+
+            rest_transport = operations_v1.OperationsRestTransport(
+                    host=self._host,
+                    # use the credentials which are saved
+                    credentials=self._credentials,
+                    scopes=self._scopes,
+                    http_options=http_options,
+                    path_prefix="v2")
+
+            self._operations_client = operations_v1.AbstractOperationsClient(transport=rest_transport)
+
+        # Return the client from cache.
+        return self._operations_client
+
+    class _DeleteRevision(_BaseRevisionsRestTransport._BaseDeleteRevision, RevisionsRestStub):
+        def __hash__(self):
+            return hash("RevisionsRestTransport.DeleteRevision")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: revision.DeleteRevisionRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the delete revision method over HTTP.
+
+            Args:
+                request (~.revision.DeleteRevisionRequest):
+                    The request object. Request message for deleting a
+                retired Revision. Revision lifecycle is
+                usually managed by making changes to the
+                parent Service. Only retired revisions
+                can be deleted with this API.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseRevisionsRestTransport._BaseDeleteRevision._get_http_options()
+            request, metadata = self._interceptor.pre_delete_revision(request, metadata)
+            transcoded_request = _BaseRevisionsRestTransport._BaseDeleteRevision._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseRevisionsRestTransport._BaseDeleteRevision._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = RevisionsRestTransport._DeleteRevision._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_delete_revision(resp)
+            return resp
+
+    class _GetRevision(_BaseRevisionsRestTransport._BaseGetRevision, RevisionsRestStub):
+        def __hash__(self):
+            return hash("RevisionsRestTransport.GetRevision")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: revision.GetRevisionRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> revision.Revision:
+            r"""Call the get revision method over HTTP.
+
+            Args:
+                request (~.revision.GetRevisionRequest):
+                    The request object. Request message for obtaining a
+                Revision by its full name.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.revision.Revision:
+                    A Revision is an immutable snapshot
+                of code and configuration.  A Revision
+                references a container image. Revisions
+                are only created by updates to its
+                parent Service.
+
+            """
+
+            http_options = _BaseRevisionsRestTransport._BaseGetRevision._get_http_options()
+            request, metadata = self._interceptor.pre_get_revision(request, metadata)
+            transcoded_request = _BaseRevisionsRestTransport._BaseGetRevision._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseRevisionsRestTransport._BaseGetRevision._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = RevisionsRestTransport._GetRevision._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = revision.Revision()
+            pb_resp = revision.Revision.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_get_revision(resp)
+            return resp
+
+    class _ListRevisions(_BaseRevisionsRestTransport._BaseListRevisions, RevisionsRestStub):
+        def __hash__(self):
+            return hash("RevisionsRestTransport.ListRevisions")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: revision.ListRevisionsRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> revision.ListRevisionsResponse:
+            r"""Call the list revisions method over HTTP.
+
+            Args:
+                request (~.revision.ListRevisionsRequest):
+                    The request object. Request message for retrieving a list
+                of Revisions.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.revision.ListRevisionsResponse:
+                    Response message containing a list of
+                Revisions.
+
+            """
+
+            http_options = _BaseRevisionsRestTransport._BaseListRevisions._get_http_options()
+            request, metadata = self._interceptor.pre_list_revisions(request, metadata)
+            transcoded_request = _BaseRevisionsRestTransport._BaseListRevisions._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseRevisionsRestTransport._BaseListRevisions._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = RevisionsRestTransport._ListRevisions._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = revision.ListRevisionsResponse()
+            pb_resp = revision.ListRevisionsResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_list_revisions(resp)
+            return resp
+
+    @property
+    def delete_revision(self) -> Callable[
+            [revision.DeleteRevisionRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._DeleteRevision(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def get_revision(self) -> Callable[
+            [revision.GetRevisionRequest],
+            revision.Revision]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._GetRevision(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def list_revisions(self) -> Callable[
+            [revision.ListRevisionsRequest],
+            revision.ListRevisionsResponse]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._ListRevisions(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_operation(self):
+        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _DeleteOperation(_BaseRevisionsRestTransport._BaseDeleteOperation, RevisionsRestStub):
+        def __hash__(self):
+            return hash("RevisionsRestTransport.DeleteOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.DeleteOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> None:
+
+            r"""Call the delete operation method over HTTP.
+
+            Args:
+                request (operations_pb2.DeleteOperationRequest):
+                    The request object for DeleteOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+            """
+
+            http_options = _BaseRevisionsRestTransport._BaseDeleteOperation._get_http_options()
+            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
+            transcoded_request = _BaseRevisionsRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseRevisionsRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = RevisionsRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            return self._interceptor.post_delete_operation(None)
+
+    @property
+    def get_operation(self):
+        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _GetOperation(_BaseRevisionsRestTransport._BaseGetOperation, RevisionsRestStub):
+        def __hash__(self):
+            return hash("RevisionsRestTransport.GetOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.GetOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the get operation method over HTTP.
+
+            Args:
+                request (operations_pb2.GetOperationRequest):
+                    The request object for GetOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from GetOperation method.
+            """
+
+            http_options = _BaseRevisionsRestTransport._BaseGetOperation._get_http_options()
+            request, metadata = self._interceptor.pre_get_operation(request, metadata)
+            transcoded_request = _BaseRevisionsRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseRevisionsRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = RevisionsRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_get_operation(resp)
+            return resp
+
+    @property
+    def list_operations(self):
+        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
+
+    class _ListOperations(_BaseRevisionsRestTransport._BaseListOperations, RevisionsRestStub):
+        def __hash__(self):
+            return hash("RevisionsRestTransport.ListOperations")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.ListOperationsRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.ListOperationsResponse:
+
+            r"""Call the list operations method over HTTP.
+
+            Args:
+                request (operations_pb2.ListOperationsRequest):
+                    The request object for ListOperations method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.ListOperationsResponse: Response from ListOperations method.
+            """
+
+            http_options = _BaseRevisionsRestTransport._BaseListOperations._get_http_options()
+            request, metadata = self._interceptor.pre_list_operations(request, metadata)
+            transcoded_request = _BaseRevisionsRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseRevisionsRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = RevisionsRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.ListOperationsResponse()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_list_operations(resp)
+            return resp
+
+    @property
+    def wait_operation(self):
+        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _WaitOperation(_BaseRevisionsRestTransport._BaseWaitOperation, RevisionsRestStub):
+        def __hash__(self):
+            return hash("RevisionsRestTransport.WaitOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.WaitOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the wait operation method over HTTP.
+
+            Args:
+                request (operations_pb2.WaitOperationRequest):
+                    The request object for WaitOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from WaitOperation method.
+            """
+
+            http_options = _BaseRevisionsRestTransport._BaseWaitOperation._get_http_options()
+            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
+            transcoded_request = _BaseRevisionsRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
+
+            body = _BaseRevisionsRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseRevisionsRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = RevisionsRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_wait_operation(resp)
+            return resp
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'RevisionsRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest_base.py
new file mode 100644
index 000000000000..c9449f26cd35
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest_base.py
@@ -0,0 +1,309 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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  # type: ignore
+from google.api_core import path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.cloud.location import locations_pb2 # type: ignore
+from .base import RevisionsTransport, DEFAULT_CLIENT_INFO
+
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+
+
+from google.cloud.run_v2.types import revision
+from google.longrunning import operations_pb2  # type: ignore
+
+
+class _BaseRevisionsRestTransport(RevisionsTransport):
+    """Base REST backend transport for Revisions.
+
+    Note: This class is not meant to be used directly. Use its sync and
+    async sub-classes instead.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[Any] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            url_scheme: str = 'https',
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[Any]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
+        if maybe_url_match is None:
+            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
+
+        url_match_items = maybe_url_match.groupdict()
+
+        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
+
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience
+        )
+
+    class _BaseDeleteRevision:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/services/*/revisions/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = revision.DeleteRevisionRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseRevisionsRestTransport._BaseDeleteRevision._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseGetRevision:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/services/*/revisions/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = revision.GetRevisionRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseRevisionsRestTransport._BaseGetRevision._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseListRevisions:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{parent=projects/*/locations/*/services/*}/revisions',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = revision.ListRevisionsRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseRevisionsRestTransport._BaseListRevisions._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseGetOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseListOperations:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*}/operations',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseWaitOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            body = json.dumps(transcoded_request['body'])
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+
+__all__=(
+    '_BaseRevisionsRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/__init__.py
new file mode 100644
index 000000000000..84358a0d50c5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from .client import ServicesClient
+from .async_client import ServicesAsyncClient
+
+__all__ = (
+    'ServicesClient',
+    'ServicesAsyncClient',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/async_client.py
new file mode 100644
index 000000000000..9ad4423d0275
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/async_client.py
@@ -0,0 +1,1452 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core.client_options import ClientOptions
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry_async as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+
+try:
+    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import operation  # type: ignore
+from google.api_core import operation_async  # type: ignore
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.services import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import revision_template
+from google.cloud.run_v2.types import service
+from google.cloud.run_v2.types import service as gcr_service
+from google.cloud.run_v2.types import traffic_target
+from google.cloud.run_v2.types import vendor_settings
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import field_mask_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import ServicesTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import ServicesGrpcAsyncIOTransport
+from .client import ServicesClient
+
+
+class ServicesAsyncClient:
+    """Cloud Run Service Control Plane API"""
+
+    _client: ServicesClient
+
+    # Copy defaults from the synchronous client for use here.
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = ServicesClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = ServicesClient.DEFAULT_MTLS_ENDPOINT
+    _DEFAULT_ENDPOINT_TEMPLATE = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE
+    _DEFAULT_UNIVERSE = ServicesClient._DEFAULT_UNIVERSE
+
+    connector_path = staticmethod(ServicesClient.connector_path)
+    parse_connector_path = staticmethod(ServicesClient.parse_connector_path)
+    crypto_key_path = staticmethod(ServicesClient.crypto_key_path)
+    parse_crypto_key_path = staticmethod(ServicesClient.parse_crypto_key_path)
+    mesh_path = staticmethod(ServicesClient.mesh_path)
+    parse_mesh_path = staticmethod(ServicesClient.parse_mesh_path)
+    policy_path = staticmethod(ServicesClient.policy_path)
+    parse_policy_path = staticmethod(ServicesClient.parse_policy_path)
+    revision_path = staticmethod(ServicesClient.revision_path)
+    parse_revision_path = staticmethod(ServicesClient.parse_revision_path)
+    secret_path = staticmethod(ServicesClient.secret_path)
+    parse_secret_path = staticmethod(ServicesClient.parse_secret_path)
+    secret_version_path = staticmethod(ServicesClient.secret_version_path)
+    parse_secret_version_path = staticmethod(ServicesClient.parse_secret_version_path)
+    service_path = staticmethod(ServicesClient.service_path)
+    parse_service_path = staticmethod(ServicesClient.parse_service_path)
+    common_billing_account_path = staticmethod(ServicesClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(ServicesClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(ServicesClient.common_folder_path)
+    parse_common_folder_path = staticmethod(ServicesClient.parse_common_folder_path)
+    common_organization_path = staticmethod(ServicesClient.common_organization_path)
+    parse_common_organization_path = staticmethod(ServicesClient.parse_common_organization_path)
+    common_project_path = staticmethod(ServicesClient.common_project_path)
+    parse_common_project_path = staticmethod(ServicesClient.parse_common_project_path)
+    common_location_path = staticmethod(ServicesClient.common_location_path)
+    parse_common_location_path = staticmethod(ServicesClient.parse_common_location_path)
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            ServicesAsyncClient: The constructed client.
+        """
+        return ServicesClient.from_service_account_info.__func__(ServicesAsyncClient, info, *args, **kwargs)  # type: ignore
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            ServicesAsyncClient: The constructed client.
+        """
+        return ServicesClient.from_service_account_file.__func__(ServicesAsyncClient, filename, *args, **kwargs)  # type: ignore
+
+    from_service_account_json = from_service_account_file
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
+        """Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+        return ServicesClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> ServicesTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ServicesTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._client._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used
+                by the client instance.
+        """
+        return self._client._universe_domain
+
+    get_transport_class = ServicesClient.get_transport_class
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, ServicesTransport, Callable[..., ServicesTransport]]] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the services async client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,ServicesTransport,Callable[..., ServicesTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport to use.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the ServicesTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = ServicesClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def create_service(self,
+            request: Optional[Union[gcr_service.CreateServiceRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            service: Optional[gcr_service.Service] = None,
+            service_id: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Creates a new Service in a given project and
+        location.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_create_service():
+                # Create a client
+                client = run_v2.ServicesAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.CreateServiceRequest(
+                    parent="parent_value",
+                    service_id="service_id_value",
+                )
+
+                # Make the request
+                operation = client.create_service(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.CreateServiceRequest, dict]]):
+                The request object. Request message for creating a
+                Service.
+            parent (:class:`str`):
+                Required. The location and project in
+                which this service should be created.
+                Format:
+                projects/{project}/locations/{location},
+                where {project} can be project id or
+                number. Only lowercase characters,
+                digits, and hyphens.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            service (:class:`google.cloud.run_v2.types.Service`):
+                Required. The Service instance to
+                create.
+
+                This corresponds to the ``service`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            service_id (:class:`str`):
+                Required. The unique identifier for the Service. It must
+                begin with letter, and cannot end with hyphen; must
+                contain fewer than 50 characters. The name of the
+                service becomes {parent}/services/{service_id}.
+
+                This corresponds to the ``service_id`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
+                   configurations and revision templates which implement
+                   a network service. Service exists to provide a
+                   singular abstraction which can be access controlled,
+                   reasoned about, and which encapsulates software
+                   lifecycle decisions such as rollout policy and team
+                   resource ownership.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent, service, service_id])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, gcr_service.CreateServiceRequest):
+            request = gcr_service.CreateServiceRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if parent is not None:
+            request.parent = parent
+        if service is not None:
+            request.service = service
+        if service_id is not None:
+            request.service_id = service_id
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.create_service]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            gcr_service.Service,
+            metadata_type=gcr_service.Service,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def get_service(self,
+            request: Optional[Union[service.GetServiceRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> service.Service:
+        r"""Gets information about a Service.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_get_service():
+                # Create a client
+                client = run_v2.ServicesAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetServiceRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = await client.get_service(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.GetServiceRequest, dict]]):
+                The request object. Request message for obtaining a
+                Service by its full name.
+            name (:class:`str`):
+                Required. The full name of the
+                Service. Format:
+                projects/{project}/locations/{location}/services/{service},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Service:
+                Service acts as a top-level container
+                that manages a set of configurations and
+                revision templates which implement a
+                network service. Service exists to
+                provide a singular abstraction which can
+                be access controlled, reasoned about,
+                and which encapsulates software
+                lifecycle decisions such as rollout
+                policy and team resource ownership.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, service.GetServiceRequest):
+            request = service.GetServiceRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.get_service]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_services(self,
+            request: Optional[Union[service.ListServicesRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListServicesAsyncPager:
+        r"""Lists Services. Results are sorted by creation time,
+        descending.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_list_services():
+                # Create a client
+                client = run_v2.ServicesAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListServicesRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_services(request=request)
+
+                # Handle the response
+                async for response in page_result:
+                    print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.ListServicesRequest, dict]]):
+                The request object. Request message for retrieving a list
+                of Services.
+            parent (:class:`str`):
+                Required. The location and project to
+                list resources on. Location must be a
+                valid Google Cloud region, and cannot be
+                the "-" wildcard. Format:
+                projects/{project}/locations/{location},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.services.pagers.ListServicesAsyncPager:
+                Response message containing a list of
+                Services.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, service.ListServicesRequest):
+            request = service.ListServicesRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if parent is not None:
+            request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.list_services]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__aiter__` convenience method.
+        response = pagers.ListServicesAsyncPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def update_service(self,
+            request: Optional[Union[gcr_service.UpdateServiceRequest, dict]] = None,
+            *,
+            service: Optional[gcr_service.Service] = None,
+            update_mask: Optional[field_mask_pb2.FieldMask] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Updates a Service.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_update_service():
+                # Create a client
+                client = run_v2.ServicesAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.UpdateServiceRequest(
+                )
+
+                # Make the request
+                operation = client.update_service(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.UpdateServiceRequest, dict]]):
+                The request object. Request message for updating a
+                service.
+            service (:class:`google.cloud.run_v2.types.Service`):
+                Required. The Service to be updated.
+                This corresponds to the ``service`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`):
+                Optional. The list of fields to be
+                updated.
+
+                This corresponds to the ``update_mask`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
+                   configurations and revision templates which implement
+                   a network service. Service exists to provide a
+                   singular abstraction which can be access controlled,
+                   reasoned about, and which encapsulates software
+                   lifecycle decisions such as rollout policy and team
+                   resource ownership.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([service, update_mask])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, gcr_service.UpdateServiceRequest):
+            request = gcr_service.UpdateServiceRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if service is not None:
+            request.service = service
+        if update_mask is not None:
+            request.update_mask = update_mask
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.update_service]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.service.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            gcr_service.Service,
+            metadata_type=gcr_service.Service,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def delete_service(self,
+            request: Optional[Union[service.DeleteServiceRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation_async.AsyncOperation:
+        r"""Deletes a Service.
+        This will cause the Service to stop serving traffic and
+        will delete all revisions.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_delete_service():
+                # Create a client
+                client = run_v2.ServicesAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.DeleteServiceRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.delete_service(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = (await operation).result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.DeleteServiceRequest, dict]]):
+                The request object. Request message to delete a Service
+                by its full name.
+            name (:class:`str`):
+                Required. The full name of the
+                Service. Format:
+                projects/{project}/locations/{location}/services/{service},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation_async.AsyncOperation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
+                   configurations and revision templates which implement
+                   a network service. Service exists to provide a
+                   singular abstraction which can be access controlled,
+                   reasoned about, and which encapsulates software
+                   lifecycle decisions such as rollout policy and team
+                   resource ownership.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, service.DeleteServiceRequest):
+            request = service.DeleteServiceRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.delete_service]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation_async.from_gapic(
+            response,
+            self._client._transport.operations_client,
+            service.Service,
+            metadata_type=service.Service,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def get_iam_policy(self,
+            request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> policy_pb2.Policy:
+        r"""Gets the IAM Access Control policy currently in
+        effect for the given Cloud Run Service. This result does
+        not include any inherited policies.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            async def sample_get_iam_policy():
+                # Create a client
+                client = run_v2.ServicesAsyncClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.GetIamPolicyRequest(
+                    resource="resource_value",
+                )
+
+                # Make the request
+                response = await client.get_iam_policy(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]]):
+                The request object. Request message for ``GetIamPolicy`` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.policy_pb2.Policy:
+                An Identity and Access Management (IAM) policy, which specifies access
+                   controls for Google Cloud resources.
+
+                   A Policy is a collection of bindings. A binding binds
+                   one or more members, or principals, to a single role.
+                   Principals can be user accounts, service accounts,
+                   Google groups, and domains (such as G Suite). A role
+                   is a named list of permissions; each role can be an
+                   IAM predefined role or a user-created custom role.
+
+                   For some types of Google Cloud resources, a binding
+                   can also specify a condition, which is a logical
+                   expression that allows access to a resource only if
+                   the expression evaluates to true. A condition can add
+                   constraints based on attributes of the request, the
+                   resource, or both. To learn which resources support
+                   conditions in their IAM policies, see the [IAM
+                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
+
+                   **JSON example:**
+
+                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
+
+                   **YAML example:**
+
+                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
+
+                   For a description of IAM and its features, see the
+                   [IAM
+                   documentation](\ https://cloud.google.com/iam/docs/).
+
+        """
+        # Create or coerce a protobuf request object.
+         # - The request isn't a proto-plus wrapped type,
+        #   so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = iam_policy_pb2.GetIamPolicyRequest(**request)
+        elif not request:
+            request = iam_policy_pb2.GetIamPolicyRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.get_iam_policy]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def set_iam_policy(self,
+            request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> policy_pb2.Policy:
+        r"""Sets the IAM Access control policy for the specified
+        Service. Overwrites any existing policy.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            async def sample_set_iam_policy():
+                # Create a client
+                client = run_v2.ServicesAsyncClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.SetIamPolicyRequest(
+                    resource="resource_value",
+                )
+
+                # Make the request
+                response = await client.set_iam_policy(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]]):
+                The request object. Request message for ``SetIamPolicy`` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.policy_pb2.Policy:
+                An Identity and Access Management (IAM) policy, which specifies access
+                   controls for Google Cloud resources.
+
+                   A Policy is a collection of bindings. A binding binds
+                   one or more members, or principals, to a single role.
+                   Principals can be user accounts, service accounts,
+                   Google groups, and domains (such as G Suite). A role
+                   is a named list of permissions; each role can be an
+                   IAM predefined role or a user-created custom role.
+
+                   For some types of Google Cloud resources, a binding
+                   can also specify a condition, which is a logical
+                   expression that allows access to a resource only if
+                   the expression evaluates to true. A condition can add
+                   constraints based on attributes of the request, the
+                   resource, or both. To learn which resources support
+                   conditions in their IAM policies, see the [IAM
+                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
+
+                   **JSON example:**
+
+                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
+
+                   **YAML example:**
+
+                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
+
+                   For a description of IAM and its features, see the
+                   [IAM
+                   documentation](\ https://cloud.google.com/iam/docs/).
+
+        """
+        # Create or coerce a protobuf request object.
+         # - The request isn't a proto-plus wrapped type,
+        #   so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = iam_policy_pb2.SetIamPolicyRequest(**request)
+        elif not request:
+            request = iam_policy_pb2.SetIamPolicyRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.set_iam_policy]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def test_iam_permissions(self,
+            request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> iam_policy_pb2.TestIamPermissionsResponse:
+        r"""Returns permissions that a caller has on the
+        specified Project.
+        There are no permissions required for making this API
+        call.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            async def sample_test_iam_permissions():
+                # Create a client
+                client = run_v2.ServicesAsyncClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.TestIamPermissionsRequest(
+                    resource="resource_value",
+                    permissions=['permissions_value1', 'permissions_value2'],
+                )
+
+                # Make the request
+                response = await client.test_iam_permissions(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]]):
+                The request object. Request message for ``TestIamPermissions`` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse:
+                Response message for TestIamPermissions method.
+        """
+        # Create or coerce a protobuf request object.
+         # - The request isn't a proto-plus wrapped type,
+        #   so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = iam_policy_pb2.TestIamPermissionsRequest(**request)
+        elif not request:
+            request = iam_policy_pb2.TestIamPermissionsRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.test_iam_permissions]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    async def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "ServicesAsyncClient":
+        return self
+
+    async def __aexit__(self, exc_type, exc, tb):
+        await self.transport.close()
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "ServicesAsyncClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/client.py
new file mode 100644
index 000000000000..9bd8e801428a
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/client.py
@@ -0,0 +1,1843 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import os
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+import warnings
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core import client_options as client_options_lib
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials             # type: ignore
+from google.auth.transport import mtls                            # type: ignore
+from google.auth.transport.grpc import SslCredentials             # type: ignore
+from google.auth.exceptions import MutualTLSChannelError          # type: ignore
+from google.oauth2 import service_account                         # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import operation  # type: ignore
+from google.api_core import operation_async  # type: ignore
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.services import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import revision_template
+from google.cloud.run_v2.types import service
+from google.cloud.run_v2.types import service as gcr_service
+from google.cloud.run_v2.types import traffic_target
+from google.cloud.run_v2.types import vendor_settings
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import field_mask_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import ServicesTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import ServicesGrpcTransport
+from .transports.grpc_asyncio import ServicesGrpcAsyncIOTransport
+from .transports.rest import ServicesRestTransport
+
+
+class ServicesClientMeta(type):
+    """Metaclass for the Services client.
+
+    This provides class-level methods for building and retrieving
+    support objects (e.g. transport) without polluting the client instance
+    objects.
+    """
+    _transport_registry = OrderedDict()  # type: Dict[str, Type[ServicesTransport]]
+    _transport_registry["grpc"] = ServicesGrpcTransport
+    _transport_registry["grpc_asyncio"] = ServicesGrpcAsyncIOTransport
+    _transport_registry["rest"] = ServicesRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[ServicesTransport]:
+        """Returns an appropriate transport class.
+
+        Args:
+            label: The name of the desired transport. If none is
+                provided, then the first transport in the registry is used.
+
+        Returns:
+            The transport class to use.
+        """
+        # If a specific transport is requested, return that one.
+        if label:
+            return cls._transport_registry[label]
+
+        # No transport is requested; return the default (that is, the first one
+        # in the dictionary).
+        return next(iter(cls._transport_registry.values()))
+
+
+class ServicesClient(metaclass=ServicesClientMeta):
+    """Cloud Run Service Control Plane API"""
+
+    @staticmethod
+    def _get_default_mtls_endpoint(api_endpoint):
+        """Converts api endpoint to mTLS endpoint.
+
+        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
+        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
+        Args:
+            api_endpoint (Optional[str]): the api endpoint to convert.
+        Returns:
+            str: converted mTLS api endpoint.
+        """
+        if not api_endpoint:
+            return api_endpoint
+
+        mtls_endpoint_re = re.compile(
+            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
+        )
+
+        m = mtls_endpoint_re.match(api_endpoint)
+        name, mtls, sandbox, googledomain = m.groups()
+        if mtls or not googledomain:
+            return api_endpoint
+
+        if sandbox:
+            return api_endpoint.replace(
+                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
+            )
+
+        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
+
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = "run.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
+    _DEFAULT_UNIVERSE = "googleapis.com"
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            ServicesClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_info(info)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            ServicesClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_file(
+            filename)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    from_service_account_json = from_service_account_file
+
+    @property
+    def transport(self) -> ServicesTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ServicesTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @staticmethod
+    def connector_path(project: str,location: str,connector: str,) -> str:
+        """Returns a fully-qualified connector string."""
+        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+
+    @staticmethod
+    def parse_connector_path(path: str) -> Dict[str,str]:
+        """Parses a connector path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
+        """Returns a fully-qualified crypto_key string."""
+        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+
+    @staticmethod
+    def parse_crypto_key_path(path: str) -> Dict[str,str]:
+        """Parses a crypto_key path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def mesh_path(project: str,location: str,mesh: str,) -> str:
+        """Returns a fully-qualified mesh string."""
+        return "projects/{project}/locations/{location}/meshes/{mesh}".format(project=project, location=location, mesh=mesh, )
+
+    @staticmethod
+    def parse_mesh_path(path: str) -> Dict[str,str]:
+        """Parses a mesh path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/meshes/(?P<mesh>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def policy_path(project: str,) -> str:
+        """Returns a fully-qualified policy string."""
+        return "projects/{project}/policy".format(project=project, )
+
+    @staticmethod
+    def parse_policy_path(path: str) -> Dict[str,str]:
+        """Parses a policy path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/policy$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def revision_path(project: str,location: str,service: str,revision: str,) -> str:
+        """Returns a fully-qualified revision string."""
+        return "projects/{project}/locations/{location}/services/{service}/revisions/{revision}".format(project=project, location=location, service=service, revision=revision, )
+
+    @staticmethod
+    def parse_revision_path(path: str) -> Dict[str,str]:
+        """Parses a revision path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/services/(?P<service>.+?)/revisions/(?P<revision>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_path(project: str,secret: str,) -> str:
+        """Returns a fully-qualified secret string."""
+        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+
+    @staticmethod
+    def parse_secret_path(path: str) -> Dict[str,str]:
+        """Parses a secret path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_version_path(project: str,secret: str,version: str,) -> str:
+        """Returns a fully-qualified secret_version string."""
+        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+
+    @staticmethod
+    def parse_secret_version_path(path: str) -> Dict[str,str]:
+        """Parses a secret_version path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def service_path(project: str,location: str,service: str,) -> str:
+        """Returns a fully-qualified service string."""
+        return "projects/{project}/locations/{location}/services/{service}".format(project=project, location=location, service=service, )
+
+    @staticmethod
+    def parse_service_path(path: str) -> Dict[str,str]:
+        """Parses a service path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/services/(?P<service>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_billing_account_path(billing_account: str, ) -> str:
+        """Returns a fully-qualified billing_account string."""
+        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+
+    @staticmethod
+    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
+        """Parse a billing_account path into its component segments."""
+        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_folder_path(folder: str, ) -> str:
+        """Returns a fully-qualified folder string."""
+        return "folders/{folder}".format(folder=folder, )
+
+    @staticmethod
+    def parse_common_folder_path(path: str) -> Dict[str,str]:
+        """Parse a folder path into its component segments."""
+        m = re.match(r"^folders/(?P<folder>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_organization_path(organization: str, ) -> str:
+        """Returns a fully-qualified organization string."""
+        return "organizations/{organization}".format(organization=organization, )
+
+    @staticmethod
+    def parse_common_organization_path(path: str) -> Dict[str,str]:
+        """Parse a organization path into its component segments."""
+        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_project_path(project: str, ) -> str:
+        """Returns a fully-qualified project string."""
+        return "projects/{project}".format(project=project, )
+
+    @staticmethod
+    def parse_common_project_path(path: str) -> Dict[str,str]:
+        """Parse a project path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_location_path(project: str, location: str, ) -> str:
+        """Returns a fully-qualified location string."""
+        return "projects/{project}/locations/{location}".format(project=project, location=location, )
+
+    @staticmethod
+    def parse_common_location_path(path: str) -> Dict[str,str]:
+        """Parse a location path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
+        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+
+        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
+            DeprecationWarning)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+
+        # Figure out the client cert source to use.
+        client_cert_source = None
+        if use_client_cert == "true":
+            if client_options.client_cert_source:
+                client_cert_source = client_options.client_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+
+        # Figure out which api endpoint to use.
+        if client_options.api_endpoint is not None:
+            api_endpoint = client_options.api_endpoint
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = cls.DEFAULT_ENDPOINT
+
+        return api_endpoint, client_cert_source
+
+    @staticmethod
+    def _read_environment_variables():
+        """Returns the environment variables used by the client.
+
+        Returns:
+            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
+            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
+
+        Raises:
+            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
+                any of ["true", "false"].
+            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
+                is not any of ["auto", "never", "always"].
+        """
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
+        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
+
+    @staticmethod
+    def _get_client_cert_source(provided_cert_source, use_cert_flag):
+        """Return the client cert source to be used by the client.
+
+        Args:
+            provided_cert_source (bytes): The client certificate source provided.
+            use_cert_flag (bool): A flag indicating whether to use the client certificate.
+
+        Returns:
+            bytes or None: The client cert source to be used by the client.
+        """
+        client_cert_source = None
+        if use_cert_flag:
+            if provided_cert_source:
+                client_cert_source = provided_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+        return client_cert_source
+
+    @staticmethod
+    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
+        """Return the API endpoint used by the client.
+
+        Args:
+            api_override (str): The API endpoint override. If specified, this is always
+                the return value of this function and the other arguments are not used.
+            client_cert_source (bytes): The client certificate source used by the client.
+            universe_domain (str): The universe domain used by the client.
+            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
+                Possible values are "always", "auto", or "never".
+
+        Returns:
+            str: The API endpoint to be used by the client.
+        """
+        if api_override is not None:
+            api_endpoint = api_override
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            _default_universe = ServicesClient._DEFAULT_UNIVERSE
+            if universe_domain != _default_universe:
+                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
+            api_endpoint = ServicesClient.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
+        return api_endpoint
+
+    @staticmethod
+    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
+        """Return the universe domain used by the client.
+
+        Args:
+            client_universe_domain (Optional[str]): The universe domain configured via the client options.
+            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
+
+        Returns:
+            str: The universe domain to be used by the client.
+
+        Raises:
+            ValueError: If the universe domain is an empty string.
+        """
+        universe_domain = ServicesClient._DEFAULT_UNIVERSE
+        if client_universe_domain is not None:
+            universe_domain = client_universe_domain
+        elif universe_domain_env is not None:
+            universe_domain = universe_domain_env
+        if len(universe_domain.strip()) == 0:
+            raise ValueError("Universe Domain cannot be an empty string.")
+        return universe_domain
+
+    def _validate_universe_domain(self):
+        """Validates client's and credentials' universe domains are consistent.
+
+        Returns:
+            bool: True iff the configured universe domain is valid.
+
+        Raises:
+            ValueError: If the configured universe domain is not valid.
+        """
+
+        # NOTE (b/349488459): universe validation is disabled until further notice.
+        return True
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used by the client instance.
+        """
+        return self._universe_domain
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, ServicesTransport, Callable[..., ServicesTransport]]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the services client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,ServicesTransport,Callable[..., ServicesTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the ServicesTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that the ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client_options = client_options
+        if isinstance(self._client_options, dict):
+            self._client_options = client_options_lib.from_dict(self._client_options)
+        if self._client_options is None:
+            self._client_options = client_options_lib.ClientOptions()
+        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
+
+        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
+
+        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = ServicesClient._read_environment_variables()
+        self._client_cert_source = ServicesClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
+        self._universe_domain = ServicesClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
+        self._api_endpoint = None # updated below, depending on `transport`
+
+        # Initialize the universe domain validation.
+        self._is_universe_domain_valid = False
+
+        api_key_value = getattr(self._client_options, "api_key", None)
+        if api_key_value and credentials:
+            raise ValueError("client_options.api_key and credentials are mutually exclusive")
+
+        # Save or instantiate the transport.
+        # Ordinarily, we provide the transport, but allowing a custom transport
+        # instance provides an extensibility point for unusual situations.
+        transport_provided = isinstance(transport, ServicesTransport)
+        if transport_provided:
+            # transport is a ServicesTransport instance.
+            if credentials or self._client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if self._client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = cast(ServicesTransport, transport)
+            self._api_endpoint = self._transport.host
+
+        self._api_endpoint = (self._api_endpoint or
+            ServicesClient._get_api_endpoint(
+                self._client_options.api_endpoint,
+                self._client_cert_source,
+                self._universe_domain,
+                self._use_mtls_endpoint))
+
+        if not transport_provided:
+            import google.auth._default  # type: ignore
+
+            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
+                credentials = google.auth._default.get_api_key_credentials(api_key_value)
+
+            transport_init: Union[Type[ServicesTransport], Callable[..., ServicesTransport]] = (
+                ServicesClient.get_transport_class(transport)
+                if isinstance(transport, str) or transport is None
+                else cast(Callable[..., ServicesTransport], transport)
+            )
+            # initialize with the provided callable or the passed in class
+            self._transport = transport_init(
+                credentials=credentials,
+                credentials_file=self._client_options.credentials_file,
+                host=self._api_endpoint,
+                scopes=self._client_options.scopes,
+                client_cert_source_for_mtls=self._client_cert_source,
+                quota_project_id=self._client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=self._client_options.api_audience,
+            )
+
+    def create_service(self,
+            request: Optional[Union[gcr_service.CreateServiceRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            service: Optional[gcr_service.Service] = None,
+            service_id: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Creates a new Service in a given project and
+        location.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_create_service():
+                # Create a client
+                client = run_v2.ServicesClient()
+
+                # Initialize request argument(s)
+                request = run_v2.CreateServiceRequest(
+                    parent="parent_value",
+                    service_id="service_id_value",
+                )
+
+                # Make the request
+                operation = client.create_service(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.CreateServiceRequest, dict]):
+                The request object. Request message for creating a
+                Service.
+            parent (str):
+                Required. The location and project in
+                which this service should be created.
+                Format:
+                projects/{project}/locations/{location},
+                where {project} can be project id or
+                number. Only lowercase characters,
+                digits, and hyphens.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            service (google.cloud.run_v2.types.Service):
+                Required. The Service instance to
+                create.
+
+                This corresponds to the ``service`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            service_id (str):
+                Required. The unique identifier for the Service. It must
+                begin with letter, and cannot end with hyphen; must
+                contain fewer than 50 characters. The name of the
+                service becomes {parent}/services/{service_id}.
+
+                This corresponds to the ``service_id`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
+                   configurations and revision templates which implement
+                   a network service. Service exists to provide a
+                   singular abstraction which can be access controlled,
+                   reasoned about, and which encapsulates software
+                   lifecycle decisions such as rollout policy and team
+                   resource ownership.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent, service, service_id])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, gcr_service.CreateServiceRequest):
+            request = gcr_service.CreateServiceRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if parent is not None:
+                request.parent = parent
+            if service is not None:
+                request.service = service
+            if service_id is not None:
+                request.service_id = service_id
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.create_service]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            gcr_service.Service,
+            metadata_type=gcr_service.Service,
+        )
+
+        # Done; return the response.
+        return response
+
+    def get_service(self,
+            request: Optional[Union[service.GetServiceRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> service.Service:
+        r"""Gets information about a Service.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_get_service():
+                # Create a client
+                client = run_v2.ServicesClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetServiceRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = client.get_service(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.GetServiceRequest, dict]):
+                The request object. Request message for obtaining a
+                Service by its full name.
+            name (str):
+                Required. The full name of the
+                Service. Format:
+                projects/{project}/locations/{location}/services/{service},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Service:
+                Service acts as a top-level container
+                that manages a set of configurations and
+                revision templates which implement a
+                network service. Service exists to
+                provide a singular abstraction which can
+                be access controlled, reasoned about,
+                and which encapsulates software
+                lifecycle decisions such as rollout
+                policy and team resource ownership.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, service.GetServiceRequest):
+            request = service.GetServiceRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_service]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def list_services(self,
+            request: Optional[Union[service.ListServicesRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListServicesPager:
+        r"""Lists Services. Results are sorted by creation time,
+        descending.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_list_services():
+                # Create a client
+                client = run_v2.ServicesClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListServicesRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_services(request=request)
+
+                # Handle the response
+                for response in page_result:
+                    print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.ListServicesRequest, dict]):
+                The request object. Request message for retrieving a list
+                of Services.
+            parent (str):
+                Required. The location and project to
+                list resources on. Location must be a
+                valid Google Cloud region, and cannot be
+                the "-" wildcard. Format:
+                projects/{project}/locations/{location},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.services.pagers.ListServicesPager:
+                Response message containing a list of
+                Services.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, service.ListServicesRequest):
+            request = service.ListServicesRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if parent is not None:
+                request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_services]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
+        regex_match = routing_param_regex.match(request.parent)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__iter__` convenience method.
+        response = pagers.ListServicesPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def update_service(self,
+            request: Optional[Union[gcr_service.UpdateServiceRequest, dict]] = None,
+            *,
+            service: Optional[gcr_service.Service] = None,
+            update_mask: Optional[field_mask_pb2.FieldMask] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Updates a Service.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_update_service():
+                # Create a client
+                client = run_v2.ServicesClient()
+
+                # Initialize request argument(s)
+                request = run_v2.UpdateServiceRequest(
+                )
+
+                # Make the request
+                operation = client.update_service(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.UpdateServiceRequest, dict]):
+                The request object. Request message for updating a
+                service.
+            service (google.cloud.run_v2.types.Service):
+                Required. The Service to be updated.
+                This corresponds to the ``service`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            update_mask (google.protobuf.field_mask_pb2.FieldMask):
+                Optional. The list of fields to be
+                updated.
+
+                This corresponds to the ``update_mask`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
+                   configurations and revision templates which implement
+                   a network service. Service exists to provide a
+                   singular abstraction which can be access controlled,
+                   reasoned about, and which encapsulates software
+                   lifecycle decisions such as rollout policy and team
+                   resource ownership.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([service, update_mask])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, gcr_service.UpdateServiceRequest):
+            request = gcr_service.UpdateServiceRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if service is not None:
+                request.service = service
+            if update_mask is not None:
+                request.update_mask = update_mask
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.update_service]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.service.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            gcr_service.Service,
+            metadata_type=gcr_service.Service,
+        )
+
+        # Done; return the response.
+        return response
+
+    def delete_service(self,
+            request: Optional[Union[service.DeleteServiceRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> operation.Operation:
+        r"""Deletes a Service.
+        This will cause the Service to stop serving traffic and
+        will delete all revisions.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_delete_service():
+                # Create a client
+                client = run_v2.ServicesClient()
+
+                # Initialize request argument(s)
+                request = run_v2.DeleteServiceRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                operation = client.delete_service(request=request)
+
+                print("Waiting for operation to complete...")
+
+                response = operation.result()
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.DeleteServiceRequest, dict]):
+                The request object. Request message to delete a Service
+                by its full name.
+            name (str):
+                Required. The full name of the
+                Service. Format:
+                projects/{project}/locations/{location}/services/{service},
+                where {project} can be project id or
+                number.
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.api_core.operation.Operation:
+                An object representing a long-running operation.
+
+                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
+                   configurations and revision templates which implement
+                   a network service. Service exists to provide a
+                   singular abstraction which can be access controlled,
+                   reasoned about, and which encapsulates software
+                   lifecycle decisions such as rollout policy and team
+                   resource ownership.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, service.DeleteServiceRequest):
+            request = service.DeleteServiceRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_service]
+
+        header_params = {}
+
+        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
+        regex_match = routing_param_regex.match(request.name)
+        if regex_match and regex_match.group("location"):
+            header_params["location"] = regex_match.group("location")
+
+        if header_params:
+            metadata = tuple(metadata) + (
+                gapic_v1.routing_header.to_grpc_metadata(header_params),
+            )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Wrap the response in an operation future.
+        response = operation.from_gapic(
+            response,
+            self._transport.operations_client,
+            service.Service,
+            metadata_type=service.Service,
+        )
+
+        # Done; return the response.
+        return response
+
+    def get_iam_policy(self,
+            request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> policy_pb2.Policy:
+        r"""Gets the IAM Access Control policy currently in
+        effect for the given Cloud Run Service. This result does
+        not include any inherited policies.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            def sample_get_iam_policy():
+                # Create a client
+                client = run_v2.ServicesClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.GetIamPolicyRequest(
+                    resource="resource_value",
+                )
+
+                # Make the request
+                response = client.get_iam_policy(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]):
+                The request object. Request message for ``GetIamPolicy`` method.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.policy_pb2.Policy:
+                An Identity and Access Management (IAM) policy, which specifies access
+                   controls for Google Cloud resources.
+
+                   A Policy is a collection of bindings. A binding binds
+                   one or more members, or principals, to a single role.
+                   Principals can be user accounts, service accounts,
+                   Google groups, and domains (such as G Suite). A role
+                   is a named list of permissions; each role can be an
+                   IAM predefined role or a user-created custom role.
+
+                   For some types of Google Cloud resources, a binding
+                   can also specify a condition, which is a logical
+                   expression that allows access to a resource only if
+                   the expression evaluates to true. A condition can add
+                   constraints based on attributes of the request, the
+                   resource, or both. To learn which resources support
+                   conditions in their IAM policies, see the [IAM
+                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
+
+                   **JSON example:**
+
+                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
+
+                   **YAML example:**
+
+                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
+
+                   For a description of IAM and its features, see the
+                   [IAM
+                   documentation](\ https://cloud.google.com/iam/docs/).
+
+        """
+        # Create or coerce a protobuf request object.
+        if isinstance(request, dict):
+            # - The request isn't a proto-plus wrapped type,
+            #   so it must be constructed via keyword expansion.
+            request = iam_policy_pb2.GetIamPolicyRequest(**request)
+        elif not request:
+            # Null request, just make one.
+            request = iam_policy_pb2.GetIamPolicyRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_iam_policy]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def set_iam_policy(self,
+            request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> policy_pb2.Policy:
+        r"""Sets the IAM Access control policy for the specified
+        Service. Overwrites any existing policy.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            def sample_set_iam_policy():
+                # Create a client
+                client = run_v2.ServicesClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.SetIamPolicyRequest(
+                    resource="resource_value",
+                )
+
+                # Make the request
+                response = client.set_iam_policy(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]):
+                The request object. Request message for ``SetIamPolicy`` method.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.policy_pb2.Policy:
+                An Identity and Access Management (IAM) policy, which specifies access
+                   controls for Google Cloud resources.
+
+                   A Policy is a collection of bindings. A binding binds
+                   one or more members, or principals, to a single role.
+                   Principals can be user accounts, service accounts,
+                   Google groups, and domains (such as G Suite). A role
+                   is a named list of permissions; each role can be an
+                   IAM predefined role or a user-created custom role.
+
+                   For some types of Google Cloud resources, a binding
+                   can also specify a condition, which is a logical
+                   expression that allows access to a resource only if
+                   the expression evaluates to true. A condition can add
+                   constraints based on attributes of the request, the
+                   resource, or both. To learn which resources support
+                   conditions in their IAM policies, see the [IAM
+                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
+
+                   **JSON example:**
+
+                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
+
+                   **YAML example:**
+
+                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
+
+                   For a description of IAM and its features, see the
+                   [IAM
+                   documentation](\ https://cloud.google.com/iam/docs/).
+
+        """
+        # Create or coerce a protobuf request object.
+        if isinstance(request, dict):
+            # - The request isn't a proto-plus wrapped type,
+            #   so it must be constructed via keyword expansion.
+            request = iam_policy_pb2.SetIamPolicyRequest(**request)
+        elif not request:
+            # Null request, just make one.
+            request = iam_policy_pb2.SetIamPolicyRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.set_iam_policy]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def test_iam_permissions(self,
+            request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> iam_policy_pb2.TestIamPermissionsResponse:
+        r"""Returns permissions that a caller has on the
+        specified Project.
+        There are no permissions required for making this API
+        call.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+            from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+            def sample_test_iam_permissions():
+                # Create a client
+                client = run_v2.ServicesClient()
+
+                # Initialize request argument(s)
+                request = iam_policy_pb2.TestIamPermissionsRequest(
+                    resource="resource_value",
+                    permissions=['permissions_value1', 'permissions_value2'],
+                )
+
+                # Make the request
+                response = client.test_iam_permissions(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]):
+                The request object. Request message for ``TestIamPermissions`` method.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse:
+                Response message for TestIamPermissions method.
+        """
+        # Create or coerce a protobuf request object.
+        if isinstance(request, dict):
+            # - The request isn't a proto-plus wrapped type,
+            #   so it must be constructed via keyword expansion.
+            request = iam_policy_pb2.TestIamPermissionsRequest(**request)
+        elif not request:
+            # Null request, just make one.
+            request = iam_policy_pb2.TestIamPermissionsRequest()
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.test_iam_permissions]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("resource", request.resource),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "ServicesClient":
+        return self
+
+    def __exit__(self, type, value, traceback):
+        """Releases underlying transport's resources.
+
+        .. warning::
+            ONLY use as a context manager if the transport is NOT shared
+            with other clients! Exiting the with block will CLOSE the transport
+            and may cause errors in other clients!
+        """
+        self.transport.close()
+
+    def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "ServicesClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/pagers.py
new file mode 100644
index 000000000000..f475d60bb0df
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/pagers.py
@@ -0,0 +1,162 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import retry_async as retries_async
+from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
+
+from google.cloud.run_v2.types import service
+
+
+class ListServicesPager:
+    """A pager for iterating through ``list_services`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListServicesResponse` object, and
+    provides an ``__iter__`` method to iterate through its
+    ``services`` field.
+
+    If there are more pages, the ``__iter__`` method will make additional
+    ``ListServices`` requests and continue to iterate
+    through the ``services`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListServicesResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., service.ListServicesResponse],
+            request: service.ListServicesRequest,
+            response: service.ListServicesResponse,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiate the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListServicesRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListServicesResponse):
+                The initial response object.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = service.ListServicesRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    def pages(self) -> Iterator[service.ListServicesResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+
+    def __iter__(self) -> Iterator[service.Service]:
+        for page in self.pages:
+            yield from page.services
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
+
+
+class ListServicesAsyncPager:
+    """A pager for iterating through ``list_services`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListServicesResponse` object, and
+    provides an ``__aiter__`` method to iterate through its
+    ``services`` field.
+
+    If there are more pages, the ``__aiter__`` method will make additional
+    ``ListServices`` requests and continue to iterate
+    through the ``services`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListServicesResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., Awaitable[service.ListServicesResponse]],
+            request: service.ListServicesRequest,
+            response: service.ListServicesResponse,
+            *,
+            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiates the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListServicesRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListServicesResponse):
+                The initial response object.
+            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = service.ListServicesRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    async def pages(self) -> AsyncIterator[service.ListServicesResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+    def __aiter__(self) -> AsyncIterator[service.Service]:
+        async def async_generator():
+            async for page in self.pages:
+                for response in page.services:
+                    yield response
+
+        return async_generator()
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/README.rst
new file mode 100644
index 000000000000..ac1c48dcd4e6
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/README.rst
@@ -0,0 +1,9 @@
+
+transport inheritance structure
+_______________________________
+
+`ServicesTransport` is the ABC for all transports.
+- public child `ServicesGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
+- public child `ServicesGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
+- private child `_BaseServicesRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
+- public child `ServicesRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/__init__.py
new file mode 100644
index 000000000000..1a162d4b23e2
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+from typing import Dict, Type
+
+from .base import ServicesTransport
+from .grpc import ServicesGrpcTransport
+from .grpc_asyncio import ServicesGrpcAsyncIOTransport
+from .rest import ServicesRestTransport
+from .rest import ServicesRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[ServicesTransport]]
+_transport_registry['grpc'] = ServicesGrpcTransport
+_transport_registry['grpc_asyncio'] = ServicesGrpcAsyncIOTransport
+_transport_registry['rest'] = ServicesRestTransport
+
+__all__ = (
+    'ServicesTransport',
+    'ServicesGrpcTransport',
+    'ServicesGrpcAsyncIOTransport',
+    'ServicesRestTransport',
+    'ServicesRestInterceptor',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/base.py
new file mode 100644
index 000000000000..20e01d8bdcd0
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/base.py
@@ -0,0 +1,337 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 abc
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+import google.auth  # type: ignore
+import google.api_core
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import operations_v1
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.oauth2 import service_account # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import service
+from google.cloud.run_v2.types import service as gcr_service
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class ServicesTransport(abc.ABC):
+    """Abstract transport class for Services."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'run.googleapis.com'
+    def __init__(
+            self, *,
+            host: str = DEFAULT_HOST,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            **kwargs,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A list of scopes.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+        """
+
+        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
+
+        # Save the scopes.
+        self._scopes = scopes
+        if not hasattr(self, "_ignore_credentials"):
+            self._ignore_credentials: bool = False
+
+        # If no credentials are provided, then determine the appropriate
+        # defaults.
+        if credentials and credentials_file:
+            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
+
+        if credentials_file is not None:
+            credentials, _ = google.auth.load_credentials_from_file(
+                                credentials_file,
+                                **scopes_kwargs,
+                                quota_project_id=quota_project_id
+                            )
+        elif credentials is None and not self._ignore_credentials:
+            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
+            # Don't apply audience if the credentials file passed from user.
+            if hasattr(credentials, "with_gdch_audience"):
+                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
+
+        # If the credentials are service account credentials, then always try to use self signed JWT.
+        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
+            credentials = credentials.with_always_use_jwt_access(True)
+
+        # Save the credentials.
+        self._credentials = credentials
+
+        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
+        if ':' not in host:
+            host += ':443'
+        self._host = host
+
+    @property
+    def host(self):
+        return self._host
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.create_service: gapic_v1.method.wrap_method(
+                self.create_service,
+                default_timeout=15.0,
+                client_info=client_info,
+            ),
+            self.get_service: gapic_v1.method.wrap_method(
+                self.get_service,
+                default_retry=retries.Retry(
+                    initial=1.0,
+                    maximum=10.0,
+                    multiplier=1.3,
+                    predicate=retries.if_exception_type(
+                        core_exceptions.ServiceUnavailable,
+                    ),
+                    deadline=10.0,
+                ),
+                default_timeout=10.0,
+                client_info=client_info,
+            ),
+            self.list_services: gapic_v1.method.wrap_method(
+                self.list_services,
+                default_retry=retries.Retry(
+                    initial=1.0,
+                    maximum=10.0,
+                    multiplier=1.3,
+                    predicate=retries.if_exception_type(
+                        core_exceptions.ServiceUnavailable,
+                    ),
+                    deadline=10.0,
+                ),
+                default_timeout=10.0,
+                client_info=client_info,
+            ),
+            self.update_service: gapic_v1.method.wrap_method(
+                self.update_service,
+                default_timeout=15.0,
+                client_info=client_info,
+            ),
+            self.delete_service: gapic_v1.method.wrap_method(
+                self.delete_service,
+                default_timeout=10.0,
+                client_info=client_info,
+            ),
+            self.get_iam_policy: gapic_v1.method.wrap_method(
+                self.get_iam_policy,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.set_iam_policy: gapic_v1.method.wrap_method(
+                self.set_iam_policy,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.test_iam_permissions: gapic_v1.method.wrap_method(
+                self.test_iam_permissions,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: gapic_v1.method.wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: gapic_v1.method.wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: gapic_v1.method.wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: gapic_v1.method.wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+         }
+
+    def close(self):
+        """Closes resources associated with the transport.
+
+       .. warning::
+            Only call this method if the transport is NOT shared
+            with other clients - this may cause errors in other clients!
+        """
+        raise NotImplementedError()
+
+    @property
+    def operations_client(self):
+        """Return the client designed to process long-running operations."""
+        raise NotImplementedError()
+
+    @property
+    def create_service(self) -> Callable[
+            [gcr_service.CreateServiceRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def get_service(self) -> Callable[
+            [service.GetServiceRequest],
+            Union[
+                service.Service,
+                Awaitable[service.Service]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_services(self) -> Callable[
+            [service.ListServicesRequest],
+            Union[
+                service.ListServicesResponse,
+                Awaitable[service.ListServicesResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def update_service(self) -> Callable[
+            [gcr_service.UpdateServiceRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def delete_service(self) -> Callable[
+            [service.DeleteServiceRequest],
+            Union[
+                operations_pb2.Operation,
+                Awaitable[operations_pb2.Operation]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def get_iam_policy(self) -> Callable[
+            [iam_policy_pb2.GetIamPolicyRequest],
+            Union[
+                policy_pb2.Policy,
+                Awaitable[policy_pb2.Policy]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def set_iam_policy(self) -> Callable[
+            [iam_policy_pb2.SetIamPolicyRequest],
+            Union[
+                policy_pb2.Policy,
+                Awaitable[policy_pb2.Policy]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def test_iam_permissions(self) -> Callable[
+            [iam_policy_pb2.TestIamPermissionsRequest],
+            Union[
+                iam_policy_pb2.TestIamPermissionsResponse,
+                Awaitable[iam_policy_pb2.TestIamPermissionsResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[
+        [operations_pb2.ListOperationsRequest],
+        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.GetOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.DeleteOperationRequest],
+        None,
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.WaitOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'ServicesTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc.py
new file mode 100644
index 000000000000..4530f0891d03
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc.py
@@ -0,0 +1,557 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 warnings
+from typing import Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import grpc_helpers
+from google.api_core import operations_v1
+from google.api_core import gapic_v1
+import google.auth                         # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import service
+from google.cloud.run_v2.types import service as gcr_service
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from .base import ServicesTransport, DEFAULT_CLIENT_INFO
+
+
+class ServicesGrpcTransport(ServicesTransport):
+    """gRPC backend transport for Services.
+
+    Cloud Run Service Control Plane API
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+    _stubs: Dict[str, Callable]
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[grpc.Channel, Callable[..., 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,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if a ``channel`` instance is provided.
+            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+        self._operations_client: Optional[operations_v1.OperationsClient] = None
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, grpc.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._prep_wrapped_messages(client_info)
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> grpc.Channel:
+        """Create and return a gRPC channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            grpc.Channel: A gRPC channel object.
+
+        Raises:
+            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+
+        return grpc_helpers.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    @property
+    def grpc_channel(self) -> grpc.Channel:
+        """Return the channel designed to connect to this service.
+        """
+        return self._grpc_channel
+
+    @property
+    def operations_client(self) -> operations_v1.OperationsClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Quick check: Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            self._operations_client = operations_v1.OperationsClient(
+                self.grpc_channel
+            )
+
+        # Return the client from cache.
+        return self._operations_client
+
+    @property
+    def create_service(self) -> Callable[
+            [gcr_service.CreateServiceRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the create service method over gRPC.
+
+        Creates a new Service in a given project and
+        location.
+
+        Returns:
+            Callable[[~.CreateServiceRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'create_service' not in self._stubs:
+            self._stubs['create_service'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/CreateService',
+                request_serializer=gcr_service.CreateServiceRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['create_service']
+
+    @property
+    def get_service(self) -> Callable[
+            [service.GetServiceRequest],
+            service.Service]:
+        r"""Return a callable for the get service method over gRPC.
+
+        Gets information about a Service.
+
+        Returns:
+            Callable[[~.GetServiceRequest],
+                    ~.Service]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_service' not in self._stubs:
+            self._stubs['get_service'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/GetService',
+                request_serializer=service.GetServiceRequest.serialize,
+                response_deserializer=service.Service.deserialize,
+            )
+        return self._stubs['get_service']
+
+    @property
+    def list_services(self) -> Callable[
+            [service.ListServicesRequest],
+            service.ListServicesResponse]:
+        r"""Return a callable for the list services method over gRPC.
+
+        Lists Services. Results are sorted by creation time,
+        descending.
+
+        Returns:
+            Callable[[~.ListServicesRequest],
+                    ~.ListServicesResponse]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_services' not in self._stubs:
+            self._stubs['list_services'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/ListServices',
+                request_serializer=service.ListServicesRequest.serialize,
+                response_deserializer=service.ListServicesResponse.deserialize,
+            )
+        return self._stubs['list_services']
+
+    @property
+    def update_service(self) -> Callable[
+            [gcr_service.UpdateServiceRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the update service method over gRPC.
+
+        Updates a Service.
+
+        Returns:
+            Callable[[~.UpdateServiceRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'update_service' not in self._stubs:
+            self._stubs['update_service'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/UpdateService',
+                request_serializer=gcr_service.UpdateServiceRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['update_service']
+
+    @property
+    def delete_service(self) -> Callable[
+            [service.DeleteServiceRequest],
+            operations_pb2.Operation]:
+        r"""Return a callable for the delete service method over gRPC.
+
+        Deletes a Service.
+        This will cause the Service to stop serving traffic and
+        will delete all revisions.
+
+        Returns:
+            Callable[[~.DeleteServiceRequest],
+                    ~.Operation]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'delete_service' not in self._stubs:
+            self._stubs['delete_service'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/DeleteService',
+                request_serializer=service.DeleteServiceRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['delete_service']
+
+    @property
+    def get_iam_policy(self) -> Callable[
+            [iam_policy_pb2.GetIamPolicyRequest],
+            policy_pb2.Policy]:
+        r"""Return a callable for the get iam policy method over gRPC.
+
+        Gets the IAM Access Control policy currently in
+        effect for the given Cloud Run Service. This result does
+        not include any inherited policies.
+
+        Returns:
+            Callable[[~.GetIamPolicyRequest],
+                    ~.Policy]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_iam_policy' not in self._stubs:
+            self._stubs['get_iam_policy'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/GetIamPolicy',
+                request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString,
+                response_deserializer=policy_pb2.Policy.FromString,
+            )
+        return self._stubs['get_iam_policy']
+
+    @property
+    def set_iam_policy(self) -> Callable[
+            [iam_policy_pb2.SetIamPolicyRequest],
+            policy_pb2.Policy]:
+        r"""Return a callable for the set iam policy method over gRPC.
+
+        Sets the IAM Access control policy for the specified
+        Service. Overwrites any existing policy.
+
+        Returns:
+            Callable[[~.SetIamPolicyRequest],
+                    ~.Policy]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'set_iam_policy' not in self._stubs:
+            self._stubs['set_iam_policy'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/SetIamPolicy',
+                request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString,
+                response_deserializer=policy_pb2.Policy.FromString,
+            )
+        return self._stubs['set_iam_policy']
+
+    @property
+    def test_iam_permissions(self) -> Callable[
+            [iam_policy_pb2.TestIamPermissionsRequest],
+            iam_policy_pb2.TestIamPermissionsResponse]:
+        r"""Return a callable for the test iam permissions method over gRPC.
+
+        Returns permissions that a caller has on the
+        specified Project.
+        There are no permissions required for making this API
+        call.
+
+        Returns:
+            Callable[[~.TestIamPermissionsRequest],
+                    ~.TestIamPermissionsResponse]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'test_iam_permissions' not in self._stubs:
+            self._stubs['test_iam_permissions'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/TestIamPermissions',
+                request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString,
+                response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString,
+            )
+        return self._stubs['test_iam_permissions']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'ServicesGrpcTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc_asyncio.py
new file mode 100644
index 000000000000..3ff74e2c64b6
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc_asyncio.py
@@ -0,0 +1,651 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 inspect
+import warnings
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry_async as retries
+from google.api_core import operations_v1
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc                        # type: ignore
+from grpc.experimental import aio  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import service
+from google.cloud.run_v2.types import service as gcr_service
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from .base import ServicesTransport, DEFAULT_CLIENT_INFO
+from .grpc import ServicesGrpcTransport
+
+
+class ServicesGrpcAsyncIOTransport(ServicesTransport):
+    """gRPC AsyncIO backend transport for Services.
+
+    Cloud Run Service Control Plane API
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+
+    _grpc_channel: aio.Channel
+    _stubs: Dict[str, Callable] = {}
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> aio.Channel:
+        """Create and return a gRPC AsyncIO channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            aio.Channel: A gRPC AsyncIO channel object.
+        """
+
+        return grpc_helpers_async.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[aio.Channel, Callable[..., 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,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, aio.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def grpc_channel(self) -> aio.Channel:
+        """Create the channel designed to connect to this service.
+
+        This property caches on the instance; repeated calls return
+        the same channel.
+        """
+        # Return the channel from cache.
+        return self._grpc_channel
+
+    @property
+    def operations_client(self) -> operations_v1.OperationsAsyncClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Quick check: Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            self._operations_client = operations_v1.OperationsAsyncClient(
+                self.grpc_channel
+            )
+
+        # Return the client from cache.
+        return self._operations_client
+
+    @property
+    def create_service(self) -> Callable[
+            [gcr_service.CreateServiceRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the create service method over gRPC.
+
+        Creates a new Service in a given project and
+        location.
+
+        Returns:
+            Callable[[~.CreateServiceRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'create_service' not in self._stubs:
+            self._stubs['create_service'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/CreateService',
+                request_serializer=gcr_service.CreateServiceRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['create_service']
+
+    @property
+    def get_service(self) -> Callable[
+            [service.GetServiceRequest],
+            Awaitable[service.Service]]:
+        r"""Return a callable for the get service method over gRPC.
+
+        Gets information about a Service.
+
+        Returns:
+            Callable[[~.GetServiceRequest],
+                    Awaitable[~.Service]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_service' not in self._stubs:
+            self._stubs['get_service'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/GetService',
+                request_serializer=service.GetServiceRequest.serialize,
+                response_deserializer=service.Service.deserialize,
+            )
+        return self._stubs['get_service']
+
+    @property
+    def list_services(self) -> Callable[
+            [service.ListServicesRequest],
+            Awaitable[service.ListServicesResponse]]:
+        r"""Return a callable for the list services method over gRPC.
+
+        Lists Services. Results are sorted by creation time,
+        descending.
+
+        Returns:
+            Callable[[~.ListServicesRequest],
+                    Awaitable[~.ListServicesResponse]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_services' not in self._stubs:
+            self._stubs['list_services'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/ListServices',
+                request_serializer=service.ListServicesRequest.serialize,
+                response_deserializer=service.ListServicesResponse.deserialize,
+            )
+        return self._stubs['list_services']
+
+    @property
+    def update_service(self) -> Callable[
+            [gcr_service.UpdateServiceRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the update service method over gRPC.
+
+        Updates a Service.
+
+        Returns:
+            Callable[[~.UpdateServiceRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'update_service' not in self._stubs:
+            self._stubs['update_service'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/UpdateService',
+                request_serializer=gcr_service.UpdateServiceRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['update_service']
+
+    @property
+    def delete_service(self) -> Callable[
+            [service.DeleteServiceRequest],
+            Awaitable[operations_pb2.Operation]]:
+        r"""Return a callable for the delete service method over gRPC.
+
+        Deletes a Service.
+        This will cause the Service to stop serving traffic and
+        will delete all revisions.
+
+        Returns:
+            Callable[[~.DeleteServiceRequest],
+                    Awaitable[~.Operation]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'delete_service' not in self._stubs:
+            self._stubs['delete_service'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/DeleteService',
+                request_serializer=service.DeleteServiceRequest.serialize,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs['delete_service']
+
+    @property
+    def get_iam_policy(self) -> Callable[
+            [iam_policy_pb2.GetIamPolicyRequest],
+            Awaitable[policy_pb2.Policy]]:
+        r"""Return a callable for the get iam policy method over gRPC.
+
+        Gets the IAM Access Control policy currently in
+        effect for the given Cloud Run Service. This result does
+        not include any inherited policies.
+
+        Returns:
+            Callable[[~.GetIamPolicyRequest],
+                    Awaitable[~.Policy]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_iam_policy' not in self._stubs:
+            self._stubs['get_iam_policy'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/GetIamPolicy',
+                request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString,
+                response_deserializer=policy_pb2.Policy.FromString,
+            )
+        return self._stubs['get_iam_policy']
+
+    @property
+    def set_iam_policy(self) -> Callable[
+            [iam_policy_pb2.SetIamPolicyRequest],
+            Awaitable[policy_pb2.Policy]]:
+        r"""Return a callable for the set iam policy method over gRPC.
+
+        Sets the IAM Access control policy for the specified
+        Service. Overwrites any existing policy.
+
+        Returns:
+            Callable[[~.SetIamPolicyRequest],
+                    Awaitable[~.Policy]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'set_iam_policy' not in self._stubs:
+            self._stubs['set_iam_policy'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/SetIamPolicy',
+                request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString,
+                response_deserializer=policy_pb2.Policy.FromString,
+            )
+        return self._stubs['set_iam_policy']
+
+    @property
+    def test_iam_permissions(self) -> Callable[
+            [iam_policy_pb2.TestIamPermissionsRequest],
+            Awaitable[iam_policy_pb2.TestIamPermissionsResponse]]:
+        r"""Return a callable for the test iam permissions method over gRPC.
+
+        Returns permissions that a caller has on the
+        specified Project.
+        There are no permissions required for making this API
+        call.
+
+        Returns:
+            Callable[[~.TestIamPermissionsRequest],
+                    Awaitable[~.TestIamPermissionsResponse]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'test_iam_permissions' not in self._stubs:
+            self._stubs['test_iam_permissions'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Services/TestIamPermissions',
+                request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString,
+                response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString,
+            )
+        return self._stubs['test_iam_permissions']
+
+    def _prep_wrapped_messages(self, client_info):
+        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
+        self._wrapped_methods = {
+            self.create_service: self._wrap_method(
+                self.create_service,
+                default_timeout=15.0,
+                client_info=client_info,
+            ),
+            self.get_service: self._wrap_method(
+                self.get_service,
+                default_retry=retries.AsyncRetry(
+                    initial=1.0,
+                    maximum=10.0,
+                    multiplier=1.3,
+                    predicate=retries.if_exception_type(
+                        core_exceptions.ServiceUnavailable,
+                    ),
+                    deadline=10.0,
+                ),
+                default_timeout=10.0,
+                client_info=client_info,
+            ),
+            self.list_services: self._wrap_method(
+                self.list_services,
+                default_retry=retries.AsyncRetry(
+                    initial=1.0,
+                    maximum=10.0,
+                    multiplier=1.3,
+                    predicate=retries.if_exception_type(
+                        core_exceptions.ServiceUnavailable,
+                    ),
+                    deadline=10.0,
+                ),
+                default_timeout=10.0,
+                client_info=client_info,
+            ),
+            self.update_service: self._wrap_method(
+                self.update_service,
+                default_timeout=15.0,
+                client_info=client_info,
+            ),
+            self.delete_service: self._wrap_method(
+                self.delete_service,
+                default_timeout=10.0,
+                client_info=client_info,
+            ),
+            self.get_iam_policy: self._wrap_method(
+                self.get_iam_policy,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.set_iam_policy: self._wrap_method(
+                self.set_iam_policy,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.test_iam_permissions: self._wrap_method(
+                self.test_iam_permissions,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: self._wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: self._wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: self._wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: self._wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+        }
+
+    def _wrap_method(self, func, *args, **kwargs):
+        if self._wrap_with_kind:  # pragma: NO COVER
+            kwargs["kind"] = self.kind
+        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
+
+    def close(self):
+        return self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc_asyncio"
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+
+__all__ = (
+    'ServicesGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest.py
new file mode 100644
index 000000000000..057f1a3869c4
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest.py
@@ -0,0 +1,1610 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+
+from google.auth.transport.requests import AuthorizedSession  # type: ignore
+import json  # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry as retries
+from google.api_core import rest_helpers
+from google.api_core import rest_streaming
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.api_core import operations_v1
+from google.cloud.location import locations_pb2 # type: ignore
+
+from requests import __version__ as requests_version
+import dataclasses
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+
+from google.cloud.run_v2.types import service
+from google.cloud.run_v2.types import service as gcr_service
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2  # type: ignore
+
+
+from .rest_base import _BaseServicesRestTransport
+from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=f"requests@{requests_version}",
+)
+
+
+class ServicesRestInterceptor:
+    """Interceptor for Services.
+
+    Interceptors are used to manipulate requests, request metadata, and responses
+    in arbitrary ways.
+    Example use cases include:
+    * Logging
+    * Verifying requests according to service or custom semantics
+    * Stripping extraneous information from responses
+
+    These use cases and more can be enabled by injecting an
+    instance of a custom subclass when constructing the ServicesRestTransport.
+
+    .. code-block:: python
+        class MyCustomServicesInterceptor(ServicesRestInterceptor):
+            def pre_create_service(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_create_service(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_delete_service(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_delete_service(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_get_iam_policy(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_get_iam_policy(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_get_service(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_get_service(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_list_services(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_list_services(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_set_iam_policy(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_set_iam_policy(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_test_iam_permissions(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_test_iam_permissions(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_update_service(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_update_service(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = ServicesRestTransport(interceptor=MyCustomServicesInterceptor())
+        client = ServicesClient(transport=transport)
+
+
+    """
+    def pre_create_service(self, request: gcr_service.CreateServiceRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[gcr_service.CreateServiceRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for create_service
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_create_service(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for create_service
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_service(self, request: service.DeleteServiceRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[service.DeleteServiceRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_service
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_delete_service(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for delete_service
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_iam_policy(self, request: iam_policy_pb2.GetIamPolicyRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.GetIamPolicyRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_iam_policy
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_get_iam_policy(self, response: policy_pb2.Policy) -> policy_pb2.Policy:
+        """Post-rpc interceptor for get_iam_policy
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_service(self, request: service.GetServiceRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[service.GetServiceRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_service
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_get_service(self, response: service.Service) -> service.Service:
+        """Post-rpc interceptor for get_service
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_services(self, request: service.ListServicesRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[service.ListServicesRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_services
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_list_services(self, response: service.ListServicesResponse) -> service.ListServicesResponse:
+        """Post-rpc interceptor for list_services
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_set_iam_policy(self, request: iam_policy_pb2.SetIamPolicyRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.SetIamPolicyRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for set_iam_policy
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_set_iam_policy(self, response: policy_pb2.Policy) -> policy_pb2.Policy:
+        """Post-rpc interceptor for set_iam_policy
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_test_iam_permissions(self, request: iam_policy_pb2.TestIamPermissionsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.TestIamPermissionsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for test_iam_permissions
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_test_iam_permissions(self, response: iam_policy_pb2.TestIamPermissionsResponse) -> iam_policy_pb2.TestIamPermissionsResponse:
+        """Post-rpc interceptor for test_iam_permissions
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_update_service(self, request: gcr_service.UpdateServiceRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[gcr_service.UpdateServiceRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for update_service
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_update_service(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
+        """Post-rpc interceptor for update_service
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_operation(
+        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_delete_operation(
+        self, response: None
+    ) -> None:
+        """Post-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_operation(
+        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_get_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_operations(
+        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_list_operations(
+        self, response: operations_pb2.ListOperationsResponse
+    ) -> operations_pb2.ListOperationsResponse:
+        """Post-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_wait_operation(
+        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Services server.
+        """
+        return request, metadata
+
+    def post_wait_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Services server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class ServicesRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: ServicesRestInterceptor
+
+
+class ServicesRestTransport(_BaseServicesRestTransport):
+    """REST backend synchronous transport for Services.
+
+    Cloud Run Service Control Plane API
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            url_scheme: str = 'https',
+            interceptor: Optional[ServicesRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
+                certificate to configure mutual TLS HTTP channel. It is ignored
+                if ``channel`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
+        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
+        # credentials object
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            url_scheme=url_scheme,
+            api_audience=api_audience
+        )
+        self._session = AuthorizedSession(
+            self._credentials, default_host=self.DEFAULT_HOST)
+        self._operations_client: Optional[operations_v1.AbstractOperationsClient] = None
+        if client_cert_source_for_mtls:
+            self._session.configure_mtls_channel(client_cert_source_for_mtls)
+        self._interceptor = interceptor or ServicesRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def operations_client(self) -> operations_v1.AbstractOperationsClient:
+        """Create the client designed to process long-running operations.
+
+        This property caches on the instance; repeated calls return the same
+        client.
+        """
+        # Only create a new client if we do not already have one.
+        if self._operations_client is None:
+            http_options: Dict[str, List[Dict[str, str]]] = {
+                'google.longrunning.Operations.DeleteOperation': [
+                    {
+                        'method': 'delete',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+                    },
+                ],
+                'google.longrunning.Operations.GetOperation': [
+                    {
+                        'method': 'get',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+                    },
+                ],
+                'google.longrunning.Operations.ListOperations': [
+                    {
+                        'method': 'get',
+                        'uri': '/v2/{name=projects/*/locations/*}/operations',
+                    },
+                ],
+                'google.longrunning.Operations.WaitOperation': [
+                    {
+                        'method': 'post',
+                        'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                        'body': '*',
+                    },
+                ],
+            }
+
+            rest_transport = operations_v1.OperationsRestTransport(
+                    host=self._host,
+                    # use the credentials which are saved
+                    credentials=self._credentials,
+                    scopes=self._scopes,
+                    http_options=http_options,
+                    path_prefix="v2")
+
+            self._operations_client = operations_v1.AbstractOperationsClient(transport=rest_transport)
+
+        # Return the client from cache.
+        return self._operations_client
+
+    class _CreateService(_BaseServicesRestTransport._BaseCreateService, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.CreateService")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: gcr_service.CreateServiceRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the create service method over HTTP.
+
+            Args:
+                request (~.gcr_service.CreateServiceRequest):
+                    The request object. Request message for creating a
+                Service.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseServicesRestTransport._BaseCreateService._get_http_options()
+            request, metadata = self._interceptor.pre_create_service(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseCreateService._get_transcoded_request(http_options, request)
+
+            body = _BaseServicesRestTransport._BaseCreateService._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseCreateService._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._CreateService._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_create_service(resp)
+            return resp
+
+    class _DeleteService(_BaseServicesRestTransport._BaseDeleteService, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.DeleteService")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: service.DeleteServiceRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the delete service method over HTTP.
+
+            Args:
+                request (~.service.DeleteServiceRequest):
+                    The request object. Request message to delete a Service
+                by its full name.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseServicesRestTransport._BaseDeleteService._get_http_options()
+            request, metadata = self._interceptor.pre_delete_service(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseDeleteService._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseDeleteService._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._DeleteService._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_delete_service(resp)
+            return resp
+
+    class _GetIamPolicy(_BaseServicesRestTransport._BaseGetIamPolicy, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.GetIamPolicy")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: iam_policy_pb2.GetIamPolicyRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> policy_pb2.Policy:
+            r"""Call the get iam policy method over HTTP.
+
+            Args:
+                request (~.iam_policy_pb2.GetIamPolicyRequest):
+                    The request object. Request message for ``GetIamPolicy`` method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.policy_pb2.Policy:
+                    An Identity and Access Management (IAM) policy, which
+                specifies access controls for Google Cloud resources.
+
+                A ``Policy`` is a collection of ``bindings``. A
+                ``binding`` binds one or more ``members``, or
+                principals, to a single ``role``. Principals can be user
+                accounts, service accounts, Google groups, and domains
+                (such as G Suite). A ``role`` is a named list of
+                permissions; each ``role`` can be an IAM predefined role
+                or a user-created custom role.
+
+                For some types of Google Cloud resources, a ``binding``
+                can also specify a ``condition``, which is a logical
+                expression that allows access to a resource only if the
+                expression evaluates to ``true``. A condition can add
+                constraints based on attributes of the request, the
+                resource, or both. To learn which resources support
+                conditions in their IAM policies, see the `IAM
+                documentation <https://cloud.google.com/iam/help/conditions/resource-policies>`__.
+
+                **JSON example:**
+
+                ::
+
+                       {
+                         "bindings": [
+                           {
+                             "role": "roles/resourcemanager.organizationAdmin",
+                             "members": [
+                               "user:mike@example.com",
+                               "group:admins@example.com",
+                               "domain:google.com",
+                               "serviceAccount:my-project-id@appspot.gserviceaccount.com"
+                             ]
+                           },
+                           {
+                             "role": "roles/resourcemanager.organizationViewer",
+                             "members": [
+                               "user:eve@example.com"
+                             ],
+                             "condition": {
+                               "title": "expirable access",
+                               "description": "Does not grant access after Sep 2020",
+                               "expression": "request.time <
+                               timestamp('2020-10-01T00:00:00.000Z')",
+                             }
+                           }
+                         ],
+                         "etag": "BwWWja0YfJA=",
+                         "version": 3
+                       }
+
+                **YAML example:**
+
+                ::
+
+                       bindings:
+                       - members:
+                         - user:mike@example.com
+                         - group:admins@example.com
+                         - domain:google.com
+                         - serviceAccount:my-project-id@appspot.gserviceaccount.com
+                         role: roles/resourcemanager.organizationAdmin
+                       - members:
+                         - user:eve@example.com
+                         role: roles/resourcemanager.organizationViewer
+                         condition:
+                           title: expirable access
+                           description: Does not grant access after Sep 2020
+                           expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
+                       etag: BwWWja0YfJA=
+                       version: 3
+
+                For a description of IAM and its features, see the `IAM
+                documentation <https://cloud.google.com/iam/docs/>`__.
+
+            """
+
+            http_options = _BaseServicesRestTransport._BaseGetIamPolicy._get_http_options()
+            request, metadata = self._interceptor.pre_get_iam_policy(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseGetIamPolicy._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseGetIamPolicy._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._GetIamPolicy._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = policy_pb2.Policy()
+            pb_resp = resp
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_get_iam_policy(resp)
+            return resp
+
+    class _GetService(_BaseServicesRestTransport._BaseGetService, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.GetService")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: service.GetServiceRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> service.Service:
+            r"""Call the get service method over HTTP.
+
+            Args:
+                request (~.service.GetServiceRequest):
+                    The request object. Request message for obtaining a
+                Service by its full name.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.service.Service:
+                    Service acts as a top-level container
+                that manages a set of configurations and
+                revision templates which implement a
+                network service. Service exists to
+                provide a singular abstraction which can
+                be access controlled, reasoned about,
+                and which encapsulates software
+                lifecycle decisions such as rollout
+                policy and team resource ownership.
+
+            """
+
+            http_options = _BaseServicesRestTransport._BaseGetService._get_http_options()
+            request, metadata = self._interceptor.pre_get_service(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseGetService._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseGetService._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._GetService._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = service.Service()
+            pb_resp = service.Service.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_get_service(resp)
+            return resp
+
+    class _ListServices(_BaseServicesRestTransport._BaseListServices, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.ListServices")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: service.ListServicesRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> service.ListServicesResponse:
+            r"""Call the list services method over HTTP.
+
+            Args:
+                request (~.service.ListServicesRequest):
+                    The request object. Request message for retrieving a list
+                of Services.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.service.ListServicesResponse:
+                    Response message containing a list of
+                Services.
+
+            """
+
+            http_options = _BaseServicesRestTransport._BaseListServices._get_http_options()
+            request, metadata = self._interceptor.pre_list_services(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseListServices._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseListServices._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._ListServices._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = service.ListServicesResponse()
+            pb_resp = service.ListServicesResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_list_services(resp)
+            return resp
+
+    class _SetIamPolicy(_BaseServicesRestTransport._BaseSetIamPolicy, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.SetIamPolicy")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: iam_policy_pb2.SetIamPolicyRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> policy_pb2.Policy:
+            r"""Call the set iam policy method over HTTP.
+
+            Args:
+                request (~.iam_policy_pb2.SetIamPolicyRequest):
+                    The request object. Request message for ``SetIamPolicy`` method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.policy_pb2.Policy:
+                    An Identity and Access Management (IAM) policy, which
+                specifies access controls for Google Cloud resources.
+
+                A ``Policy`` is a collection of ``bindings``. A
+                ``binding`` binds one or more ``members``, or
+                principals, to a single ``role``. Principals can be user
+                accounts, service accounts, Google groups, and domains
+                (such as G Suite). A ``role`` is a named list of
+                permissions; each ``role`` can be an IAM predefined role
+                or a user-created custom role.
+
+                For some types of Google Cloud resources, a ``binding``
+                can also specify a ``condition``, which is a logical
+                expression that allows access to a resource only if the
+                expression evaluates to ``true``. A condition can add
+                constraints based on attributes of the request, the
+                resource, or both. To learn which resources support
+                conditions in their IAM policies, see the `IAM
+                documentation <https://cloud.google.com/iam/help/conditions/resource-policies>`__.
+
+                **JSON example:**
+
+                ::
+
+                       {
+                         "bindings": [
+                           {
+                             "role": "roles/resourcemanager.organizationAdmin",
+                             "members": [
+                               "user:mike@example.com",
+                               "group:admins@example.com",
+                               "domain:google.com",
+                               "serviceAccount:my-project-id@appspot.gserviceaccount.com"
+                             ]
+                           },
+                           {
+                             "role": "roles/resourcemanager.organizationViewer",
+                             "members": [
+                               "user:eve@example.com"
+                             ],
+                             "condition": {
+                               "title": "expirable access",
+                               "description": "Does not grant access after Sep 2020",
+                               "expression": "request.time <
+                               timestamp('2020-10-01T00:00:00.000Z')",
+                             }
+                           }
+                         ],
+                         "etag": "BwWWja0YfJA=",
+                         "version": 3
+                       }
+
+                **YAML example:**
+
+                ::
+
+                       bindings:
+                       - members:
+                         - user:mike@example.com
+                         - group:admins@example.com
+                         - domain:google.com
+                         - serviceAccount:my-project-id@appspot.gserviceaccount.com
+                         role: roles/resourcemanager.organizationAdmin
+                       - members:
+                         - user:eve@example.com
+                         role: roles/resourcemanager.organizationViewer
+                         condition:
+                           title: expirable access
+                           description: Does not grant access after Sep 2020
+                           expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
+                       etag: BwWWja0YfJA=
+                       version: 3
+
+                For a description of IAM and its features, see the `IAM
+                documentation <https://cloud.google.com/iam/docs/>`__.
+
+            """
+
+            http_options = _BaseServicesRestTransport._BaseSetIamPolicy._get_http_options()
+            request, metadata = self._interceptor.pre_set_iam_policy(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseSetIamPolicy._get_transcoded_request(http_options, request)
+
+            body = _BaseServicesRestTransport._BaseSetIamPolicy._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseSetIamPolicy._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._SetIamPolicy._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = policy_pb2.Policy()
+            pb_resp = resp
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_set_iam_policy(resp)
+            return resp
+
+    class _TestIamPermissions(_BaseServicesRestTransport._BaseTestIamPermissions, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.TestIamPermissions")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: iam_policy_pb2.TestIamPermissionsRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> iam_policy_pb2.TestIamPermissionsResponse:
+            r"""Call the test iam permissions method over HTTP.
+
+            Args:
+                request (~.iam_policy_pb2.TestIamPermissionsRequest):
+                    The request object. Request message for ``TestIamPermissions`` method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.iam_policy_pb2.TestIamPermissionsResponse:
+                    Response message for ``TestIamPermissions`` method.
+            """
+
+            http_options = _BaseServicesRestTransport._BaseTestIamPermissions._get_http_options()
+            request, metadata = self._interceptor.pre_test_iam_permissions(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseTestIamPermissions._get_transcoded_request(http_options, request)
+
+            body = _BaseServicesRestTransport._BaseTestIamPermissions._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseTestIamPermissions._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._TestIamPermissions._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = iam_policy_pb2.TestIamPermissionsResponse()
+            pb_resp = resp
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_test_iam_permissions(resp)
+            return resp
+
+    class _UpdateService(_BaseServicesRestTransport._BaseUpdateService, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.UpdateService")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+                request: gcr_service.UpdateServiceRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> operations_pb2.Operation:
+            r"""Call the update service method over HTTP.
+
+            Args:
+                request (~.gcr_service.UpdateServiceRequest):
+                    The request object. Request message for updating a
+                service.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.operations_pb2.Operation:
+                    This resource represents a
+                long-running operation that is the
+                result of a network API call.
+
+            """
+
+            http_options = _BaseServicesRestTransport._BaseUpdateService._get_http_options()
+            request, metadata = self._interceptor.pre_update_service(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseUpdateService._get_transcoded_request(http_options, request)
+
+            body = _BaseServicesRestTransport._BaseUpdateService._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseUpdateService._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._UpdateService._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = operations_pb2.Operation()
+            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_update_service(resp)
+            return resp
+
+    @property
+    def create_service(self) -> Callable[
+            [gcr_service.CreateServiceRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._CreateService(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_service(self) -> Callable[
+            [service.DeleteServiceRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._DeleteService(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def get_iam_policy(self) -> Callable[
+            [iam_policy_pb2.GetIamPolicyRequest],
+            policy_pb2.Policy]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._GetIamPolicy(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def get_service(self) -> Callable[
+            [service.GetServiceRequest],
+            service.Service]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._GetService(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def list_services(self) -> Callable[
+            [service.ListServicesRequest],
+            service.ListServicesResponse]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._ListServices(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def set_iam_policy(self) -> Callable[
+            [iam_policy_pb2.SetIamPolicyRequest],
+            policy_pb2.Policy]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._SetIamPolicy(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def test_iam_permissions(self) -> Callable[
+            [iam_policy_pb2.TestIamPermissionsRequest],
+            iam_policy_pb2.TestIamPermissionsResponse]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._TestIamPermissions(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def update_service(self) -> Callable[
+            [gcr_service.UpdateServiceRequest],
+            operations_pb2.Operation]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._UpdateService(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_operation(self):
+        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _DeleteOperation(_BaseServicesRestTransport._BaseDeleteOperation, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.DeleteOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.DeleteOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> None:
+
+            r"""Call the delete operation method over HTTP.
+
+            Args:
+                request (operations_pb2.DeleteOperationRequest):
+                    The request object for DeleteOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+            """
+
+            http_options = _BaseServicesRestTransport._BaseDeleteOperation._get_http_options()
+            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            return self._interceptor.post_delete_operation(None)
+
+    @property
+    def get_operation(self):
+        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _GetOperation(_BaseServicesRestTransport._BaseGetOperation, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.GetOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.GetOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the get operation method over HTTP.
+
+            Args:
+                request (operations_pb2.GetOperationRequest):
+                    The request object for GetOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from GetOperation method.
+            """
+
+            http_options = _BaseServicesRestTransport._BaseGetOperation._get_http_options()
+            request, metadata = self._interceptor.pre_get_operation(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_get_operation(resp)
+            return resp
+
+    @property
+    def list_operations(self):
+        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
+
+    class _ListOperations(_BaseServicesRestTransport._BaseListOperations, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.ListOperations")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.ListOperationsRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.ListOperationsResponse:
+
+            r"""Call the list operations method over HTTP.
+
+            Args:
+                request (operations_pb2.ListOperationsRequest):
+                    The request object for ListOperations method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.ListOperationsResponse: Response from ListOperations method.
+            """
+
+            http_options = _BaseServicesRestTransport._BaseListOperations._get_http_options()
+            request, metadata = self._interceptor.pre_list_operations(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.ListOperationsResponse()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_list_operations(resp)
+            return resp
+
+    @property
+    def wait_operation(self):
+        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _WaitOperation(_BaseServicesRestTransport._BaseWaitOperation, ServicesRestStub):
+        def __hash__(self):
+            return hash("ServicesRestTransport.WaitOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.WaitOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the wait operation method over HTTP.
+
+            Args:
+                request (operations_pb2.WaitOperationRequest):
+                    The request object for WaitOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from WaitOperation method.
+            """
+
+            http_options = _BaseServicesRestTransport._BaseWaitOperation._get_http_options()
+            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
+            transcoded_request = _BaseServicesRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
+
+            body = _BaseServicesRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseServicesRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = ServicesRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_wait_operation(resp)
+            return resp
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'ServicesRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest_base.py
new file mode 100644
index 000000000000..4cfbb2f3fe04
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest_base.py
@@ -0,0 +1,537 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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  # type: ignore
+from google.api_core import path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.cloud.location import locations_pb2 # type: ignore
+from .base import ServicesTransport, DEFAULT_CLIENT_INFO
+
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+
+
+from google.cloud.run_v2.types import service
+from google.cloud.run_v2.types import service as gcr_service
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2  # type: ignore
+
+
+class _BaseServicesRestTransport(ServicesTransport):
+    """Base REST backend transport for Services.
+
+    Note: This class is not meant to be used directly. Use its sync and
+    async sub-classes instead.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[Any] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            url_scheme: str = 'https',
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[Any]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
+        if maybe_url_match is None:
+            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
+
+        url_match_items = maybe_url_match.groupdict()
+
+        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
+
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience
+        )
+
+    class _BaseCreateService:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+            "serviceId" : "",        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{parent=projects/*/locations/*}/services',
+                'body': 'service',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = gcr_service.CreateServiceRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseServicesRestTransport._BaseCreateService._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteService:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/services/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = service.DeleteServiceRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseServicesRestTransport._BaseDeleteService._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseGetIamPolicy:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{resource=projects/*/locations/*/services/*}:getIamPolicy',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = request
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseServicesRestTransport._BaseGetIamPolicy._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseGetService:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/services/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = service.GetServiceRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseServicesRestTransport._BaseGetService._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseListServices:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{parent=projects/*/locations/*}/services',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = service.ListServicesRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseServicesRestTransport._BaseListServices._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseSetIamPolicy:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{resource=projects/*/locations/*/services/*}:setIamPolicy',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = request
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseServicesRestTransport._BaseSetIamPolicy._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseTestIamPermissions:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{resource=projects/*/locations/*/services/*}:testIamPermissions',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = request
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseServicesRestTransport._BaseTestIamPermissions._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseUpdateService:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'patch',
+                'uri': '/v2/{service.name=projects/*/locations/*/services/*}',
+                'body': 'service',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = gcr_service.UpdateServiceRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                use_integers_for_enums=True
+            )
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseServicesRestTransport._BaseUpdateService._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseGetOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseListOperations:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*}/operations',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseWaitOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            body = json.dumps(transcoded_request['body'])
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+
+__all__=(
+    '_BaseServicesRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/__init__.py
new file mode 100644
index 000000000000..251dc9796893
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from .client import TasksClient
+from .async_client import TasksAsyncClient
+
+__all__ = (
+    'TasksClient',
+    'TasksAsyncClient',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/async_client.py
new file mode 100644
index 000000000000..7c9ecc65acb2
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/async_client.py
@@ -0,0 +1,692 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core.client_options import ClientOptions
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry_async as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+
+try:
+    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.tasks import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import task
+from google.cloud.run_v2.types import vendor_settings
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import TasksTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import TasksGrpcAsyncIOTransport
+from .client import TasksClient
+
+
+class TasksAsyncClient:
+    """Cloud Run Task Control Plane API."""
+
+    _client: TasksClient
+
+    # Copy defaults from the synchronous client for use here.
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = TasksClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = TasksClient.DEFAULT_MTLS_ENDPOINT
+    _DEFAULT_ENDPOINT_TEMPLATE = TasksClient._DEFAULT_ENDPOINT_TEMPLATE
+    _DEFAULT_UNIVERSE = TasksClient._DEFAULT_UNIVERSE
+
+    connector_path = staticmethod(TasksClient.connector_path)
+    parse_connector_path = staticmethod(TasksClient.parse_connector_path)
+    crypto_key_path = staticmethod(TasksClient.crypto_key_path)
+    parse_crypto_key_path = staticmethod(TasksClient.parse_crypto_key_path)
+    execution_path = staticmethod(TasksClient.execution_path)
+    parse_execution_path = staticmethod(TasksClient.parse_execution_path)
+    job_path = staticmethod(TasksClient.job_path)
+    parse_job_path = staticmethod(TasksClient.parse_job_path)
+    secret_path = staticmethod(TasksClient.secret_path)
+    parse_secret_path = staticmethod(TasksClient.parse_secret_path)
+    secret_version_path = staticmethod(TasksClient.secret_version_path)
+    parse_secret_version_path = staticmethod(TasksClient.parse_secret_version_path)
+    task_path = staticmethod(TasksClient.task_path)
+    parse_task_path = staticmethod(TasksClient.parse_task_path)
+    common_billing_account_path = staticmethod(TasksClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(TasksClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(TasksClient.common_folder_path)
+    parse_common_folder_path = staticmethod(TasksClient.parse_common_folder_path)
+    common_organization_path = staticmethod(TasksClient.common_organization_path)
+    parse_common_organization_path = staticmethod(TasksClient.parse_common_organization_path)
+    common_project_path = staticmethod(TasksClient.common_project_path)
+    parse_common_project_path = staticmethod(TasksClient.parse_common_project_path)
+    common_location_path = staticmethod(TasksClient.common_location_path)
+    parse_common_location_path = staticmethod(TasksClient.parse_common_location_path)
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            TasksAsyncClient: The constructed client.
+        """
+        return TasksClient.from_service_account_info.__func__(TasksAsyncClient, info, *args, **kwargs)  # type: ignore
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            TasksAsyncClient: The constructed client.
+        """
+        return TasksClient.from_service_account_file.__func__(TasksAsyncClient, filename, *args, **kwargs)  # type: ignore
+
+    from_service_account_json = from_service_account_file
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
+        """Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+        return TasksClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> TasksTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            TasksTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._client._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used
+                by the client instance.
+        """
+        return self._client._universe_domain
+
+    get_transport_class = TasksClient.get_transport_class
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, TasksTransport, Callable[..., TasksTransport]]] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the tasks async client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,TasksTransport,Callable[..., TasksTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport to use.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the TasksTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = TasksClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def get_task(self,
+            request: Optional[Union[task.GetTaskRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> task.Task:
+        r"""Gets information about a Task.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_get_task():
+                # Create a client
+                client = run_v2.TasksAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetTaskRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = await client.get_task(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.GetTaskRequest, dict]]):
+                The request object. Request message for obtaining a Task
+                by its full name.
+            name (:class:`str`):
+                Required. The full name of the Task.
+                Format:
+
+                projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Task:
+                Task represents a single run of a
+                container to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, task.GetTaskRequest):
+            request = task.GetTaskRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if name is not None:
+            request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.get_task]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("name", request.name),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_tasks(self,
+            request: Optional[Union[task.ListTasksRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListTasksAsyncPager:
+        r"""Lists Tasks from an Execution of a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            async def sample_list_tasks():
+                # Create a client
+                client = run_v2.TasksAsyncClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListTasksRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_tasks(request=request)
+
+                # Handle the response
+                async for response in page_result:
+                    print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.run_v2.types.ListTasksRequest, dict]]):
+                The request object. Request message for retrieving a list
+                of Tasks.
+            parent (:class:`str`):
+                Required. The Execution from which
+                the Tasks should be listed. To list all
+                Tasks across Executions of a Job, use
+                "-" instead of Execution name. To list
+                all Tasks across Jobs, use "-" instead
+                of Job name. Format:
+
+                projects/{project}/locations/{location}/jobs/{job}/executions/{execution}
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.tasks.pagers.ListTasksAsyncPager:
+                Response message containing a list of
+                Tasks.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError("If the `request` argument is set, then none of "
+                             "the individual field arguments should be set.")
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, task.ListTasksRequest):
+            request = task.ListTasksRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if parent is not None:
+            request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._client._transport._wrapped_methods[self._client._transport.list_tasks]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("parent", request.parent),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__aiter__` convenience method.
+        response = pagers.ListTasksAsyncPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    async def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._client._validate_universe_domain()
+
+        # Send the request.
+        response = await rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "TasksAsyncClient":
+        return self
+
+    async def __aexit__(self, exc_type, exc, tb):
+        await self.transport.close()
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "TasksAsyncClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/client.py
new file mode 100644
index 000000000000..93c1942cdcfd
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/client.py
@@ -0,0 +1,1074 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+import os
+import re
+from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+import warnings
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+from google.api_core import client_options as client_options_lib
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials             # type: ignore
+from google.auth.transport import mtls                            # type: ignore
+from google.auth.transport.grpc import SslCredentials             # type: ignore
+from google.auth.exceptions import MutualTLSChannelError          # type: ignore
+from google.oauth2 import service_account                         # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.services.tasks import pagers
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import task
+from google.cloud.run_v2.types import vendor_settings
+from google.longrunning import operations_pb2 # type: ignore
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from .transports.base import TasksTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import TasksGrpcTransport
+from .transports.grpc_asyncio import TasksGrpcAsyncIOTransport
+from .transports.rest import TasksRestTransport
+
+
+class TasksClientMeta(type):
+    """Metaclass for the Tasks client.
+
+    This provides class-level methods for building and retrieving
+    support objects (e.g. transport) without polluting the client instance
+    objects.
+    """
+    _transport_registry = OrderedDict()  # type: Dict[str, Type[TasksTransport]]
+    _transport_registry["grpc"] = TasksGrpcTransport
+    _transport_registry["grpc_asyncio"] = TasksGrpcAsyncIOTransport
+    _transport_registry["rest"] = TasksRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[TasksTransport]:
+        """Returns an appropriate transport class.
+
+        Args:
+            label: The name of the desired transport. If none is
+                provided, then the first transport in the registry is used.
+
+        Returns:
+            The transport class to use.
+        """
+        # If a specific transport is requested, return that one.
+        if label:
+            return cls._transport_registry[label]
+
+        # No transport is requested; return the default (that is, the first one
+        # in the dictionary).
+        return next(iter(cls._transport_registry.values()))
+
+
+class TasksClient(metaclass=TasksClientMeta):
+    """Cloud Run Task Control Plane API."""
+
+    @staticmethod
+    def _get_default_mtls_endpoint(api_endpoint):
+        """Converts api endpoint to mTLS endpoint.
+
+        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
+        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
+        Args:
+            api_endpoint (Optional[str]): the api endpoint to convert.
+        Returns:
+            str: converted mTLS api endpoint.
+        """
+        if not api_endpoint:
+            return api_endpoint
+
+        mtls_endpoint_re = re.compile(
+            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
+        )
+
+        m = mtls_endpoint_re.match(api_endpoint)
+        name, mtls, sandbox, googledomain = m.groups()
+        if mtls or not googledomain:
+            return api_endpoint
+
+        if sandbox:
+            return api_endpoint.replace(
+                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
+            )
+
+        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
+
+    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
+    DEFAULT_ENDPOINT = "run.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
+    _DEFAULT_UNIVERSE = "googleapis.com"
+
+    @classmethod
+    def from_service_account_info(cls, info: dict, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            info.
+
+        Args:
+            info (dict): The service account private key info.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            TasksClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_info(info)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    @classmethod
+    def from_service_account_file(cls, filename: str, *args, **kwargs):
+        """Creates an instance of this client using the provided credentials
+            file.
+
+        Args:
+            filename (str): The path to the service account private key json
+                file.
+            args: Additional arguments to pass to the constructor.
+            kwargs: Additional arguments to pass to the constructor.
+
+        Returns:
+            TasksClient: The constructed client.
+        """
+        credentials = service_account.Credentials.from_service_account_file(
+            filename)
+        kwargs["credentials"] = credentials
+        return cls(*args, **kwargs)
+
+    from_service_account_json = from_service_account_file
+
+    @property
+    def transport(self) -> TasksTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            TasksTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @staticmethod
+    def connector_path(project: str,location: str,connector: str,) -> str:
+        """Returns a fully-qualified connector string."""
+        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+
+    @staticmethod
+    def parse_connector_path(path: str) -> Dict[str,str]:
+        """Parses a connector path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
+        """Returns a fully-qualified crypto_key string."""
+        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+
+    @staticmethod
+    def parse_crypto_key_path(path: str) -> Dict[str,str]:
+        """Parses a crypto_key path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def execution_path(project: str,location: str,job: str,execution: str,) -> str:
+        """Returns a fully-qualified execution string."""
+        return "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
+
+    @staticmethod
+    def parse_execution_path(path: str) -> Dict[str,str]:
+        """Parses a execution path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)/executions/(?P<execution>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def job_path(project: str,location: str,job: str,) -> str:
+        """Returns a fully-qualified job string."""
+        return "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
+
+    @staticmethod
+    def parse_job_path(path: str) -> Dict[str,str]:
+        """Parses a job path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_path(project: str,secret: str,) -> str:
+        """Returns a fully-qualified secret string."""
+        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+
+    @staticmethod
+    def parse_secret_path(path: str) -> Dict[str,str]:
+        """Parses a secret path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def secret_version_path(project: str,secret: str,version: str,) -> str:
+        """Returns a fully-qualified secret_version string."""
+        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+
+    @staticmethod
+    def parse_secret_version_path(path: str) -> Dict[str,str]:
+        """Parses a secret_version path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def task_path(project: str,location: str,job: str,execution: str,task: str,) -> str:
+        """Returns a fully-qualified task string."""
+        return "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}".format(project=project, location=location, job=job, execution=execution, task=task, )
+
+    @staticmethod
+    def parse_task_path(path: str) -> Dict[str,str]:
+        """Parses a task path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)/executions/(?P<execution>.+?)/tasks/(?P<task>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_billing_account_path(billing_account: str, ) -> str:
+        """Returns a fully-qualified billing_account string."""
+        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+
+    @staticmethod
+    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
+        """Parse a billing_account path into its component segments."""
+        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_folder_path(folder: str, ) -> str:
+        """Returns a fully-qualified folder string."""
+        return "folders/{folder}".format(folder=folder, )
+
+    @staticmethod
+    def parse_common_folder_path(path: str) -> Dict[str,str]:
+        """Parse a folder path into its component segments."""
+        m = re.match(r"^folders/(?P<folder>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_organization_path(organization: str, ) -> str:
+        """Returns a fully-qualified organization string."""
+        return "organizations/{organization}".format(organization=organization, )
+
+    @staticmethod
+    def parse_common_organization_path(path: str) -> Dict[str,str]:
+        """Parse a organization path into its component segments."""
+        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_project_path(project: str, ) -> str:
+        """Returns a fully-qualified project string."""
+        return "projects/{project}".format(project=project, )
+
+    @staticmethod
+    def parse_common_project_path(path: str) -> Dict[str,str]:
+        """Parse a project path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @staticmethod
+    def common_location_path(project: str, location: str, ) -> str:
+        """Returns a fully-qualified location string."""
+        return "projects/{project}/locations/{location}".format(project=project, location=location, )
+
+    @staticmethod
+    def parse_common_location_path(path: str) -> Dict[str,str]:
+        """Parse a location path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
+        return m.groupdict() if m else {}
+
+    @classmethod
+    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
+        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
+
+        The client cert source is determined in the following order:
+        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
+        client cert source is None.
+        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
+        default client cert source exists, use the default one; otherwise the client cert
+        source is None.
+
+        The API endpoint is determined in the following order:
+        (1) if `client_options.api_endpoint` if provided, use the provided one.
+        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
+        default mTLS endpoint; if the environment variable is "never", use the default API
+        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
+        use the default API endpoint.
+
+        More details can be found at https://google.aip.dev/auth/4114.
+
+        Args:
+            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+                client. Only the `api_endpoint` and `client_cert_source` properties may be used
+                in this method.
+
+        Returns:
+            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
+                client cert source to use.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
+        """
+
+        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
+            DeprecationWarning)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+
+        # Figure out the client cert source to use.
+        client_cert_source = None
+        if use_client_cert == "true":
+            if client_options.client_cert_source:
+                client_cert_source = client_options.client_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+
+        # Figure out which api endpoint to use.
+        if client_options.api_endpoint is not None:
+            api_endpoint = client_options.api_endpoint
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = cls.DEFAULT_ENDPOINT
+
+        return api_endpoint, client_cert_source
+
+    @staticmethod
+    def _read_environment_variables():
+        """Returns the environment variables used by the client.
+
+        Returns:
+            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
+            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
+
+        Raises:
+            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
+                any of ["true", "false"].
+            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
+                is not any of ["auto", "never", "always"].
+        """
+        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
+        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
+        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
+        if use_client_cert not in ("true", "false"):
+            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
+        if use_mtls_endpoint not in ("auto", "never", "always"):
+            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
+        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
+
+    @staticmethod
+    def _get_client_cert_source(provided_cert_source, use_cert_flag):
+        """Return the client cert source to be used by the client.
+
+        Args:
+            provided_cert_source (bytes): The client certificate source provided.
+            use_cert_flag (bool): A flag indicating whether to use the client certificate.
+
+        Returns:
+            bytes or None: The client cert source to be used by the client.
+        """
+        client_cert_source = None
+        if use_cert_flag:
+            if provided_cert_source:
+                client_cert_source = provided_cert_source
+            elif mtls.has_default_client_cert_source():
+                client_cert_source = mtls.default_client_cert_source()
+        return client_cert_source
+
+    @staticmethod
+    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
+        """Return the API endpoint used by the client.
+
+        Args:
+            api_override (str): The API endpoint override. If specified, this is always
+                the return value of this function and the other arguments are not used.
+            client_cert_source (bytes): The client certificate source used by the client.
+            universe_domain (str): The universe domain used by the client.
+            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
+                Possible values are "always", "auto", or "never".
+
+        Returns:
+            str: The API endpoint to be used by the client.
+        """
+        if api_override is not None:
+            api_endpoint = api_override
+        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
+            _default_universe = TasksClient._DEFAULT_UNIVERSE
+            if universe_domain != _default_universe:
+                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
+            api_endpoint = TasksClient.DEFAULT_MTLS_ENDPOINT
+        else:
+            api_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
+        return api_endpoint
+
+    @staticmethod
+    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
+        """Return the universe domain used by the client.
+
+        Args:
+            client_universe_domain (Optional[str]): The universe domain configured via the client options.
+            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
+
+        Returns:
+            str: The universe domain to be used by the client.
+
+        Raises:
+            ValueError: If the universe domain is an empty string.
+        """
+        universe_domain = TasksClient._DEFAULT_UNIVERSE
+        if client_universe_domain is not None:
+            universe_domain = client_universe_domain
+        elif universe_domain_env is not None:
+            universe_domain = universe_domain_env
+        if len(universe_domain.strip()) == 0:
+            raise ValueError("Universe Domain cannot be an empty string.")
+        return universe_domain
+
+    def _validate_universe_domain(self):
+        """Validates client's and credentials' universe domains are consistent.
+
+        Returns:
+            bool: True iff the configured universe domain is valid.
+
+        Raises:
+            ValueError: If the configured universe domain is not valid.
+        """
+
+        # NOTE (b/349488459): universe validation is disabled until further notice.
+        return True
+
+    @property
+    def api_endpoint(self):
+        """Return the API endpoint used by the client instance.
+
+        Returns:
+            str: The API endpoint used by the client instance.
+        """
+        return self._api_endpoint
+
+    @property
+    def universe_domain(self) -> str:
+        """Return the universe domain used by the client instance.
+
+        Returns:
+            str: The universe domain used by the client instance.
+        """
+        return self._universe_domain
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, TasksTransport, Callable[..., TasksTransport]]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the tasks client.
+
+        Args:
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            transport (Optional[Union[str,TasksTransport,Callable[..., TasksTransport]]]):
+                The transport to use, or a Callable that constructs and returns a new transport.
+                If a Callable is given, it will be called with the same set of initialization
+                arguments as used in the TasksTransport constructor.
+                If set to None, a transport is chosen automatically.
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
+                Custom options for the client.
+
+                1. The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client when ``transport`` is
+                not explicitly provided. Only if this property is not set and
+                ``transport`` was not explicitly provided, the endpoint is
+                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
+                variable, which have one of the following values:
+                "always" (always use the default mTLS endpoint), "never" (always
+                use the default regular endpoint) and "auto" (auto-switch to the
+                default mTLS endpoint if client certificate is present; this is
+                the default value).
+
+                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide a client certificate for mTLS transport. If
+                not provided, the default SSL client certificate will be used if
+                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
+                set, no client certificate will be used.
+
+                3. The ``universe_domain`` property can be used to override the
+                default "googleapis.com" universe. Note that the ``api_endpoint``
+                property still takes precedence; and ``universe_domain`` is
+                currently not supported for mTLS.
+
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+
+        Raises:
+            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client_options = client_options
+        if isinstance(self._client_options, dict):
+            self._client_options = client_options_lib.from_dict(self._client_options)
+        if self._client_options is None:
+            self._client_options = client_options_lib.ClientOptions()
+        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
+
+        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
+
+        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = TasksClient._read_environment_variables()
+        self._client_cert_source = TasksClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
+        self._universe_domain = TasksClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
+        self._api_endpoint = None # updated below, depending on `transport`
+
+        # Initialize the universe domain validation.
+        self._is_universe_domain_valid = False
+
+        api_key_value = getattr(self._client_options, "api_key", None)
+        if api_key_value and credentials:
+            raise ValueError("client_options.api_key and credentials are mutually exclusive")
+
+        # Save or instantiate the transport.
+        # Ordinarily, we provide the transport, but allowing a custom transport
+        # instance provides an extensibility point for unusual situations.
+        transport_provided = isinstance(transport, TasksTransport)
+        if transport_provided:
+            # transport is a TasksTransport instance.
+            if credentials or self._client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if self._client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = cast(TasksTransport, transport)
+            self._api_endpoint = self._transport.host
+
+        self._api_endpoint = (self._api_endpoint or
+            TasksClient._get_api_endpoint(
+                self._client_options.api_endpoint,
+                self._client_cert_source,
+                self._universe_domain,
+                self._use_mtls_endpoint))
+
+        if not transport_provided:
+            import google.auth._default  # type: ignore
+
+            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
+                credentials = google.auth._default.get_api_key_credentials(api_key_value)
+
+            transport_init: Union[Type[TasksTransport], Callable[..., TasksTransport]] = (
+                TasksClient.get_transport_class(transport)
+                if isinstance(transport, str) or transport is None
+                else cast(Callable[..., TasksTransport], transport)
+            )
+            # initialize with the provided callable or the passed in class
+            self._transport = transport_init(
+                credentials=credentials,
+                credentials_file=self._client_options.credentials_file,
+                host=self._api_endpoint,
+                scopes=self._client_options.scopes,
+                client_cert_source_for_mtls=self._client_cert_source,
+                quota_project_id=self._client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=self._client_options.api_audience,
+            )
+
+    def get_task(self,
+            request: Optional[Union[task.GetTaskRequest, dict]] = None,
+            *,
+            name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> task.Task:
+        r"""Gets information about a Task.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_get_task():
+                # Create a client
+                client = run_v2.TasksClient()
+
+                # Initialize request argument(s)
+                request = run_v2.GetTaskRequest(
+                    name="name_value",
+                )
+
+                # Make the request
+                response = client.get_task(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.GetTaskRequest, dict]):
+                The request object. Request message for obtaining a Task
+                by its full name.
+            name (str):
+                Required. The full name of the Task.
+                Format:
+
+                projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}
+
+                This corresponds to the ``name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.types.Task:
+                Task represents a single run of a
+                container to completion.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([name])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, task.GetTaskRequest):
+            request = task.GetTaskRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if name is not None:
+                request.name = name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_task]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("name", request.name),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def list_tasks(self,
+            request: Optional[Union[task.ListTasksRequest, dict]] = None,
+            *,
+            parent: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListTasksPager:
+        r"""Lists Tasks from an Execution of a Job.
+
+        .. code-block:: python
+
+            # This snippet has been automatically generated and should be regarded as a
+            # code template only.
+            # It will require modifications to work:
+            # - It may require correct/in-range values for request initialization.
+            # - It may require specifying regional endpoints when creating the service
+            #   client as shown in:
+            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
+            from google.cloud import run_v2
+
+            def sample_list_tasks():
+                # Create a client
+                client = run_v2.TasksClient()
+
+                # Initialize request argument(s)
+                request = run_v2.ListTasksRequest(
+                    parent="parent_value",
+                )
+
+                # Make the request
+                page_result = client.list_tasks(request=request)
+
+                # Handle the response
+                for response in page_result:
+                    print(response)
+
+        Args:
+            request (Union[google.cloud.run_v2.types.ListTasksRequest, dict]):
+                The request object. Request message for retrieving a list
+                of Tasks.
+            parent (str):
+                Required. The Execution from which
+                the Tasks should be listed. To list all
+                Tasks across Executions of a Job, use
+                "-" instead of Execution name. To list
+                all Tasks across Jobs, use "-" instead
+                of Job name. Format:
+
+                projects/{project}/locations/{location}/jobs/{job}/executions/{execution}
+
+                This corresponds to the ``parent`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+
+        Returns:
+            google.cloud.run_v2.services.tasks.pagers.ListTasksPager:
+                Response message containing a list of
+                Tasks.
+                Iterating over this object will yield
+                results and resolve additional pages
+                automatically.
+
+        """
+        # Create or coerce a protobuf request object.
+        # - Quick check: If we got a request object, we should *not* have
+        #   gotten any keyword arguments that map to the request.
+        has_flattened_params = any([parent])
+        if request is not None and has_flattened_params:
+            raise ValueError('If the `request` argument is set, then none of '
+                             'the individual field arguments should be set.')
+
+        # - Use the request object if provided (there's no risk of modifying the input as
+        #   there are no flattened fields), or create one.
+        if not isinstance(request, task.ListTasksRequest):
+            request = task.ListTasksRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if parent is not None:
+                request.parent = parent
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_tasks]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("parent", request.parent),
+            )),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # This method is paged; wrap the response in a pager, which provides
+        # an `__iter__` convenience method.
+        response = pagers.ListTasksPager(
+            method=rpc,
+            request=request,
+            response=response,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "TasksClient":
+        return self
+
+    def __exit__(self, type, value, traceback):
+        """Releases underlying transport's resources.
+
+        .. warning::
+            ONLY use as a context manager if the transport is NOT shared
+            with other clients! Exiting the with block will CLOSE the transport
+            and may cause errors in other clients!
+        """
+        self.transport.close()
+
+    def list_operations(
+        self,
+        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.ListOperationsResponse:
+        r"""Lists operations that match the specified filter in the request.
+
+        Args:
+            request (:class:`~.operations_pb2.ListOperationsRequest`):
+                The request object. Request message for
+                `ListOperations` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.ListOperationsResponse:
+                Response message for ``ListOperations`` method.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.ListOperationsRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_operations]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def get_operation(
+        self,
+        request: Optional[operations_pb2.GetOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Gets the latest state of a long-running operation.
+
+        Args:
+            request (:class:`~.operations_pb2.GetOperationRequest`):
+                The request object. Request message for
+                `GetOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.GetOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+    def delete_operation(
+        self,
+        request: Optional[operations_pb2.DeleteOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> None:
+        r"""Deletes a long-running operation.
+
+        This method indicates that the client is no longer interested
+        in the operation result. It does not cancel the operation.
+        If the server doesn't support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.DeleteOperationRequest`):
+                The request object. Request message for
+                `DeleteOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            None
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.DeleteOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
+
+    def wait_operation(
+        self,
+        request: Optional[operations_pb2.WaitOperationRequest] = None,
+        *,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
+        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+        metadata: Sequence[Tuple[str, str]] = (),
+    ) -> operations_pb2.Operation:
+        r"""Waits until the specified long-running operation is done or reaches at most
+        a specified timeout, returning the latest state.
+
+        If the operation is already done, the latest state is immediately returned.
+        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
+        timeout is used.  If the server does not support this method, it returns
+        `google.rpc.Code.UNIMPLEMENTED`.
+
+        Args:
+            request (:class:`~.operations_pb2.WaitOperationRequest`):
+                The request object. Request message for
+                `WaitOperation` method.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                    if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        Returns:
+            ~.operations_pb2.Operation:
+                An ``Operation`` object.
+        """
+        # Create or coerce a protobuf request object.
+        # The request isn't a proto-plus wrapped type,
+        # so it must be constructed via keyword expansion.
+        if isinstance(request, dict):
+            request = operations_pb2.WaitOperationRequest(**request)
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata(
+                (("name", request.name),)),
+        )
+
+        # Validate the universe domain.
+        self._validate_universe_domain()
+
+        # Send the request.
+        response = rpc(
+            request, retry=retry, timeout=timeout, metadata=metadata,)
+
+        # Done; return the response.
+        return response
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "TasksClient",
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/pagers.py
new file mode 100644
index 000000000000..6068f1054817
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/pagers.py
@@ -0,0 +1,162 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.api_core import retry_async as retries_async
+from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
+
+from google.cloud.run_v2.types import task
+
+
+class ListTasksPager:
+    """A pager for iterating through ``list_tasks`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListTasksResponse` object, and
+    provides an ``__iter__`` method to iterate through its
+    ``tasks`` field.
+
+    If there are more pages, the ``__iter__`` method will make additional
+    ``ListTasks`` requests and continue to iterate
+    through the ``tasks`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListTasksResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., task.ListTasksResponse],
+            request: task.ListTasksRequest,
+            response: task.ListTasksResponse,
+            *,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiate the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListTasksRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListTasksResponse):
+                The initial response object.
+            retry (google.api_core.retry.Retry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = task.ListTasksRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    def pages(self) -> Iterator[task.ListTasksResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+
+    def __iter__(self) -> Iterator[task.Task]:
+        for page in self.pages:
+            yield from page.tasks
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
+
+
+class ListTasksAsyncPager:
+    """A pager for iterating through ``list_tasks`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.run_v2.types.ListTasksResponse` object, and
+    provides an ``__aiter__`` method to iterate through its
+    ``tasks`` field.
+
+    If there are more pages, the ``__aiter__`` method will make additional
+    ``ListTasks`` requests and continue to iterate
+    through the ``tasks`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.run_v2.types.ListTasksResponse`
+    attributes are available on the pager. If multiple requests are made, only
+    the most recent response is retained, and thus used for attribute lookup.
+    """
+    def __init__(self,
+            method: Callable[..., Awaitable[task.ListTasksResponse]],
+            request: task.ListTasksRequest,
+            response: task.ListTasksResponse,
+            *,
+            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = ()):
+        """Instantiates the pager.
+
+        Args:
+            method (Callable): The method that was originally called, and
+                which instantiated this pager.
+            request (google.cloud.run_v2.types.ListTasksRequest):
+                The initial request object.
+            response (google.cloud.run_v2.types.ListTasksResponse):
+                The initial response object.
+            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
+                if any, should be retried.
+            timeout (float): The timeout for this request.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = task.ListTasksRequest(request)
+        self._response = response
+        self._retry = retry
+        self._timeout = timeout
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    async def pages(self) -> AsyncIterator[task.ListTasksResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
+            yield self._response
+    def __aiter__(self) -> AsyncIterator[task.Task]:
+        async def async_generator():
+            async for page in self.pages:
+                for response in page.tasks:
+                    yield response
+
+        return async_generator()
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/README.rst
new file mode 100644
index 000000000000..2bdc15d8a2cf
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/README.rst
@@ -0,0 +1,9 @@
+
+transport inheritance structure
+_______________________________
+
+`TasksTransport` is the ABC for all transports.
+- public child `TasksGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
+- public child `TasksGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
+- private child `_BaseTasksRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
+- public child `TasksRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/__init__.py
new file mode 100644
index 000000000000..d16a8a28ebe7
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from collections import OrderedDict
+from typing import Dict, Type
+
+from .base import TasksTransport
+from .grpc import TasksGrpcTransport
+from .grpc_asyncio import TasksGrpcAsyncIOTransport
+from .rest import TasksRestTransport
+from .rest import TasksRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[TasksTransport]]
+_transport_registry['grpc'] = TasksGrpcTransport
+_transport_registry['grpc_asyncio'] = TasksGrpcAsyncIOTransport
+_transport_registry['rest'] = TasksRestTransport
+
+__all__ = (
+    'TasksTransport',
+    'TasksGrpcTransport',
+    'TasksGrpcAsyncIOTransport',
+    'TasksRestTransport',
+    'TasksRestInterceptor',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/base.py
new file mode 100644
index 000000000000..edec121694c8
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/base.py
@@ -0,0 +1,226 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 abc
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
+
+from google.cloud.run_v2 import gapic_version as package_version
+
+import google.auth  # type: ignore
+import google.api_core
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.oauth2 import service_account # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import task
+from google.longrunning import operations_pb2 # type: ignore
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class TasksTransport(abc.ABC):
+    """Abstract transport class for Tasks."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'run.googleapis.com'
+    def __init__(
+            self, *,
+            host: str = DEFAULT_HOST,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            **kwargs,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A list of scopes.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+        """
+
+        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
+
+        # Save the scopes.
+        self._scopes = scopes
+        if not hasattr(self, "_ignore_credentials"):
+            self._ignore_credentials: bool = False
+
+        # If no credentials are provided, then determine the appropriate
+        # defaults.
+        if credentials and credentials_file:
+            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
+
+        if credentials_file is not None:
+            credentials, _ = google.auth.load_credentials_from_file(
+                                credentials_file,
+                                **scopes_kwargs,
+                                quota_project_id=quota_project_id
+                            )
+        elif credentials is None and not self._ignore_credentials:
+            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
+            # Don't apply audience if the credentials file passed from user.
+            if hasattr(credentials, "with_gdch_audience"):
+                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
+
+        # If the credentials are service account credentials, then always try to use self signed JWT.
+        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
+            credentials = credentials.with_always_use_jwt_access(True)
+
+        # Save the credentials.
+        self._credentials = credentials
+
+        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
+        if ':' not in host:
+            host += ':443'
+        self._host = host
+
+    @property
+    def host(self):
+        return self._host
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.get_task: gapic_v1.method.wrap_method(
+                self.get_task,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_tasks: gapic_v1.method.wrap_method(
+                self.list_tasks,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: gapic_v1.method.wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: gapic_v1.method.wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: gapic_v1.method.wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: gapic_v1.method.wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+         }
+
+    def close(self):
+        """Closes resources associated with the transport.
+
+       .. warning::
+            Only call this method if the transport is NOT shared
+            with other clients - this may cause errors in other clients!
+        """
+        raise NotImplementedError()
+
+    @property
+    def get_task(self) -> Callable[
+            [task.GetTaskRequest],
+            Union[
+                task.Task,
+                Awaitable[task.Task]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_tasks(self) -> Callable[
+            [task.ListTasksRequest],
+            Union[
+                task.ListTasksResponse,
+                Awaitable[task.ListTasksResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[
+        [operations_pb2.ListOperationsRequest],
+        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.GetOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.DeleteOperationRequest],
+        None,
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[
+        [operations_pb2.WaitOperationRequest],
+        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
+    ]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'TasksTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc.py
new file mode 100644
index 000000000000..201da3bc1a15
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc.py
@@ -0,0 +1,370 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 warnings
+from typing import Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import grpc_helpers
+from google.api_core import gapic_v1
+import google.auth                         # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import task
+from google.longrunning import operations_pb2 # type: ignore
+from .base import TasksTransport, DEFAULT_CLIENT_INFO
+
+
+class TasksGrpcTransport(TasksTransport):
+    """gRPC backend transport for Tasks.
+
+    Cloud Run Task Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+    _stubs: Dict[str, Callable]
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[grpc.Channel, Callable[..., 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,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if a ``channel`` instance is provided.
+            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, grpc.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._prep_wrapped_messages(client_info)
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> grpc.Channel:
+        """Create and return a gRPC channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is mutually exclusive with credentials.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            grpc.Channel: A gRPC channel object.
+
+        Raises:
+            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+
+        return grpc_helpers.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    @property
+    def grpc_channel(self) -> grpc.Channel:
+        """Return the channel designed to connect to this service.
+        """
+        return self._grpc_channel
+
+    @property
+    def get_task(self) -> Callable[
+            [task.GetTaskRequest],
+            task.Task]:
+        r"""Return a callable for the get task method over gRPC.
+
+        Gets information about a Task.
+
+        Returns:
+            Callable[[~.GetTaskRequest],
+                    ~.Task]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_task' not in self._stubs:
+            self._stubs['get_task'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Tasks/GetTask',
+                request_serializer=task.GetTaskRequest.serialize,
+                response_deserializer=task.Task.deserialize,
+            )
+        return self._stubs['get_task']
+
+    @property
+    def list_tasks(self) -> Callable[
+            [task.ListTasksRequest],
+            task.ListTasksResponse]:
+        r"""Return a callable for the list tasks method over gRPC.
+
+        Lists Tasks from an Execution of a Job.
+
+        Returns:
+            Callable[[~.ListTasksRequest],
+                    ~.ListTasksResponse]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_tasks' not in self._stubs:
+            self._stubs['list_tasks'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Tasks/ListTasks',
+                request_serializer=task.ListTasksRequest.serialize,
+                response_deserializer=task.ListTasksResponse.deserialize,
+            )
+        return self._stubs['list_tasks']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'TasksGrpcTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc_asyncio.py
new file mode 100644
index 000000000000..dc8b7767b101
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc_asyncio.py
@@ -0,0 +1,416 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 inspect
+import warnings
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry_async as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.auth.transport.grpc import SslCredentials  # type: ignore
+
+import grpc                        # type: ignore
+from grpc.experimental import aio  # type: ignore
+
+from google.cloud.location import locations_pb2 # type: ignore
+from google.cloud.run_v2.types import task
+from google.longrunning import operations_pb2 # type: ignore
+from .base import TasksTransport, DEFAULT_CLIENT_INFO
+from .grpc import TasksGrpcTransport
+
+
+class TasksGrpcAsyncIOTransport(TasksTransport):
+    """gRPC AsyncIO backend transport for Tasks.
+
+    Cloud Run Task Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends protocol buffers over the wire using gRPC (which is built on
+    top of HTTP/2); the ``grpcio`` package must be installed.
+    """
+
+    _grpc_channel: aio.Channel
+    _stubs: Dict[str, Callable] = {}
+
+    @classmethod
+    def create_channel(cls,
+                       host: str = 'run.googleapis.com',
+                       credentials: Optional[ga_credentials.Credentials] = None,
+                       credentials_file: Optional[str] = None,
+                       scopes: Optional[Sequence[str]] = None,
+                       quota_project_id: Optional[str] = None,
+                       **kwargs) -> aio.Channel:
+        """Create and return a gRPC AsyncIO channel object.
+        Args:
+            host (Optional[str]): The host for the channel to use.
+            credentials (Optional[~.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify this application to the service. If
+                none are specified, the client will attempt to ascertain
+                the credentials from the environment.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            kwargs (Optional[dict]): Keyword arguments, which are passed to the
+                channel creation.
+        Returns:
+            aio.Channel: A gRPC AsyncIO channel object.
+        """
+
+        return grpc_helpers_async.create_channel(
+            host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            quota_project_id=quota_project_id,
+            default_scopes=cls.AUTH_SCOPES,
+            scopes=scopes,
+            default_host=cls.DEFAULT_HOST,
+            **kwargs
+        )
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[Union[aio.Channel, Callable[..., 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,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+                This argument is ignored if a ``channel`` instance is provided.
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if a ``channel`` instance is provided.
+            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
+                service. These are only used when credentials are not specified and
+                are passed to :func:`google.auth.default`.
+            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
+                A ``Channel`` instance through which to make calls, or a Callable
+                that constructs and returns one. If set to None, ``self.create_channel``
+                is used to create the channel. If a Callable is given, it will be called
+                with the same arguments as used in ``self.create_channel``.
+            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
+                If provided, it overrides the ``host`` argument and tries to create
+                a mutual TLS channel with client SSL credentials from
+                ``client_cert_source`` or application default SSL credentials.
+            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                Deprecated. A callback to provide client SSL certificate bytes and
+                private key bytes, both in PEM format. It is ignored if
+                ``api_mtls_endpoint`` is None.
+            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
+                for the grpc channel. It is ignored if a ``channel`` instance is provided.
+            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
+                A callback to provide client certificate bytes and private key bytes,
+                both in PEM format. It is used to configure a mutual TLS channel. It is
+                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you're developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+              creation failed for any reason.
+          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
+              and ``credentials_file`` are passed.
+        """
+        self._grpc_channel = None
+        self._ssl_channel_credentials = ssl_channel_credentials
+        self._stubs: Dict[str, Callable] = {}
+
+        if api_mtls_endpoint:
+            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
+        if client_cert_source:
+            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
+
+        if isinstance(channel, aio.Channel):
+            # Ignore credentials if a channel was passed.
+            credentials = None
+            self._ignore_credentials = True
+            # If a channel was explicitly provided, set it.
+            self._grpc_channel = channel
+            self._ssl_channel_credentials = None
+        else:
+            if api_mtls_endpoint:
+                host = api_mtls_endpoint
+
+                # Create SSL credentials with client_cert_source or application
+                # default SSL credentials.
+                if client_cert_source:
+                    cert, key = client_cert_source()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+                else:
+                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
+
+            else:
+                if client_cert_source_for_mtls and not ssl_channel_credentials:
+                    cert, key = client_cert_source_for_mtls()
+                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
+                        certificate_chain=cert, private_key=key
+                    )
+
+        # The base transport sets the host, credentials and scopes
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            credentials_file=credentials_file,
+            scopes=scopes,
+            quota_project_id=quota_project_id,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience,
+        )
+
+        if not self._grpc_channel:
+            # initialize with the provided callable or the default channel
+            channel_init = channel or type(self).create_channel
+            self._grpc_channel = channel_init(
+                self._host,
+                # use the credentials which are saved
+                credentials=self._credentials,
+                # Set ``credentials_file`` to ``None`` here as
+                # the credentials that we saved earlier should be used.
+                credentials_file=None,
+                scopes=self._scopes,
+                ssl_credentials=self._ssl_channel_credentials,
+                quota_project_id=quota_project_id,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+
+        # Wrap messages. This must be done after self._grpc_channel exists
+        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
+        self._prep_wrapped_messages(client_info)
+
+    @property
+    def grpc_channel(self) -> aio.Channel:
+        """Create the channel designed to connect to this service.
+
+        This property caches on the instance; repeated calls return
+        the same channel.
+        """
+        # Return the channel from cache.
+        return self._grpc_channel
+
+    @property
+    def get_task(self) -> Callable[
+            [task.GetTaskRequest],
+            Awaitable[task.Task]]:
+        r"""Return a callable for the get task method over gRPC.
+
+        Gets information about a Task.
+
+        Returns:
+            Callable[[~.GetTaskRequest],
+                    Awaitable[~.Task]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'get_task' not in self._stubs:
+            self._stubs['get_task'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Tasks/GetTask',
+                request_serializer=task.GetTaskRequest.serialize,
+                response_deserializer=task.Task.deserialize,
+            )
+        return self._stubs['get_task']
+
+    @property
+    def list_tasks(self) -> Callable[
+            [task.ListTasksRequest],
+            Awaitable[task.ListTasksResponse]]:
+        r"""Return a callable for the list tasks method over gRPC.
+
+        Lists Tasks from an Execution of a Job.
+
+        Returns:
+            Callable[[~.ListTasksRequest],
+                    Awaitable[~.ListTasksResponse]]:
+                A function that, when called, will call the underlying RPC
+                on the server.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if 'list_tasks' not in self._stubs:
+            self._stubs['list_tasks'] = self.grpc_channel.unary_unary(
+                '/google.cloud.run.v2.Tasks/ListTasks',
+                request_serializer=task.ListTasksRequest.serialize,
+                response_deserializer=task.ListTasksResponse.deserialize,
+            )
+        return self._stubs['list_tasks']
+
+    def _prep_wrapped_messages(self, client_info):
+        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
+        self._wrapped_methods = {
+            self.get_task: self._wrap_method(
+                self.get_task,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_tasks: self._wrap_method(
+                self.list_tasks,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_operation: self._wrap_method(
+                self.delete_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.get_operation: self._wrap_method(
+                self.get_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_operations: self._wrap_method(
+                self.list_operations,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.wait_operation: self._wrap_method(
+                self.wait_operation,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+        }
+
+    def _wrap_method(self, func, *args, **kwargs):
+        if self._wrap_with_kind:  # pragma: NO COVER
+            kwargs["kind"] = self.kind
+        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
+
+    def close(self):
+        return self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc_asyncio"
+
+    @property
+    def delete_operation(
+        self,
+    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
+        r"""Return a callable for the delete_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "delete_operation" not in self._stubs:
+            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/DeleteOperation",
+                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["delete_operation"]
+
+    @property
+    def wait_operation(
+        self,
+    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
+        r"""Return a callable for the wait_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "wait_operation" not in self._stubs:
+            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/WaitOperation",
+                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
+                response_deserializer=None,
+            )
+        return self._stubs["wait_operation"]
+
+    @property
+    def get_operation(
+        self,
+    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
+        r"""Return a callable for the get_operation method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "get_operation" not in self._stubs:
+            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/GetOperation",
+                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
+                response_deserializer=operations_pb2.Operation.FromString,
+            )
+        return self._stubs["get_operation"]
+
+    @property
+    def list_operations(
+        self,
+    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
+        r"""Return a callable for the list_operations method over gRPC.
+        """
+        # Generate a "stub function" on-the-fly which will actually make
+        # the request.
+        # gRPC handles serialization and deserialization, so we just need
+        # to pass in the functions for each.
+        if "list_operations" not in self._stubs:
+            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
+                "/google.longrunning.Operations/ListOperations",
+                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
+                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
+            )
+        return self._stubs["list_operations"]
+
+
+__all__ = (
+    'TasksGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest.py
new file mode 100644
index 000000000000..afbf21734ae2
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest.py
@@ -0,0 +1,756 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+
+from google.auth.transport.requests import AuthorizedSession  # type: ignore
+import json  # type: ignore
+from google.auth import credentials as ga_credentials  # type: ignore
+from google.api_core import exceptions as core_exceptions
+from google.api_core import retry as retries
+from google.api_core import rest_helpers
+from google.api_core import rest_streaming
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.cloud.location import locations_pb2 # type: ignore
+
+from requests import __version__ as requests_version
+import dataclasses
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+
+from google.cloud.run_v2.types import task
+from google.longrunning import operations_pb2  # type: ignore
+
+
+from .rest_base import _BaseTasksRestTransport
+from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=f"requests@{requests_version}",
+)
+
+
+class TasksRestInterceptor:
+    """Interceptor for Tasks.
+
+    Interceptors are used to manipulate requests, request metadata, and responses
+    in arbitrary ways.
+    Example use cases include:
+    * Logging
+    * Verifying requests according to service or custom semantics
+    * Stripping extraneous information from responses
+
+    These use cases and more can be enabled by injecting an
+    instance of a custom subclass when constructing the TasksRestTransport.
+
+    .. code-block:: python
+        class MyCustomTasksInterceptor(TasksRestInterceptor):
+            def pre_get_task(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_get_task(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_list_tasks(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_list_tasks(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = TasksRestTransport(interceptor=MyCustomTasksInterceptor())
+        client = TasksClient(transport=transport)
+
+
+    """
+    def pre_get_task(self, request: task.GetTaskRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[task.GetTaskRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_task
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Tasks server.
+        """
+        return request, metadata
+
+    def post_get_task(self, response: task.Task) -> task.Task:
+        """Post-rpc interceptor for get_task
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Tasks server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_tasks(self, request: task.ListTasksRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[task.ListTasksRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_tasks
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Tasks server.
+        """
+        return request, metadata
+
+    def post_list_tasks(self, response: task.ListTasksResponse) -> task.ListTasksResponse:
+        """Post-rpc interceptor for list_tasks
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Tasks server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_delete_operation(
+        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Tasks server.
+        """
+        return request, metadata
+
+    def post_delete_operation(
+        self, response: None
+    ) -> None:
+        """Post-rpc interceptor for delete_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Tasks server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_get_operation(
+        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Tasks server.
+        """
+        return request, metadata
+
+    def post_get_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for get_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Tasks server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_list_operations(
+        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Tasks server.
+        """
+        return request, metadata
+
+    def post_list_operations(
+        self, response: operations_pb2.ListOperationsResponse
+    ) -> operations_pb2.ListOperationsResponse:
+        """Post-rpc interceptor for list_operations
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Tasks server but before
+        it is returned to user code.
+        """
+        return response
+
+    def pre_wait_operation(
+        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
+    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the Tasks server.
+        """
+        return request, metadata
+
+    def post_wait_operation(
+        self, response: operations_pb2.Operation
+    ) -> operations_pb2.Operation:
+        """Post-rpc interceptor for wait_operation
+
+        Override in a subclass to manipulate the response
+        after it is returned by the Tasks server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class TasksRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: TasksRestInterceptor
+
+
+class TasksRestTransport(_BaseTasksRestTransport):
+    """REST backend synchronous transport for Tasks.
+
+    Cloud Run Task Control Plane API.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = 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,
+            url_scheme: str = 'https',
+            interceptor: Optional[TasksRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[google.auth.credentials.Credentials]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+
+            credentials_file (Optional[str]): A file with credentials that can
+                be loaded with :func:`google.auth.load_credentials_from_file`.
+                This argument is ignored if ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
+                certificate to configure mutual TLS HTTP channel. It is ignored
+                if ``channel`` is provided.
+            quota_project_id (Optional[str]): An optional project to use for billing
+                and quota.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
+        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
+        # credentials object
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            url_scheme=url_scheme,
+            api_audience=api_audience
+        )
+        self._session = AuthorizedSession(
+            self._credentials, default_host=self.DEFAULT_HOST)
+        if client_cert_source_for_mtls:
+            self._session.configure_mtls_channel(client_cert_source_for_mtls)
+        self._interceptor = interceptor or TasksRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    class _GetTask(_BaseTasksRestTransport._BaseGetTask, TasksRestStub):
+        def __hash__(self):
+            return hash("TasksRestTransport.GetTask")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: task.GetTaskRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> task.Task:
+            r"""Call the get task method over HTTP.
+
+            Args:
+                request (~.task.GetTaskRequest):
+                    The request object. Request message for obtaining a Task
+                by its full name.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.task.Task:
+                    Task represents a single run of a
+                container to completion.
+
+            """
+
+            http_options = _BaseTasksRestTransport._BaseGetTask._get_http_options()
+            request, metadata = self._interceptor.pre_get_task(request, metadata)
+            transcoded_request = _BaseTasksRestTransport._BaseGetTask._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseTasksRestTransport._BaseGetTask._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = TasksRestTransport._GetTask._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = task.Task()
+            pb_resp = task.Task.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_get_task(resp)
+            return resp
+
+    class _ListTasks(_BaseTasksRestTransport._BaseListTasks, TasksRestStub):
+        def __hash__(self):
+            return hash("TasksRestTransport.ListTasks")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+                request: task.ListTasksRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> task.ListTasksResponse:
+            r"""Call the list tasks method over HTTP.
+
+            Args:
+                request (~.task.ListTasksRequest):
+                    The request object. Request message for retrieving a list
+                of Tasks.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                ~.task.ListTasksResponse:
+                    Response message containing a list of
+                Tasks.
+
+            """
+
+            http_options = _BaseTasksRestTransport._BaseListTasks._get_http_options()
+            request, metadata = self._interceptor.pre_list_tasks(request, metadata)
+            transcoded_request = _BaseTasksRestTransport._BaseListTasks._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseTasksRestTransport._BaseListTasks._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = TasksRestTransport._ListTasks._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            # Return the response
+            resp = task.ListTasksResponse()
+            pb_resp = task.ListTasksResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_list_tasks(resp)
+            return resp
+
+    @property
+    def get_task(self) -> Callable[
+            [task.GetTaskRequest],
+            task.Task]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._GetTask(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def list_tasks(self) -> Callable[
+            [task.ListTasksRequest],
+            task.ListTasksResponse]:
+        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
+        # In C++ this would require a dynamic_cast
+        return self._ListTasks(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def delete_operation(self):
+        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _DeleteOperation(_BaseTasksRestTransport._BaseDeleteOperation, TasksRestStub):
+        def __hash__(self):
+            return hash("TasksRestTransport.DeleteOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.DeleteOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> None:
+
+            r"""Call the delete operation method over HTTP.
+
+            Args:
+                request (operations_pb2.DeleteOperationRequest):
+                    The request object for DeleteOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+            """
+
+            http_options = _BaseTasksRestTransport._BaseDeleteOperation._get_http_options()
+            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
+            transcoded_request = _BaseTasksRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseTasksRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = TasksRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            return self._interceptor.post_delete_operation(None)
+
+    @property
+    def get_operation(self):
+        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _GetOperation(_BaseTasksRestTransport._BaseGetOperation, TasksRestStub):
+        def __hash__(self):
+            return hash("TasksRestTransport.GetOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.GetOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the get operation method over HTTP.
+
+            Args:
+                request (operations_pb2.GetOperationRequest):
+                    The request object for GetOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from GetOperation method.
+            """
+
+            http_options = _BaseTasksRestTransport._BaseGetOperation._get_http_options()
+            request, metadata = self._interceptor.pre_get_operation(request, metadata)
+            transcoded_request = _BaseTasksRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseTasksRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = TasksRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_get_operation(resp)
+            return resp
+
+    @property
+    def list_operations(self):
+        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
+
+    class _ListOperations(_BaseTasksRestTransport._BaseListOperations, TasksRestStub):
+        def __hash__(self):
+            return hash("TasksRestTransport.ListOperations")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.ListOperationsRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.ListOperationsResponse:
+
+            r"""Call the list operations method over HTTP.
+
+            Args:
+                request (operations_pb2.ListOperationsRequest):
+                    The request object for ListOperations method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.ListOperationsResponse: Response from ListOperations method.
+            """
+
+            http_options = _BaseTasksRestTransport._BaseListOperations._get_http_options()
+            request, metadata = self._interceptor.pre_list_operations(request, metadata)
+            transcoded_request = _BaseTasksRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
+
+            # Jsonify the query params
+            query_params = _BaseTasksRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = TasksRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.ListOperationsResponse()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_list_operations(resp)
+            return resp
+
+    @property
+    def wait_operation(self):
+        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
+
+    class _WaitOperation(_BaseTasksRestTransport._BaseWaitOperation, TasksRestStub):
+        def __hash__(self):
+            return hash("TasksRestTransport.WaitOperation")
+
+        @staticmethod
+        def _get_response(
+            host,
+            metadata,
+            query_params,
+            session,
+            timeout,
+            transcoded_request,
+            body=None):
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(session, method)(
+                "{host}{uri}".format(host=host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=body,
+                )
+            return response
+
+        def __call__(self,
+            request: operations_pb2.WaitOperationRequest, *,
+            retry: OptionalRetry=gapic_v1.method.DEFAULT,
+            timeout: Optional[float]=None,
+            metadata: Sequence[Tuple[str, str]]=(),
+            ) -> operations_pb2.Operation:
+
+            r"""Call the wait operation method over HTTP.
+
+            Args:
+                request (operations_pb2.WaitOperationRequest):
+                    The request object for WaitOperation method.
+                retry (google.api_core.retry.Retry): Designation of what errors, if any,
+                    should be retried.
+                timeout (float): The timeout for this request.
+                metadata (Sequence[Tuple[str, str]]): Strings which should be
+                    sent along with the request as metadata.
+
+            Returns:
+                operations_pb2.Operation: Response from WaitOperation method.
+            """
+
+            http_options = _BaseTasksRestTransport._BaseWaitOperation._get_http_options()
+            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
+            transcoded_request = _BaseTasksRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
+
+            body = _BaseTasksRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
+
+            # Jsonify the query params
+            query_params = _BaseTasksRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
+
+            # Send the request
+            response = TasksRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
+
+            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
+            # subclass.
+            if response.status_code >= 400:
+                raise core_exceptions.from_http_response(response)
+
+            content = response.content.decode("utf-8")
+            resp = operations_pb2.Operation()
+            resp = json_format.Parse(content, resp)
+            resp = self._interceptor.post_wait_operation(resp)
+            return resp
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'TasksRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest_base.py
new file mode 100644
index 000000000000..89057c9a6e4b
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest_base.py
@@ -0,0 +1,272 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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  # type: ignore
+from google.api_core import path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from google.cloud.location import locations_pb2 # type: ignore
+from .base import TasksTransport, DEFAULT_CLIENT_INFO
+
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+
+
+from google.cloud.run_v2.types import task
+from google.longrunning import operations_pb2  # type: ignore
+
+
+class _BaseTasksRestTransport(TasksTransport):
+    """Base REST backend transport for Tasks.
+
+    Note: This class is not meant to be used directly. Use its sync and
+    async sub-classes instead.
+
+    This class defines the same methods as the primary client, so the
+    primary client can load the underlying transport implementation
+    and call it.
+
+    It sends JSON representations of protocol buffers over HTTP/1.1
+    """
+
+    def __init__(self, *,
+            host: str = 'run.googleapis.com',
+            credentials: Optional[Any] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            url_scheme: str = 'https',
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to (default: 'run.googleapis.com').
+            credentials (Optional[Any]): The
+                authorization credentials to attach to requests. These
+                credentials identify the application to the service; if none
+                are specified, the client will attempt to ascertain the
+                credentials from the environment.
+            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
+                The client info used to send a user-agent string along with
+                API requests. If ``None``, then default info will be used.
+                Generally, you only need to set this if you are developing
+                your own client library.
+            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
+                be used for service account credentials.
+            url_scheme: the protocol scheme for the API endpoint.  Normally
+                "https", but for testing or local servers,
+                "http" can be specified.
+        """
+        # Run the base constructor
+        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
+        if maybe_url_match is None:
+            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
+
+        url_match_items = maybe_url_match.groupdict()
+
+        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
+
+        super().__init__(
+            host=host,
+            credentials=credentials,
+            client_info=client_info,
+            always_use_jwt_access=always_use_jwt_access,
+            api_audience=api_audience
+        )
+
+    class _BaseGetTask:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/jobs/*/executions/*/tasks/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = task.GetTaskRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseTasksRestTransport._BaseGetTask._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseListTasks:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+        }
+
+        @classmethod
+        def _get_unset_required_fields(cls, message_dict):
+            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{parent=projects/*/locations/*/jobs/*/executions/*}/tasks',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            pb_request = task.ListTasksRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                use_integers_for_enums=True,
+            ))
+            query_params.update(_BaseTasksRestTransport._BaseListTasks._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+            return query_params
+
+    class _BaseDeleteOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseGetOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseListOperations:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v2/{name=projects/*/locations/*}/operations',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+    class _BaseWaitOperation:
+        def __hash__(self):  # pragma: NO COVER
+            return NotImplementedError("__hash__ must be implemented.")
+
+        @staticmethod
+        def _get_http_options():
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
+                'body': '*',
+            },
+            ]
+            return http_options
+
+        @staticmethod
+        def _get_transcoded_request(http_options, request):
+            request_kwargs = json_format.MessageToDict(request)
+            transcoded_request = path_template.transcode(
+                http_options, **request_kwargs)
+            return transcoded_request
+
+        @staticmethod
+        def _get_request_body_json(transcoded_request):
+            body = json.dumps(transcoded_request['body'])
+            return body
+        @staticmethod
+        def _get_query_params_json(transcoded_request):
+            query_params = json.loads(json.dumps(transcoded_request['query_params']))
+            return query_params
+
+
+__all__=(
+    '_BaseTasksRestTransport',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/__init__.py
new file mode 100644
index 000000000000..82c6508c6f77
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/__init__.py
@@ -0,0 +1,188 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from .build import (
+    StorageSource,
+    SubmitBuildRequest,
+    SubmitBuildResponse,
+)
+from .condition import (
+    Condition,
+)
+from .execution import (
+    CancelExecutionRequest,
+    DeleteExecutionRequest,
+    Execution,
+    GetExecutionRequest,
+    ListExecutionsRequest,
+    ListExecutionsResponse,
+)
+from .execution_template import (
+    ExecutionTemplate,
+)
+from .job import (
+    CreateJobRequest,
+    DeleteJobRequest,
+    ExecutionReference,
+    GetJobRequest,
+    Job,
+    ListJobsRequest,
+    ListJobsResponse,
+    RunJobRequest,
+    UpdateJobRequest,
+)
+from .k8s_min import (
+    CloudSqlInstance,
+    Container,
+    ContainerPort,
+    EmptyDirVolumeSource,
+    EnvVar,
+    EnvVarSource,
+    GCSVolumeSource,
+    GRPCAction,
+    HTTPGetAction,
+    HTTPHeader,
+    NFSVolumeSource,
+    Probe,
+    ResourceRequirements,
+    SecretKeySelector,
+    SecretVolumeSource,
+    TCPSocketAction,
+    VersionToPath,
+    Volume,
+    VolumeMount,
+)
+from .revision import (
+    DeleteRevisionRequest,
+    GetRevisionRequest,
+    ListRevisionsRequest,
+    ListRevisionsResponse,
+    Revision,
+)
+from .revision_template import (
+    RevisionTemplate,
+)
+from .service import (
+    CreateServiceRequest,
+    DeleteServiceRequest,
+    GetServiceRequest,
+    ListServicesRequest,
+    ListServicesResponse,
+    Service,
+    UpdateServiceRequest,
+)
+from .status import (
+    RevisionScalingStatus,
+)
+from .task import (
+    GetTaskRequest,
+    ListTasksRequest,
+    ListTasksResponse,
+    Task,
+    TaskAttemptResult,
+)
+from .task_template import (
+    TaskTemplate,
+)
+from .traffic_target import (
+    TrafficTarget,
+    TrafficTargetStatus,
+    TrafficTargetAllocationType,
+)
+from .vendor_settings import (
+    BinaryAuthorization,
+    NodeSelector,
+    RevisionScaling,
+    ServiceMesh,
+    ServiceScaling,
+    VpcAccess,
+    EncryptionKeyRevocationAction,
+    ExecutionEnvironment,
+    IngressTraffic,
+)
+
+__all__ = (
+    'StorageSource',
+    'SubmitBuildRequest',
+    'SubmitBuildResponse',
+    'Condition',
+    'CancelExecutionRequest',
+    'DeleteExecutionRequest',
+    'Execution',
+    'GetExecutionRequest',
+    'ListExecutionsRequest',
+    'ListExecutionsResponse',
+    'ExecutionTemplate',
+    'CreateJobRequest',
+    'DeleteJobRequest',
+    'ExecutionReference',
+    'GetJobRequest',
+    'Job',
+    'ListJobsRequest',
+    'ListJobsResponse',
+    'RunJobRequest',
+    'UpdateJobRequest',
+    'CloudSqlInstance',
+    'Container',
+    'ContainerPort',
+    'EmptyDirVolumeSource',
+    'EnvVar',
+    'EnvVarSource',
+    'GCSVolumeSource',
+    'GRPCAction',
+    'HTTPGetAction',
+    'HTTPHeader',
+    'NFSVolumeSource',
+    'Probe',
+    'ResourceRequirements',
+    'SecretKeySelector',
+    'SecretVolumeSource',
+    'TCPSocketAction',
+    'VersionToPath',
+    'Volume',
+    'VolumeMount',
+    'DeleteRevisionRequest',
+    'GetRevisionRequest',
+    'ListRevisionsRequest',
+    'ListRevisionsResponse',
+    'Revision',
+    'RevisionTemplate',
+    'CreateServiceRequest',
+    'DeleteServiceRequest',
+    'GetServiceRequest',
+    'ListServicesRequest',
+    'ListServicesResponse',
+    'Service',
+    'UpdateServiceRequest',
+    'RevisionScalingStatus',
+    'GetTaskRequest',
+    'ListTasksRequest',
+    'ListTasksResponse',
+    'Task',
+    'TaskAttemptResult',
+    'TaskTemplate',
+    'TrafficTarget',
+    'TrafficTargetStatus',
+    'TrafficTargetAllocationType',
+    'BinaryAuthorization',
+    'NodeSelector',
+    'RevisionScaling',
+    'ServiceMesh',
+    'ServiceScaling',
+    'VpcAccess',
+    'EncryptionKeyRevocationAction',
+    'ExecutionEnvironment',
+    'IngressTraffic',
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/build.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/build.py
new file mode 100644
index 000000000000..992da381488d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/build.py
@@ -0,0 +1,253 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.longrunning import operations_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'SubmitBuildRequest',
+        'SubmitBuildResponse',
+        'StorageSource',
+    },
+)
+
+
+class SubmitBuildRequest(proto.Message):
+    r"""Request message for submitting a Build.
+
+    This message has `oneof`_ fields (mutually exclusive fields).
+    For each oneof, at most one member field can be set at the same time.
+    Setting any member of the oneof automatically clears all other
+    members.
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        parent (str):
+            Required. The project and location to build in. Location
+            must be a region, e.g., 'us-central1' or 'global' if the
+            global builder is to be used. Format:
+            ``projects/{project}/locations/{location}``
+        storage_source (google.cloud.run_v2.types.StorageSource):
+            Required. Source for the build.
+
+            This field is a member of `oneof`_ ``source``.
+        image_uri (str):
+            Required. Artifact Registry URI to store the
+            built image.
+        buildpack_build (google.cloud.run_v2.types.SubmitBuildRequest.BuildpacksBuild):
+            Build the source using Buildpacks.
+
+            This field is a member of `oneof`_ ``build_type``.
+        docker_build (google.cloud.run_v2.types.SubmitBuildRequest.DockerBuild):
+            Build the source using Docker. This means the
+            source has a Dockerfile.
+
+            This field is a member of `oneof`_ ``build_type``.
+        service_account (str):
+            Optional. The service account to use for the
+            build. If not set, the default Cloud Build
+            service account for the project will be used.
+        worker_pool (str):
+            Optional. Name of the Cloud Build Custom Worker Pool that
+            should be used to build the function. The format of this
+            field is
+            ``projects/{project}/locations/{region}/workerPools/{workerPool}``
+            where ``{project}`` and ``{region}`` are the project id and
+            region respectively where the worker pool is defined and
+            ``{workerPool}`` is the short name of the worker pool.
+        tags (MutableSequence[str]):
+            Optional. Additional tags to annotate the
+            build.
+    """
+
+    class DockerBuild(proto.Message):
+        r"""Build the source using Docker. This means the source has a
+        Dockerfile.
+
+        """
+
+    class BuildpacksBuild(proto.Message):
+        r"""Build the source using Buildpacks.
+
+        Attributes:
+            runtime (str):
+                The runtime name, e.g. 'go113'. Leave blank
+                for generic builds.
+            function_target (str):
+                Optional. Name of the function target if the
+                source is a function source. Required for
+                function builds.
+            cache_image_uri (str):
+                Optional. cache_image_uri is the GCR/AR URL where the cache
+                image will be stored. cache_image_uri is optional and
+                omitting it will disable caching. This URL must be stable
+                across builds. It is used to derive a build-specific
+                temporary URL by substituting the tag with the build ID. The
+                build will clean up the temporary image on a best-effort
+                basis.
+            base_image (str):
+                Optional. The base image used to opt into
+                automatic base image updates.
+            environment_variables (MutableMapping[str, str]):
+                Optional. User-provided build-time
+                environment variables.
+            enable_automatic_updates (bool):
+                Optional. Whether or not the application
+                container will be enrolled in automatic base
+                image updates. When true, the application will
+                be built on a scratch base image, so the base
+                layers can be appended at run time.
+        """
+
+        runtime: str = proto.Field(
+            proto.STRING,
+            number=1,
+        )
+        function_target: str = proto.Field(
+            proto.STRING,
+            number=2,
+        )
+        cache_image_uri: str = proto.Field(
+            proto.STRING,
+            number=3,
+        )
+        base_image: str = proto.Field(
+            proto.STRING,
+            number=4,
+        )
+        environment_variables: MutableMapping[str, str] = proto.MapField(
+            proto.STRING,
+            proto.STRING,
+            number=5,
+        )
+        enable_automatic_updates: bool = proto.Field(
+            proto.BOOL,
+            number=6,
+        )
+
+    parent: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    storage_source: 'StorageSource' = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        oneof='source',
+        message='StorageSource',
+    )
+    image_uri: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    buildpack_build: BuildpacksBuild = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        oneof='build_type',
+        message=BuildpacksBuild,
+    )
+    docker_build: DockerBuild = proto.Field(
+        proto.MESSAGE,
+        number=5,
+        oneof='build_type',
+        message=DockerBuild,
+    )
+    service_account: str = proto.Field(
+        proto.STRING,
+        number=6,
+    )
+    worker_pool: str = proto.Field(
+        proto.STRING,
+        number=7,
+    )
+    tags: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=8,
+    )
+
+
+class SubmitBuildResponse(proto.Message):
+    r"""Response message for submitting a Build.
+
+    Attributes:
+        build_operation (google.longrunning.operations_pb2.Operation):
+            Cloud Build operation to be polled via
+            CloudBuild API.
+        base_image_uri (str):
+            URI of the base builder image in Artifact
+            Registry being used in the build. Used to opt
+            into automatic base image updates.
+        base_image_warning (str):
+            Warning message for the base image.
+    """
+
+    build_operation: operations_pb2.Operation = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message=operations_pb2.Operation,
+    )
+    base_image_uri: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    base_image_warning: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+
+
+class StorageSource(proto.Message):
+    r"""Location of the source in an archive file in Google Cloud
+    Storage.
+
+    Attributes:
+        bucket (str):
+            Required. Google Cloud Storage bucket containing the source
+            (see `Bucket Name
+            Requirements <https://cloud.google.com/storage/docs/bucket-naming#requirements>`__).
+        object_ (str):
+            Required. Google Cloud Storage object containing the source.
+
+            This object must be a gzipped archive file (``.tar.gz``)
+            containing source to build.
+        generation (int):
+            Optional. Google Cloud Storage generation for
+            the object. If the generation is omitted, the
+            latest generation will be used.
+    """
+
+    bucket: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    object_: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    generation: int = proto.Field(
+        proto.INT64,
+        number=3,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/condition.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/condition.py
new file mode 100644
index 000000000000..0b1df70aa130
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/condition.py
@@ -0,0 +1,306 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.protobuf import timestamp_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'Condition',
+    },
+)
+
+
+class Condition(proto.Message):
+    r"""Defines a status condition for a resource.
+
+    This message has `oneof`_ fields (mutually exclusive fields).
+    For each oneof, at most one member field can be set at the same time.
+    Setting any member of the oneof automatically clears all other
+    members.
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        type_ (str):
+            type is used to communicate the status of the reconciliation
+            process. See also:
+            https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting
+            Types common to all resources include:
+
+            -  "Ready": True when the Resource is ready.
+        state (google.cloud.run_v2.types.Condition.State):
+            State of the condition.
+        message (str):
+            Human readable message indicating details
+            about the current status.
+        last_transition_time (google.protobuf.timestamp_pb2.Timestamp):
+            Last time the condition transitioned from one
+            status to another.
+        severity (google.cloud.run_v2.types.Condition.Severity):
+            How to interpret failures of this condition,
+            one of Error, Warning, Info
+        reason (google.cloud.run_v2.types.Condition.CommonReason):
+            Output only. A common (service-level) reason
+            for this condition.
+
+            This field is a member of `oneof`_ ``reasons``.
+        revision_reason (google.cloud.run_v2.types.Condition.RevisionReason):
+            Output only. A reason for the revision
+            condition.
+
+            This field is a member of `oneof`_ ``reasons``.
+        execution_reason (google.cloud.run_v2.types.Condition.ExecutionReason):
+            Output only. A reason for the execution
+            condition.
+
+            This field is a member of `oneof`_ ``reasons``.
+    """
+    class State(proto.Enum):
+        r"""Represents the possible Condition states.
+
+        Values:
+            STATE_UNSPECIFIED (0):
+                The default value. This value is used if the
+                state is omitted.
+            CONDITION_PENDING (1):
+                Transient state: Reconciliation has not
+                started yet.
+            CONDITION_RECONCILING (2):
+                Transient state: reconciliation is still in
+                progress.
+            CONDITION_FAILED (3):
+                Terminal state: Reconciliation did not
+                succeed.
+            CONDITION_SUCCEEDED (4):
+                Terminal state: Reconciliation completed
+                successfully.
+        """
+        STATE_UNSPECIFIED = 0
+        CONDITION_PENDING = 1
+        CONDITION_RECONCILING = 2
+        CONDITION_FAILED = 3
+        CONDITION_SUCCEEDED = 4
+
+    class Severity(proto.Enum):
+        r"""Represents the severity of the condition failures.
+
+        Values:
+            SEVERITY_UNSPECIFIED (0):
+                Unspecified severity
+            ERROR (1):
+                Error severity.
+            WARNING (2):
+                Warning severity.
+            INFO (3):
+                Info severity.
+        """
+        SEVERITY_UNSPECIFIED = 0
+        ERROR = 1
+        WARNING = 2
+        INFO = 3
+
+    class CommonReason(proto.Enum):
+        r"""Reasons common to all types of conditions.
+
+        Values:
+            COMMON_REASON_UNDEFINED (0):
+                Default value.
+            UNKNOWN (1):
+                Reason unknown. Further details will be in
+                message.
+            REVISION_FAILED (3):
+                Revision creation process failed.
+            PROGRESS_DEADLINE_EXCEEDED (4):
+                Timed out waiting for completion.
+            CONTAINER_MISSING (6):
+                The container image path is incorrect.
+            CONTAINER_PERMISSION_DENIED (7):
+                Insufficient permissions on the container
+                image.
+            CONTAINER_IMAGE_UNAUTHORIZED (8):
+                Container image is not authorized by policy.
+            CONTAINER_IMAGE_AUTHORIZATION_CHECK_FAILED (9):
+                Container image policy authorization check
+                failed.
+            ENCRYPTION_KEY_PERMISSION_DENIED (10):
+                Insufficient permissions on encryption key.
+            ENCRYPTION_KEY_CHECK_FAILED (11):
+                Permission check on encryption key failed.
+            SECRETS_ACCESS_CHECK_FAILED (12):
+                At least one Access check on secrets failed.
+            WAITING_FOR_OPERATION (13):
+                Waiting for operation to complete.
+            IMMEDIATE_RETRY (14):
+                System will retry immediately.
+            POSTPONED_RETRY (15):
+                System will retry later; current attempt
+                failed.
+            INTERNAL (16):
+                An internal error occurred. Further
+                information may be in the message.
+        """
+        COMMON_REASON_UNDEFINED = 0
+        UNKNOWN = 1
+        REVISION_FAILED = 3
+        PROGRESS_DEADLINE_EXCEEDED = 4
+        CONTAINER_MISSING = 6
+        CONTAINER_PERMISSION_DENIED = 7
+        CONTAINER_IMAGE_UNAUTHORIZED = 8
+        CONTAINER_IMAGE_AUTHORIZATION_CHECK_FAILED = 9
+        ENCRYPTION_KEY_PERMISSION_DENIED = 10
+        ENCRYPTION_KEY_CHECK_FAILED = 11
+        SECRETS_ACCESS_CHECK_FAILED = 12
+        WAITING_FOR_OPERATION = 13
+        IMMEDIATE_RETRY = 14
+        POSTPONED_RETRY = 15
+        INTERNAL = 16
+
+    class RevisionReason(proto.Enum):
+        r"""Reasons specific to Revision resource.
+
+        Values:
+            REVISION_REASON_UNDEFINED (0):
+                Default value.
+            PENDING (1):
+                Revision in Pending state.
+            RESERVE (2):
+                Revision is in Reserve state.
+            RETIRED (3):
+                Revision is Retired.
+            RETIRING (4):
+                Revision is being retired.
+            RECREATING (5):
+                Revision is being recreated.
+            HEALTH_CHECK_CONTAINER_ERROR (6):
+                There was a health check error.
+            CUSTOMIZED_PATH_RESPONSE_PENDING (7):
+                Health check failed due to user error from
+                customized path of the container. System will
+                retry.
+            MIN_INSTANCES_NOT_PROVISIONED (8):
+                A revision with min_instance_count > 0 was created and is
+                reserved, but it was not configured to serve traffic, so
+                it's not live. This can also happen momentarily during
+                traffic migration.
+            ACTIVE_REVISION_LIMIT_REACHED (9):
+                The maximum allowed number of active
+                revisions has been reached.
+            NO_DEPLOYMENT (10):
+                There was no deployment defined.
+                This value is no longer used, but Services
+                created in older versions of the API might
+                contain this value.
+            HEALTH_CHECK_SKIPPED (11):
+                A revision's container has no port specified
+                since the revision is of a manually scaled
+                service with 0 instance count
+            MIN_INSTANCES_WARMING (12):
+                A revision with min_instance_count > 0 was created and is
+                waiting for enough instances to begin a traffic migration.
+        """
+        REVISION_REASON_UNDEFINED = 0
+        PENDING = 1
+        RESERVE = 2
+        RETIRED = 3
+        RETIRING = 4
+        RECREATING = 5
+        HEALTH_CHECK_CONTAINER_ERROR = 6
+        CUSTOMIZED_PATH_RESPONSE_PENDING = 7
+        MIN_INSTANCES_NOT_PROVISIONED = 8
+        ACTIVE_REVISION_LIMIT_REACHED = 9
+        NO_DEPLOYMENT = 10
+        HEALTH_CHECK_SKIPPED = 11
+        MIN_INSTANCES_WARMING = 12
+
+    class ExecutionReason(proto.Enum):
+        r"""Reasons specific to Execution resource.
+
+        Values:
+            EXECUTION_REASON_UNDEFINED (0):
+                Default value.
+            JOB_STATUS_SERVICE_POLLING_ERROR (1):
+                Internal system error getting execution
+                status. System will retry.
+            NON_ZERO_EXIT_CODE (2):
+                A task reached its retry limit and the last
+                attempt failed due to the user container exiting
+                with a non-zero exit code.
+            CANCELLED (3):
+                The execution was cancelled by users.
+            CANCELLING (4):
+                The execution is in the process of being
+                cancelled.
+            DELETED (5):
+                The execution was deleted.
+        """
+        EXECUTION_REASON_UNDEFINED = 0
+        JOB_STATUS_SERVICE_POLLING_ERROR = 1
+        NON_ZERO_EXIT_CODE = 2
+        CANCELLED = 3
+        CANCELLING = 4
+        DELETED = 5
+
+    type_: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    state: State = proto.Field(
+        proto.ENUM,
+        number=2,
+        enum=State,
+    )
+    message: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    last_transition_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        message=timestamp_pb2.Timestamp,
+    )
+    severity: Severity = proto.Field(
+        proto.ENUM,
+        number=5,
+        enum=Severity,
+    )
+    reason: CommonReason = proto.Field(
+        proto.ENUM,
+        number=6,
+        oneof='reasons',
+        enum=CommonReason,
+    )
+    revision_reason: RevisionReason = proto.Field(
+        proto.ENUM,
+        number=9,
+        oneof='reasons',
+        enum=RevisionReason,
+    )
+    execution_reason: ExecutionReason = proto.Field(
+        proto.ENUM,
+        number=11,
+        oneof='reasons',
+        enum=ExecutionReason,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution.py
new file mode 100644
index 000000000000..60349f73e868
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution.py
@@ -0,0 +1,437 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import task_template
+from google.protobuf import timestamp_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'GetExecutionRequest',
+        'ListExecutionsRequest',
+        'ListExecutionsResponse',
+        'DeleteExecutionRequest',
+        'CancelExecutionRequest',
+        'Execution',
+    },
+)
+
+
+class GetExecutionRequest(proto.Message):
+    r"""Request message for obtaining a Execution by its full name.
+
+    Attributes:
+        name (str):
+            Required. The full name of the Execution. Format:
+            ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+            where ``{project}`` can be project id or number.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class ListExecutionsRequest(proto.Message):
+    r"""Request message for retrieving a list of Executions.
+
+    Attributes:
+        parent (str):
+            Required. The Execution from which the Executions should be
+            listed. To list all Executions across Jobs, use "-" instead
+            of Job name. Format:
+            ``projects/{project}/locations/{location}/jobs/{job}``,
+            where ``{project}`` can be project id or number.
+        page_size (int):
+            Maximum number of Executions to return in
+            this call.
+        page_token (str):
+            A page token received from a previous call to
+            ListExecutions. All other parameters must match.
+        show_deleted (bool):
+            If true, returns deleted (but unexpired)
+            resources along with active ones.
+    """
+
+    parent: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    page_size: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+    page_token: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    show_deleted: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class ListExecutionsResponse(proto.Message):
+    r"""Response message containing a list of Executions.
+
+    Attributes:
+        executions (MutableSequence[google.cloud.run_v2.types.Execution]):
+            The resulting list of Executions.
+        next_page_token (str):
+            A token indicating there are more items than page_size. Use
+            it in the next ListExecutions request to continue.
+    """
+
+    @property
+    def raw_page(self):
+        return self
+
+    executions: MutableSequence['Execution'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=1,
+        message='Execution',
+    )
+    next_page_token: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class DeleteExecutionRequest(proto.Message):
+    r"""Request message for deleting an Execution.
+
+    Attributes:
+        name (str):
+            Required. The name of the Execution to delete. Format:
+            ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+            where ``{project}`` can be project id or number.
+        validate_only (bool):
+            Indicates that the request should be
+            validated without actually deleting any
+            resources.
+        etag (str):
+            A system-generated fingerprint for this
+            version of the resource. This may be used to
+            detect modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=2,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+
+
+class CancelExecutionRequest(proto.Message):
+    r"""Request message for deleting an Execution.
+
+    Attributes:
+        name (str):
+            Required. The name of the Execution to cancel. Format:
+            ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
+            where ``{project}`` can be project id or number.
+        validate_only (bool):
+            Indicates that the request should be
+            validated without actually cancelling any
+            resources.
+        etag (str):
+            A system-generated fingerprint for this
+            version of the resource. This may be used to
+            detect modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=2,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+
+
+class Execution(proto.Message):
+    r"""Execution represents the configuration of a single execution.
+    A execution an immutable resource that references a container
+    image which is run to completion.
+
+    Attributes:
+        name (str):
+            Output only. The unique name of this
+            Execution.
+        uid (str):
+            Output only. Server assigned unique
+            identifier for the Execution. The value is a
+            UUID4 string and guaranteed to remain unchanged
+            until the resource is deleted.
+        generation (int):
+            Output only. A number that monotonically
+            increases every time the user modifies the
+            desired state.
+        labels (MutableMapping[str, str]):
+            Output only. Unstructured key value map that
+            can be used to organize and categorize objects.
+            User-provided labels are shared with Google's
+            billing system, so they can be used to filter,
+            or break down billing charges by team,
+            component, environment, state, etc. For more
+            information, visit
+            https://cloud.google.com/resource-manager/docs/creating-managing-labels
+            or
+            https://cloud.google.com/run/docs/configuring/labels
+        annotations (MutableMapping[str, str]):
+            Output only. Unstructured key value map that
+            may be set by external tools to store and
+            arbitrary metadata. They are not queryable and
+            should be preserved when modifying objects.
+        create_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. Represents time when the
+            execution was acknowledged by the execution
+            controller. It is not guaranteed to be set in
+            happens-before order across separate operations.
+        start_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. Represents time when the
+            execution started to run. It is not guaranteed
+            to be set in happens-before order across
+            separate operations.
+        completion_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. Represents time when the
+            execution was completed. It is not guaranteed to
+            be set in happens-before order across separate
+            operations.
+        update_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The last-modified time.
+        delete_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. For a deleted resource, the
+            deletion time. It is only populated as a
+            response to a Delete request.
+        expire_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. For a deleted resource, the time
+            after which it will be permamently deleted. It
+            is only populated as a response to a Delete
+            request.
+        launch_stage (google.api.launch_stage_pb2.LaunchStage):
+            The least stable launch stage needed to create this
+            resource, as defined by `Google Cloud Platform Launch
+            Stages <https://cloud.google.com/terms/launch-stages>`__.
+            Cloud Run supports ``ALPHA``, ``BETA``, and ``GA``.
+
+            .. raw:: html
+
+                <p>Note that this value might not be what was used
+                as input. For example, if ALPHA was provided as input in the parent
+                resource, but only BETA and GA-level features are were, this field will be
+                BETA.
+        job (str):
+            Output only. The name of the parent Job.
+        parallelism (int):
+            Output only. Specifies the maximum desired number of tasks
+            the execution should run at any given time. Must be <=
+            task_count. The actual number of tasks running in steady
+            state will be less than this number when ((.spec.task_count
+            - .status.successful) < .spec.parallelism), i.e. when the
+            work left to do is less than max parallelism.
+        task_count (int):
+            Output only. Specifies the desired number of
+            tasks the execution should run. Setting to 1
+            means that parallelism is limited to 1 and the
+            success of that task signals the success of the
+            execution.
+        template (google.cloud.run_v2.types.TaskTemplate):
+            Output only. The template used to create
+            tasks for this execution.
+        reconciling (bool):
+            Output only. Indicates whether the resource's reconciliation
+            is still in progress. See comments in ``Job.reconciling``
+            for additional information on reconciliation process in
+            Cloud Run.
+        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
+            Output only. The Condition of this Execution,
+            containing its readiness status, and detailed
+            error information in case it did not reach the
+            desired state.
+        observed_generation (int):
+            Output only. The generation of this Execution. See comments
+            in ``reconciling`` for additional information on
+            reconciliation process in Cloud Run.
+        running_count (int):
+            Output only. The number of actively running
+            tasks.
+        succeeded_count (int):
+            Output only. The number of tasks which
+            reached phase Succeeded.
+        failed_count (int):
+            Output only. The number of tasks which
+            reached phase Failed.
+        cancelled_count (int):
+            Output only. The number of tasks which
+            reached phase Cancelled.
+        retried_count (int):
+            Output only. The number of tasks which have
+            retried at least once.
+        log_uri (str):
+            Output only. URI where logs for this
+            execution can be found in Cloud Console.
+        satisfies_pzs (bool):
+            Output only. Reserved for future use.
+        etag (str):
+            Output only. A system-generated fingerprint
+            for this version of the resource. May be used to
+            detect modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    uid: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    generation: int = proto.Field(
+        proto.INT64,
+        number=3,
+    )
+    labels: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=4,
+    )
+    annotations: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=5,
+    )
+    create_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        message=timestamp_pb2.Timestamp,
+    )
+    start_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=22,
+        message=timestamp_pb2.Timestamp,
+    )
+    completion_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=7,
+        message=timestamp_pb2.Timestamp,
+    )
+    update_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=8,
+        message=timestamp_pb2.Timestamp,
+    )
+    delete_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=9,
+        message=timestamp_pb2.Timestamp,
+    )
+    expire_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=10,
+        message=timestamp_pb2.Timestamp,
+    )
+    launch_stage: launch_stage_pb2.LaunchStage = proto.Field(
+        proto.ENUM,
+        number=11,
+        enum=launch_stage_pb2.LaunchStage,
+    )
+    job: str = proto.Field(
+        proto.STRING,
+        number=12,
+    )
+    parallelism: int = proto.Field(
+        proto.INT32,
+        number=13,
+    )
+    task_count: int = proto.Field(
+        proto.INT32,
+        number=14,
+    )
+    template: task_template.TaskTemplate = proto.Field(
+        proto.MESSAGE,
+        number=15,
+        message=task_template.TaskTemplate,
+    )
+    reconciling: bool = proto.Field(
+        proto.BOOL,
+        number=16,
+    )
+    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=17,
+        message=condition.Condition,
+    )
+    observed_generation: int = proto.Field(
+        proto.INT64,
+        number=18,
+    )
+    running_count: int = proto.Field(
+        proto.INT32,
+        number=19,
+    )
+    succeeded_count: int = proto.Field(
+        proto.INT32,
+        number=20,
+    )
+    failed_count: int = proto.Field(
+        proto.INT32,
+        number=21,
+    )
+    cancelled_count: int = proto.Field(
+        proto.INT32,
+        number=24,
+    )
+    retried_count: int = proto.Field(
+        proto.INT32,
+        number=25,
+    )
+    log_uri: str = proto.Field(
+        proto.STRING,
+        number=26,
+    )
+    satisfies_pzs: bool = proto.Field(
+        proto.BOOL,
+        number=27,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=99,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution_template.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution_template.py
new file mode 100644
index 000000000000..06f44245b12d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution_template.py
@@ -0,0 +1,114 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.cloud.run_v2.types import task_template
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'ExecutionTemplate',
+    },
+)
+
+
+class ExecutionTemplate(proto.Message):
+    r"""ExecutionTemplate describes the data an execution should have
+    when created from a template.
+
+    Attributes:
+        labels (MutableMapping[str, str]):
+            Unstructured key value map that can be used to organize and
+            categorize objects. User-provided labels are shared with
+            Google's billing system, so they can be used to filter, or
+            break down billing charges by team, component, environment,
+            state, etc. For more information, visit
+            https://cloud.google.com/resource-manager/docs/creating-managing-labels
+            or https://cloud.google.com/run/docs/configuring/labels.
+
+            .. raw:: html
+
+                <p>Cloud Run API v2 does not support labels with `run.googleapis.com`,
+                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
+                namespaces, and they will be rejected. All system labels in v1 now have a
+                corresponding field in v2 ExecutionTemplate.
+        annotations (MutableMapping[str, str]):
+            Unstructured key value map that may be set by external tools
+            to store and arbitrary metadata. They are not queryable and
+            should be preserved when modifying objects.
+
+            .. raw:: html
+
+                <p>Cloud Run API v2 does not support annotations with `run.googleapis.com`,
+                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
+                namespaces, and they will be rejected. All system annotations in v1 now
+                have a corresponding field in v2 ExecutionTemplate.
+
+            .. raw:: html
+
+                <p>This field follows Kubernetes annotations' namespacing, limits, and
+                rules.
+        parallelism (int):
+            Specifies the maximum desired number of tasks the execution
+            should run at given time. Must be <= task_count. When the
+            job is run, if this field is 0 or unset, the maximum
+            possible value will be used for that execution. The actual
+            number of tasks running in steady state will be less than
+            this number when there are fewer tasks waiting to be
+            completed remaining, i.e. when the work left to do is less
+            than max parallelism.
+        task_count (int):
+            Specifies the desired number of tasks the
+            execution should run. Setting to 1 means that
+            parallelism is limited to 1 and the success of
+            that task signals the success of the execution.
+            Defaults to 1.
+        template (google.cloud.run_v2.types.TaskTemplate):
+            Required. Describes the task(s) that will be
+            created when executing an execution.
+    """
+
+    labels: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=1,
+    )
+    annotations: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=2,
+    )
+    parallelism: int = proto.Field(
+        proto.INT32,
+        number=3,
+    )
+    task_count: int = proto.Field(
+        proto.INT32,
+        number=4,
+    )
+    template: task_template.TaskTemplate = proto.Field(
+        proto.MESSAGE,
+        number=5,
+        message=task_template.TaskTemplate,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/job.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/job.py
new file mode 100644
index 000000000000..cce3b87b7c0e
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/job.py
@@ -0,0 +1,704 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import execution_template
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import vendor_settings
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'CreateJobRequest',
+        'GetJobRequest',
+        'UpdateJobRequest',
+        'ListJobsRequest',
+        'ListJobsResponse',
+        'DeleteJobRequest',
+        'RunJobRequest',
+        'Job',
+        'ExecutionReference',
+    },
+)
+
+
+class CreateJobRequest(proto.Message):
+    r"""Request message for creating a Job.
+
+    Attributes:
+        parent (str):
+            Required. The location and project in which
+            this Job should be created. Format:
+            projects/{project}/locations/{location}, where
+            {project} can be project id or number.
+        job (google.cloud.run_v2.types.Job):
+            Required. The Job instance to create.
+        job_id (str):
+            Required. The unique identifier for the Job. The name of the
+            job becomes {parent}/jobs/{job_id}.
+        validate_only (bool):
+            Indicates that the request should be
+            validated and default values populated, without
+            persisting the request or creating any
+            resources.
+    """
+
+    parent: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    job: 'Job' = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        message='Job',
+    )
+    job_id: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class GetJobRequest(proto.Message):
+    r"""Request message for obtaining a Job by its full name.
+
+    Attributes:
+        name (str):
+            Required. The full name of the Job.
+            Format:
+            projects/{project}/locations/{location}/jobs/{job},
+            where {project} can be project id or number.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class UpdateJobRequest(proto.Message):
+    r"""Request message for updating a Job.
+
+    Attributes:
+        job (google.cloud.run_v2.types.Job):
+            Required. The Job to be updated.
+        validate_only (bool):
+            Indicates that the request should be
+            validated and default values populated, without
+            persisting the request or updating any
+            resources.
+        allow_missing (bool):
+            Optional. If set to true, and if the Job does
+            not exist, it will create a new one. Caller must
+            have both create and update permissions for this
+            call if this is set to true.
+    """
+
+    job: 'Job' = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message='Job',
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=3,
+    )
+    allow_missing: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class ListJobsRequest(proto.Message):
+    r"""Request message for retrieving a list of Jobs.
+
+    Attributes:
+        parent (str):
+            Required. The location and project to list
+            resources on. Format:
+            projects/{project}/locations/{location}, where
+            {project} can be project id or number.
+        page_size (int):
+            Maximum number of Jobs to return in this
+            call.
+        page_token (str):
+            A page token received from a previous call to
+            ListJobs. All other parameters must match.
+        show_deleted (bool):
+            If true, returns deleted (but unexpired)
+            resources along with active ones.
+    """
+
+    parent: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    page_size: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+    page_token: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    show_deleted: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class ListJobsResponse(proto.Message):
+    r"""Response message containing a list of Jobs.
+
+    Attributes:
+        jobs (MutableSequence[google.cloud.run_v2.types.Job]):
+            The resulting list of Jobs.
+        next_page_token (str):
+            A token indicating there are more items than page_size. Use
+            it in the next ListJobs request to continue.
+    """
+
+    @property
+    def raw_page(self):
+        return self
+
+    jobs: MutableSequence['Job'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=1,
+        message='Job',
+    )
+    next_page_token: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class DeleteJobRequest(proto.Message):
+    r"""Request message to delete a Job by its full name.
+
+    Attributes:
+        name (str):
+            Required. The full name of the Job.
+            Format:
+            projects/{project}/locations/{location}/jobs/{job},
+            where {project} can be project id or number.
+        validate_only (bool):
+            Indicates that the request should be
+            validated without actually deleting any
+            resources.
+        etag (str):
+            A system-generated fingerprint for this
+            version of the resource. May be used to detect
+            modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=3,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=4,
+    )
+
+
+class RunJobRequest(proto.Message):
+    r"""Request message to create a new Execution of a Job.
+
+    Attributes:
+        name (str):
+            Required. The full name of the Job.
+            Format:
+            projects/{project}/locations/{location}/jobs/{job},
+            where {project} can be project id or number.
+        validate_only (bool):
+            Indicates that the request should be
+            validated without actually deleting any
+            resources.
+        etag (str):
+            A system-generated fingerprint for this
+            version of the resource. May be used to detect
+            modification conflict during updates.
+        overrides (google.cloud.run_v2.types.RunJobRequest.Overrides):
+            Overrides specification for a given execution
+            of a job. If provided, overrides will be applied
+            to update the execution or task spec.
+    """
+
+    class Overrides(proto.Message):
+        r"""RunJob Overrides that contains Execution fields to be
+        overridden.
+
+        Attributes:
+            container_overrides (MutableSequence[google.cloud.run_v2.types.RunJobRequest.Overrides.ContainerOverride]):
+                Per container override specification.
+            task_count (int):
+                Optional. The desired number of tasks the execution should
+                run. Will replace existing task_count value.
+            timeout (google.protobuf.duration_pb2.Duration):
+                Duration in seconds the task may be active before the system
+                will actively try to mark it failed and kill associated
+                containers. Will replace existing timeout_seconds value.
+        """
+
+        class ContainerOverride(proto.Message):
+            r"""Per-container override specification.
+
+            Attributes:
+                name (str):
+                    The name of the container specified as a DNS_LABEL.
+                args (MutableSequence[str]):
+                    Optional. Arguments to the entrypoint. Will
+                    replace existing args for override.
+                env (MutableSequence[google.cloud.run_v2.types.EnvVar]):
+                    List of environment variables to set in the
+                    container. Will be merged with existing env for
+                    override.
+                clear_args (bool):
+                    Optional. True if the intention is to clear
+                    out existing args list.
+            """
+
+            name: str = proto.Field(
+                proto.STRING,
+                number=1,
+            )
+            args: MutableSequence[str] = proto.RepeatedField(
+                proto.STRING,
+                number=2,
+            )
+            env: MutableSequence[k8s_min.EnvVar] = proto.RepeatedField(
+                proto.MESSAGE,
+                number=3,
+                message=k8s_min.EnvVar,
+            )
+            clear_args: bool = proto.Field(
+                proto.BOOL,
+                number=4,
+            )
+
+        container_overrides: MutableSequence['RunJobRequest.Overrides.ContainerOverride'] = proto.RepeatedField(
+            proto.MESSAGE,
+            number=1,
+            message='RunJobRequest.Overrides.ContainerOverride',
+        )
+        task_count: int = proto.Field(
+            proto.INT32,
+            number=2,
+        )
+        timeout: duration_pb2.Duration = proto.Field(
+            proto.MESSAGE,
+            number=4,
+            message=duration_pb2.Duration,
+        )
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=2,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    overrides: Overrides = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        message=Overrides,
+    )
+
+
+class Job(proto.Message):
+    r"""Job represents the configuration of a single job, which
+    references a container image that is run to completion.
+
+    This message has `oneof`_ fields (mutually exclusive fields).
+    For each oneof, at most one member field can be set at the same time.
+    Setting any member of the oneof automatically clears all other
+    members.
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        name (str):
+            The fully qualified name of this Job.
+
+            Format:
+
+            projects/{project}/locations/{location}/jobs/{job}
+        uid (str):
+            Output only. Server assigned unique
+            identifier for the Execution. The value is a
+            UUID4 string and guaranteed to remain unchanged
+            until the resource is deleted.
+        generation (int):
+            Output only. A number that monotonically
+            increases every time the user modifies the
+            desired state.
+        labels (MutableMapping[str, str]):
+            Unstructured key value map that can be used to organize and
+            categorize objects. User-provided labels are shared with
+            Google's billing system, so they can be used to filter, or
+            break down billing charges by team, component, environment,
+            state, etc. For more information, visit
+            https://cloud.google.com/resource-manager/docs/creating-managing-labels
+            or https://cloud.google.com/run/docs/configuring/labels.
+
+            .. raw:: html
+
+                <p>Cloud Run API v2 does not support labels with `run.googleapis.com`,
+                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
+                namespaces, and they will be rejected. All system labels in v1 now have a
+                corresponding field in v2 Job.
+        annotations (MutableMapping[str, str]):
+            Unstructured key value map that may be set by external tools
+            to store and arbitrary metadata. They are not queryable and
+            should be preserved when modifying objects.
+
+            .. raw:: html
+
+                <p>Cloud Run API v2 does not support annotations with `run.googleapis.com`,
+                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
+                namespaces, and they will be rejected on new resources. All system
+                annotations in v1 now have a corresponding field in v2 Job.
+
+            .. raw:: html
+
+                <p>This field follows Kubernetes annotations' namespacing, limits, and
+                rules.
+        create_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The creation time.
+        update_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The last-modified time.
+        delete_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The deletion time. It is only
+            populated as a response to a Delete request.
+        expire_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. For a deleted resource, the time
+            after which it will be permamently deleted.
+        creator (str):
+            Output only. Email address of the
+            authenticated creator.
+        last_modifier (str):
+            Output only. Email address of the last
+            authenticated modifier.
+        client (str):
+            Arbitrary identifier for the API client.
+        client_version (str):
+            Arbitrary version identifier for the API
+            client.
+        launch_stage (google.api.launch_stage_pb2.LaunchStage):
+            The launch stage as defined by `Google Cloud Platform Launch
+            Stages <https://cloud.google.com/terms/launch-stages>`__.
+            Cloud Run supports ``ALPHA``, ``BETA``, and ``GA``. If no
+            value is specified, GA is assumed. Set the launch stage to a
+            preview stage on input to allow use of preview features in
+            that stage. On read (or output), describes whether the
+            resource uses preview features.
+
+            .. raw:: html
+
+                <p>
+                For example, if ALPHA is provided as input, but only BETA and GA-level
+                features are used, this field will be BETA on output.
+        binary_authorization (google.cloud.run_v2.types.BinaryAuthorization):
+            Settings for the Binary Authorization
+            feature.
+        template (google.cloud.run_v2.types.ExecutionTemplate):
+            Required. The template used to create
+            executions for this Job.
+        observed_generation (int):
+            Output only. The generation of this Job. See comments in
+            ``reconciling`` for additional information on reconciliation
+            process in Cloud Run.
+        terminal_condition (google.cloud.run_v2.types.Condition):
+            Output only. The Condition of this Job,
+            containing its readiness status, and detailed
+            error information in case it did not reach the
+            desired state.
+        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
+            Output only. The Conditions of all other associated
+            sub-resources. They contain additional diagnostics
+            information in case the Job does not reach its desired
+            state. See comments in ``reconciling`` for additional
+            information on reconciliation process in Cloud Run.
+        execution_count (int):
+            Output only. Number of executions created for
+            this job.
+        latest_created_execution (google.cloud.run_v2.types.ExecutionReference):
+            Output only. Name of the last created
+            execution.
+        reconciling (bool):
+            Output only. Returns true if the Job is currently being
+            acted upon by the system to bring it into the desired state.
+
+            When a new Job is created, or an existing one is updated,
+            Cloud Run will asynchronously perform all necessary steps to
+            bring the Job to the desired state. This process is called
+            reconciliation. While reconciliation is in process,
+            ``observed_generation`` and ``latest_succeeded_execution``,
+            will have transient values that might mismatch the intended
+            state: Once reconciliation is over (and this field is
+            false), there are two possible outcomes: reconciliation
+            succeeded and the state matches the Job, or there was an
+            error, and reconciliation failed. This state can be found in
+            ``terminal_condition.state``.
+
+            If reconciliation succeeded, the following fields will
+            match: ``observed_generation`` and ``generation``,
+            ``latest_succeeded_execution`` and
+            ``latest_created_execution``.
+
+            If reconciliation failed, ``observed_generation`` and
+            ``latest_succeeded_execution`` will have the state of the
+            last succeeded execution or empty for newly created Job.
+            Additional information on the failure can be found in
+            ``terminal_condition`` and ``conditions``.
+        satisfies_pzs (bool):
+            Output only. Reserved for future use.
+        start_execution_token (str):
+            A unique string used as a suffix creating a
+            new execution. The Job will become ready when
+            the execution is successfully started. The sum
+            of job name and token length must be fewer than
+            63 characters.
+
+            This field is a member of `oneof`_ ``create_execution``.
+        run_execution_token (str):
+            A unique string used as a suffix for creating
+            a new execution. The Job will become ready when
+            the execution is successfully completed. The sum
+            of job name and token length must be fewer than
+            63 characters.
+
+            This field is a member of `oneof`_ ``create_execution``.
+        etag (str):
+            Output only. A system-generated fingerprint
+            for this version of the resource. May be used to
+            detect modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    uid: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    generation: int = proto.Field(
+        proto.INT64,
+        number=3,
+    )
+    labels: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=4,
+    )
+    annotations: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=5,
+    )
+    create_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        message=timestamp_pb2.Timestamp,
+    )
+    update_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=7,
+        message=timestamp_pb2.Timestamp,
+    )
+    delete_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=8,
+        message=timestamp_pb2.Timestamp,
+    )
+    expire_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=9,
+        message=timestamp_pb2.Timestamp,
+    )
+    creator: str = proto.Field(
+        proto.STRING,
+        number=10,
+    )
+    last_modifier: str = proto.Field(
+        proto.STRING,
+        number=11,
+    )
+    client: str = proto.Field(
+        proto.STRING,
+        number=12,
+    )
+    client_version: str = proto.Field(
+        proto.STRING,
+        number=13,
+    )
+    launch_stage: launch_stage_pb2.LaunchStage = proto.Field(
+        proto.ENUM,
+        number=14,
+        enum=launch_stage_pb2.LaunchStage,
+    )
+    binary_authorization: vendor_settings.BinaryAuthorization = proto.Field(
+        proto.MESSAGE,
+        number=15,
+        message=vendor_settings.BinaryAuthorization,
+    )
+    template: execution_template.ExecutionTemplate = proto.Field(
+        proto.MESSAGE,
+        number=16,
+        message=execution_template.ExecutionTemplate,
+    )
+    observed_generation: int = proto.Field(
+        proto.INT64,
+        number=17,
+    )
+    terminal_condition: condition.Condition = proto.Field(
+        proto.MESSAGE,
+        number=18,
+        message=condition.Condition,
+    )
+    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=19,
+        message=condition.Condition,
+    )
+    execution_count: int = proto.Field(
+        proto.INT32,
+        number=20,
+    )
+    latest_created_execution: 'ExecutionReference' = proto.Field(
+        proto.MESSAGE,
+        number=22,
+        message='ExecutionReference',
+    )
+    reconciling: bool = proto.Field(
+        proto.BOOL,
+        number=23,
+    )
+    satisfies_pzs: bool = proto.Field(
+        proto.BOOL,
+        number=25,
+    )
+    start_execution_token: str = proto.Field(
+        proto.STRING,
+        number=26,
+        oneof='create_execution',
+    )
+    run_execution_token: str = proto.Field(
+        proto.STRING,
+        number=27,
+        oneof='create_execution',
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=99,
+    )
+
+
+class ExecutionReference(proto.Message):
+    r"""Reference to an Execution. Use /Executions.GetExecution with
+    the given name to get full execution including the latest
+    status.
+
+    Attributes:
+        name (str):
+            Name of the execution.
+        create_time (google.protobuf.timestamp_pb2.Timestamp):
+            Creation timestamp of the execution.
+        completion_time (google.protobuf.timestamp_pb2.Timestamp):
+            Creation timestamp of the execution.
+        delete_time (google.protobuf.timestamp_pb2.Timestamp):
+            The deletion time of the execution. It is
+            only populated as a response to a Delete
+            request.
+        completion_status (google.cloud.run_v2.types.ExecutionReference.CompletionStatus):
+            Status for the execution completion.
+    """
+    class CompletionStatus(proto.Enum):
+        r"""Possible execution completion status.
+
+        Values:
+            COMPLETION_STATUS_UNSPECIFIED (0):
+                The default value. This value is used if the
+                state is omitted.
+            EXECUTION_SUCCEEDED (1):
+                Job execution has succeeded.
+            EXECUTION_FAILED (2):
+                Job execution has failed.
+            EXECUTION_RUNNING (3):
+                Job execution is running normally.
+            EXECUTION_PENDING (4):
+                Waiting for backing resources to be
+                provisioned.
+            EXECUTION_CANCELLED (5):
+                Job execution has been cancelled by the user.
+        """
+        COMPLETION_STATUS_UNSPECIFIED = 0
+        EXECUTION_SUCCEEDED = 1
+        EXECUTION_FAILED = 2
+        EXECUTION_RUNNING = 3
+        EXECUTION_PENDING = 4
+        EXECUTION_CANCELLED = 5
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    create_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        message=timestamp_pb2.Timestamp,
+    )
+    completion_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=3,
+        message=timestamp_pb2.Timestamp,
+    )
+    delete_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=5,
+        message=timestamp_pb2.Timestamp,
+    )
+    completion_status: CompletionStatus = proto.Field(
+        proto.ENUM,
+        number=4,
+        enum=CompletionStatus,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/k8s_min.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/k8s_min.py
new file mode 100644
index 000000000000..7cc12e71c3ed
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/k8s_min.py
@@ -0,0 +1,854 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'Container',
+        'ResourceRequirements',
+        'EnvVar',
+        'EnvVarSource',
+        'SecretKeySelector',
+        'ContainerPort',
+        'VolumeMount',
+        'Volume',
+        'SecretVolumeSource',
+        'VersionToPath',
+        'CloudSqlInstance',
+        'EmptyDirVolumeSource',
+        'NFSVolumeSource',
+        'GCSVolumeSource',
+        'Probe',
+        'HTTPGetAction',
+        'HTTPHeader',
+        'TCPSocketAction',
+        'GRPCAction',
+    },
+)
+
+
+class Container(proto.Message):
+    r"""A single application container.
+    This specifies both the container to run, the command to run in
+    the container and the arguments to supply to it.
+    Note that additional arguments can be supplied by the system to
+    the container at runtime.
+
+    Attributes:
+        name (str):
+            Name of the container specified as a DNS_LABEL (RFC 1123).
+        image (str):
+            Required. Name of the container image in
+            Dockerhub, Google Artifact Registry, or Google
+            Container Registry. If the host is not provided,
+            Dockerhub is assumed.
+        command (MutableSequence[str]):
+            Entrypoint array. Not executed within a
+            shell. The docker image's ENTRYPOINT is used if
+            this is not provided.
+        args (MutableSequence[str]):
+            Arguments to the entrypoint.
+            The docker image's CMD is used if this is not
+            provided.
+        env (MutableSequence[google.cloud.run_v2.types.EnvVar]):
+            List of environment variables to set in the
+            container.
+        resources (google.cloud.run_v2.types.ResourceRequirements):
+            Compute Resource requirements by this
+            container.
+        ports (MutableSequence[google.cloud.run_v2.types.ContainerPort]):
+            List of ports to expose from the container.
+            Only a single port can be specified. The
+            specified ports must be listening on all
+            interfaces (0.0.0.0) within the container to be
+            accessible.
+
+            If omitted, a port number will be chosen and
+            passed to the container through the PORT
+            environment variable for the container to listen
+            on.
+        volume_mounts (MutableSequence[google.cloud.run_v2.types.VolumeMount]):
+            Volume to mount into the container's
+            filesystem.
+        working_dir (str):
+            Container's working directory.
+            If not specified, the container runtime's
+            default will be used, which might be configured
+            in the container image.
+        liveness_probe (google.cloud.run_v2.types.Probe):
+            Periodic probe of container liveness.
+            Container will be restarted if the probe fails.
+        startup_probe (google.cloud.run_v2.types.Probe):
+            Startup probe of application within the
+            container. All other probes are disabled if a
+            startup probe is provided, until it succeeds.
+            Container will not be added to service endpoints
+            if the probe fails.
+        depends_on (MutableSequence[str]):
+            Names of the containers that must start
+            before this container.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    image: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    command: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=3,
+    )
+    args: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=4,
+    )
+    env: MutableSequence['EnvVar'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=5,
+        message='EnvVar',
+    )
+    resources: 'ResourceRequirements' = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        message='ResourceRequirements',
+    )
+    ports: MutableSequence['ContainerPort'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=7,
+        message='ContainerPort',
+    )
+    volume_mounts: MutableSequence['VolumeMount'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=8,
+        message='VolumeMount',
+    )
+    working_dir: str = proto.Field(
+        proto.STRING,
+        number=9,
+    )
+    liveness_probe: 'Probe' = proto.Field(
+        proto.MESSAGE,
+        number=10,
+        message='Probe',
+    )
+    startup_probe: 'Probe' = proto.Field(
+        proto.MESSAGE,
+        number=11,
+        message='Probe',
+    )
+    depends_on: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=12,
+    )
+
+
+class ResourceRequirements(proto.Message):
+    r"""ResourceRequirements describes the compute resource
+    requirements.
+
+    Attributes:
+        limits (MutableMapping[str, str]):
+            Only ``memory`` and ``cpu`` keys in the map are supported.
+
+            .. raw:: html
+
+                <p>Notes:
+                 * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4
+                CPU requires at least 2Gi of memory. For more information, go to
+                https://cloud.google.com/run/docs/configuring/cpu.
+                  * For supported 'memory' values and syntax, go to
+                 https://cloud.google.com/run/docs/configuring/memory-limits
+        cpu_idle (bool):
+            Determines whether CPU is only allocated
+            during requests (true by default). However, if
+            ResourceRequirements is set, the caller must
+            explicitly set this field to true to preserve
+            the default behavior.
+        startup_cpu_boost (bool):
+            Determines whether CPU should be boosted on
+            startup of a new container instance above the
+            requested CPU threshold, this can help reduce
+            cold-start latency.
+    """
+
+    limits: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=1,
+    )
+    cpu_idle: bool = proto.Field(
+        proto.BOOL,
+        number=2,
+    )
+    startup_cpu_boost: bool = proto.Field(
+        proto.BOOL,
+        number=3,
+    )
+
+
+class EnvVar(proto.Message):
+    r"""EnvVar represents an environment variable present in a
+    Container.
+
+    This message has `oneof`_ fields (mutually exclusive fields).
+    For each oneof, at most one member field can be set at the same time.
+    Setting any member of the oneof automatically clears all other
+    members.
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        name (str):
+            Required. Name of the environment variable.
+            Must not exceed 32768 characters.
+        value (str):
+            Literal value of the environment variable.
+            Defaults to "", and the maximum length is 32768
+            bytes. Variable references are not supported in
+            Cloud Run.
+
+            This field is a member of `oneof`_ ``values``.
+        value_source (google.cloud.run_v2.types.EnvVarSource):
+            Source for the environment variable's value.
+
+            This field is a member of `oneof`_ ``values``.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    value: str = proto.Field(
+        proto.STRING,
+        number=2,
+        oneof='values',
+    )
+    value_source: 'EnvVarSource' = proto.Field(
+        proto.MESSAGE,
+        number=3,
+        oneof='values',
+        message='EnvVarSource',
+    )
+
+
+class EnvVarSource(proto.Message):
+    r"""EnvVarSource represents a source for the value of an EnvVar.
+
+    Attributes:
+        secret_key_ref (google.cloud.run_v2.types.SecretKeySelector):
+            Selects a secret and a specific version from
+            Cloud Secret Manager.
+    """
+
+    secret_key_ref: 'SecretKeySelector' = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message='SecretKeySelector',
+    )
+
+
+class SecretKeySelector(proto.Message):
+    r"""SecretEnvVarSource represents a source for the value of an
+    EnvVar.
+
+    Attributes:
+        secret (str):
+            Required. The name of the secret in Cloud Secret Manager.
+            Format: {secret_name} if the secret is in the same project.
+            projects/{project}/secrets/{secret_name} if the secret is in
+            a different project.
+        version (str):
+            The Cloud Secret Manager secret version.
+            Can be 'latest' for the latest version, an
+            integer for a specific version, or a version
+            alias.
+    """
+
+    secret: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    version: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class ContainerPort(proto.Message):
+    r"""ContainerPort represents a network port in a single
+    container.
+
+    Attributes:
+        name (str):
+            If specified, used to specify which protocol
+            to use. Allowed values are "http1" and "h2c".
+        container_port (int):
+            Port number the container listens on. This must be a valid
+            TCP port number, 0 < container_port < 65536.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    container_port: int = proto.Field(
+        proto.INT32,
+        number=3,
+    )
+
+
+class VolumeMount(proto.Message):
+    r"""VolumeMount describes a mounting of a Volume within a
+    container.
+
+    Attributes:
+        name (str):
+            Required. This must match the Name of a
+            Volume.
+        mount_path (str):
+            Required. Path within the container at which the volume
+            should be mounted. Must not contain ':'. For Cloud SQL
+            volumes, it can be left empty, or must otherwise be
+            ``/cloudsql``. All instances defined in the Volume will be
+            available as ``/cloudsql/[instance]``. For more information
+            on Cloud SQL volumes, visit
+            https://cloud.google.com/sql/docs/mysql/connect-run
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    mount_path: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+
+
+class Volume(proto.Message):
+    r"""Volume represents a named volume in a container.
+
+    This message has `oneof`_ fields (mutually exclusive fields).
+    For each oneof, at most one member field can be set at the same time.
+    Setting any member of the oneof automatically clears all other
+    members.
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        name (str):
+            Required. Volume's name.
+        secret (google.cloud.run_v2.types.SecretVolumeSource):
+            Secret represents a secret that should
+            populate this volume.
+
+            This field is a member of `oneof`_ ``volume_type``.
+        cloud_sql_instance (google.cloud.run_v2.types.CloudSqlInstance):
+            For Cloud SQL volumes, contains the specific
+            instances that should be mounted. Visit
+            https://cloud.google.com/sql/docs/mysql/connect-run
+            for more information on how to connect Cloud SQL
+            and Cloud Run.
+
+            This field is a member of `oneof`_ ``volume_type``.
+        empty_dir (google.cloud.run_v2.types.EmptyDirVolumeSource):
+            Ephemeral storage used as a shared volume.
+
+            This field is a member of `oneof`_ ``volume_type``.
+        nfs (google.cloud.run_v2.types.NFSVolumeSource):
+            For NFS Voumes, contains the path to the nfs
+            Volume
+
+            This field is a member of `oneof`_ ``volume_type``.
+        gcs (google.cloud.run_v2.types.GCSVolumeSource):
+            Persistent storage backed by a Google Cloud
+            Storage bucket.
+
+            This field is a member of `oneof`_ ``volume_type``.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    secret: 'SecretVolumeSource' = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        oneof='volume_type',
+        message='SecretVolumeSource',
+    )
+    cloud_sql_instance: 'CloudSqlInstance' = proto.Field(
+        proto.MESSAGE,
+        number=3,
+        oneof='volume_type',
+        message='CloudSqlInstance',
+    )
+    empty_dir: 'EmptyDirVolumeSource' = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        oneof='volume_type',
+        message='EmptyDirVolumeSource',
+    )
+    nfs: 'NFSVolumeSource' = proto.Field(
+        proto.MESSAGE,
+        number=5,
+        oneof='volume_type',
+        message='NFSVolumeSource',
+    )
+    gcs: 'GCSVolumeSource' = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        oneof='volume_type',
+        message='GCSVolumeSource',
+    )
+
+
+class SecretVolumeSource(proto.Message):
+    r"""The secret's value will be presented as the content of a file
+    whose name is defined in the item path. If no items are defined,
+    the name of the file is the secret.
+
+    Attributes:
+        secret (str):
+            Required. The name of the secret in Cloud
+            Secret Manager. Format: {secret} if the secret
+            is in the same project.
+            projects/{project}/secrets/{secret} if the
+            secret is in a different project.
+        items (MutableSequence[google.cloud.run_v2.types.VersionToPath]):
+            If unspecified, the volume will expose a file whose name is
+            the secret, relative to VolumeMount.mount_path. If
+            specified, the key will be used as the version to fetch from
+            Cloud Secret Manager and the path will be the name of the
+            file exposed in the volume. When items are defined, they
+            must specify a path and a version.
+        default_mode (int):
+            Integer representation of mode bits to use on created files
+            by default. Must be a value between 0000 and 0777 (octal),
+            defaulting to 0444. Directories within the path are not
+            affected by this setting.
+
+            Notes
+
+            -  Internally, a umask of 0222 will be applied to any
+               non-zero value.
+            -  This is an integer representation of the mode bits. So,
+               the octal integer value should look exactly as the chmod
+               numeric notation with a leading zero. Some examples: for
+               chmod 640 (u=rw,g=r), set to 0640 (octal) or 416
+               (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755
+               (octal) or 493 (base-10).
+            -  This might be in conflict with other options that affect
+               the file mode, like fsGroup, and the result can be other
+               mode bits set.
+
+            This might be in conflict with other options that affect the
+            file mode, like fsGroup, and as a result, other mode bits
+            could be set.
+    """
+
+    secret: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    items: MutableSequence['VersionToPath'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=2,
+        message='VersionToPath',
+    )
+    default_mode: int = proto.Field(
+        proto.INT32,
+        number=3,
+    )
+
+
+class VersionToPath(proto.Message):
+    r"""VersionToPath maps a specific version of a secret to a relative file
+    to mount to, relative to VolumeMount's mount_path.
+
+    Attributes:
+        path (str):
+            Required. The relative path of the secret in
+            the container.
+        version (str):
+            The Cloud Secret Manager secret version.
+            Can be 'latest' for the latest value, or an
+            integer or a secret alias for a specific
+            version.
+        mode (int):
+            Integer octal mode bits to use on this file, must be a value
+            between 01 and 0777 (octal). If 0 or not set, the Volume's
+            default mode will be used.
+
+            Notes
+
+            -  Internally, a umask of 0222 will be applied to any
+               non-zero value.
+            -  This is an integer representation of the mode bits. So,
+               the octal integer value should look exactly as the chmod
+               numeric notation with a leading zero. Some examples: for
+               chmod 640 (u=rw,g=r), set to 0640 (octal) or 416
+               (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755
+               (octal) or 493 (base-10).
+            -  This might be in conflict with other options that affect
+               the file mode, like fsGroup, and the result can be other
+               mode bits set.
+    """
+
+    path: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    version: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    mode: int = proto.Field(
+        proto.INT32,
+        number=3,
+    )
+
+
+class CloudSqlInstance(proto.Message):
+    r"""Represents a set of Cloud SQL instances. Each one will be available
+    under /cloudsql/[instance]. Visit
+    https://cloud.google.com/sql/docs/mysql/connect-run for more
+    information on how to connect Cloud SQL and Cloud Run.
+
+    Attributes:
+        instances (MutableSequence[str]):
+            The Cloud SQL instance connection names, as
+            can be found in
+            https://console.cloud.google.com/sql/instances.
+            Visit
+            https://cloud.google.com/sql/docs/mysql/connect-run
+            for more information on how to connect Cloud SQL
+            and Cloud Run. Format:
+
+            {project}:{location}:{instance}
+    """
+
+    instances: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=1,
+    )
+
+
+class EmptyDirVolumeSource(proto.Message):
+    r"""In memory (tmpfs) ephemeral storage.
+    It is ephemeral in the sense that when the sandbox is taken
+    down, the data is destroyed with it (it does not persist across
+    sandbox runs).
+
+    Attributes:
+        medium (google.cloud.run_v2.types.EmptyDirVolumeSource.Medium):
+            The medium on which the data is stored.
+            Acceptable values today is only MEMORY or none.
+            When none, the default will currently be backed
+            by memory but could change over time. +optional
+        size_limit (str):
+            Limit on the storage usable by this EmptyDir
+            volume. The size limit is also applicable for
+            memory medium. The maximum usage on memory
+            medium EmptyDir would be the minimum value
+            between the SizeLimit specified here and the sum
+            of memory limits of all containers. The default
+            is nil which means that the limit is undefined.
+            More info:
+
+            https://cloud.google.com/run/docs/configuring/in-memory-volumes#configure-volume.
+            Info in Kubernetes:
+
+            https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
+    """
+    class Medium(proto.Enum):
+        r"""The different types of medium supported for EmptyDir.
+
+        Values:
+            MEDIUM_UNSPECIFIED (0):
+                When not specified, falls back to the default
+                implementation which is currently in memory
+                (this may change over time).
+            MEMORY (1):
+                Explicitly set the EmptyDir to be in memory.
+                Uses tmpfs.
+        """
+        MEDIUM_UNSPECIFIED = 0
+        MEMORY = 1
+
+    medium: Medium = proto.Field(
+        proto.ENUM,
+        number=1,
+        enum=Medium,
+    )
+    size_limit: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class NFSVolumeSource(proto.Message):
+    r"""Represents an NFS mount.
+
+    Attributes:
+        server (str):
+            Hostname or IP address of the NFS server
+        path (str):
+            Path that is exported by the NFS server.
+        read_only (bool):
+            If true, the volume will be mounted as read
+            only for all mounts.
+    """
+
+    server: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    path: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    read_only: bool = proto.Field(
+        proto.BOOL,
+        number=3,
+    )
+
+
+class GCSVolumeSource(proto.Message):
+    r"""Represents a volume backed by a Cloud Storage bucket using
+    Cloud Storage FUSE.
+
+    Attributes:
+        bucket (str):
+            Cloud Storage Bucket name.
+        read_only (bool):
+            If true, the volume will be mounted as read
+            only for all mounts.
+        mount_options (MutableSequence[str]):
+            A list of additional flags to pass to the
+            gcsfuse CLI. Options should be specified without
+            the leading "--".
+    """
+
+    bucket: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    read_only: bool = proto.Field(
+        proto.BOOL,
+        number=2,
+    )
+    mount_options: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=3,
+    )
+
+
+class Probe(proto.Message):
+    r"""Probe describes a health check to be performed against a
+    container to determine whether it is alive or ready to receive
+    traffic.
+
+    This message has `oneof`_ fields (mutually exclusive fields).
+    For each oneof, at most one member field can be set at the same time.
+    Setting any member of the oneof automatically clears all other
+    members.
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        initial_delay_seconds (int):
+            Optional. Number of seconds after the
+            container has started before the probe is
+            initiated. Defaults to 0 seconds. Minimum value
+            is 0. Maximum value for liveness probe is 3600.
+            Maximum value for startup probe is 240.
+        timeout_seconds (int):
+            Optional. Number of seconds after which the probe times out.
+            Defaults to 1 second. Minimum value is 1. Maximum value is
+            3600. Must be smaller than period_seconds.
+        period_seconds (int):
+            Optional. How often (in seconds) to perform the probe.
+            Default to 10 seconds. Minimum value is 1. Maximum value for
+            liveness probe is 3600. Maximum value for startup probe is
+            240. Must be greater or equal than timeout_seconds.
+        failure_threshold (int):
+            Optional. Minimum consecutive failures for
+            the probe to be considered failed after having
+            succeeded. Defaults to 3. Minimum value is 1.
+        http_get (google.cloud.run_v2.types.HTTPGetAction):
+            Optional. HTTPGet specifies the http request
+            to perform. Exactly one of httpGet, tcpSocket,
+            or grpc must be specified.
+
+            This field is a member of `oneof`_ ``probe_type``.
+        tcp_socket (google.cloud.run_v2.types.TCPSocketAction):
+            Optional. TCPSocket specifies an action
+            involving a TCP port. Exactly one of httpGet,
+            tcpSocket, or grpc must be specified.
+
+            This field is a member of `oneof`_ ``probe_type``.
+        grpc (google.cloud.run_v2.types.GRPCAction):
+            Optional. GRPC specifies an action involving
+            a gRPC port. Exactly one of httpGet, tcpSocket,
+            or grpc must be specified.
+
+            This field is a member of `oneof`_ ``probe_type``.
+    """
+
+    initial_delay_seconds: int = proto.Field(
+        proto.INT32,
+        number=1,
+    )
+    timeout_seconds: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+    period_seconds: int = proto.Field(
+        proto.INT32,
+        number=3,
+    )
+    failure_threshold: int = proto.Field(
+        proto.INT32,
+        number=4,
+    )
+    http_get: 'HTTPGetAction' = proto.Field(
+        proto.MESSAGE,
+        number=5,
+        oneof='probe_type',
+        message='HTTPGetAction',
+    )
+    tcp_socket: 'TCPSocketAction' = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        oneof='probe_type',
+        message='TCPSocketAction',
+    )
+    grpc: 'GRPCAction' = proto.Field(
+        proto.MESSAGE,
+        number=7,
+        oneof='probe_type',
+        message='GRPCAction',
+    )
+
+
+class HTTPGetAction(proto.Message):
+    r"""HTTPGetAction describes an action based on HTTP Get requests.
+
+    Attributes:
+        path (str):
+            Optional. Path to access on the HTTP server.
+            Defaults to '/'.
+        http_headers (MutableSequence[google.cloud.run_v2.types.HTTPHeader]):
+            Optional. Custom headers to set in the
+            request. HTTP allows repeated headers.
+        port (int):
+            Optional. Port number to access on the container. Must be in
+            the range 1 to 65535. If not specified, defaults to the
+            exposed port of the container, which is the value of
+            container.ports[0].containerPort.
+    """
+
+    path: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    http_headers: MutableSequence['HTTPHeader'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=4,
+        message='HTTPHeader',
+    )
+    port: int = proto.Field(
+        proto.INT32,
+        number=5,
+    )
+
+
+class HTTPHeader(proto.Message):
+    r"""HTTPHeader describes a custom header to be used in HTTP
+    probes
+
+    Attributes:
+        name (str):
+            Required. The header field name
+        value (str):
+            Optional. The header field value
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    value: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class TCPSocketAction(proto.Message):
+    r"""TCPSocketAction describes an action based on opening a socket
+
+    Attributes:
+        port (int):
+            Optional. Port number to access on the container. Must be in
+            the range 1 to 65535. If not specified, defaults to the
+            exposed port of the container, which is the value of
+            container.ports[0].containerPort.
+    """
+
+    port: int = proto.Field(
+        proto.INT32,
+        number=1,
+    )
+
+
+class GRPCAction(proto.Message):
+    r"""GRPCAction describes an action involving a GRPC port.
+
+    Attributes:
+        port (int):
+            Optional. Port number of the gRPC service. Number must be in
+            the range 1 to 65535. If not specified, defaults to the
+            exposed port of the container, which is the value of
+            container.ports[0].containerPort.
+        service (str):
+            Optional. Service is the name of the service
+            to place in the gRPC HealthCheckRequest (see
+            https://github.com/grpc/grpc/blob/master/doc/health-checking.md
+            ). If this is not specified, the default
+            behavior is defined by gRPC.
+    """
+
+    port: int = proto.Field(
+        proto.INT32,
+        number=1,
+    )
+    service: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision.py
new file mode 100644
index 000000000000..84cf3d710ca0
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision.py
@@ -0,0 +1,446 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import status
+from google.cloud.run_v2.types import vendor_settings
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'GetRevisionRequest',
+        'ListRevisionsRequest',
+        'ListRevisionsResponse',
+        'DeleteRevisionRequest',
+        'Revision',
+    },
+)
+
+
+class GetRevisionRequest(proto.Message):
+    r"""Request message for obtaining a Revision by its full name.
+
+    Attributes:
+        name (str):
+            Required. The full name of the Revision.
+            Format:
+
+            projects/{project}/locations/{location}/services/{service}/revisions/{revision}
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class ListRevisionsRequest(proto.Message):
+    r"""Request message for retrieving a list of Revisions.
+
+    Attributes:
+        parent (str):
+            Required. The Service from which the
+            Revisions should be listed. To list all
+            Revisions across Services, use "-" instead of
+            Service name. Format:
+
+            projects/{project}/locations/{location}/services/{service}
+        page_size (int):
+            Maximum number of revisions to return in this
+            call.
+        page_token (str):
+            A page token received from a previous call to
+            ListRevisions. All other parameters must match.
+        show_deleted (bool):
+            If true, returns deleted (but unexpired)
+            resources along with active ones.
+    """
+
+    parent: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    page_size: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+    page_token: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    show_deleted: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class ListRevisionsResponse(proto.Message):
+    r"""Response message containing a list of Revisions.
+
+    Attributes:
+        revisions (MutableSequence[google.cloud.run_v2.types.Revision]):
+            The resulting list of Revisions.
+        next_page_token (str):
+            A token indicating there are more items than page_size. Use
+            it in the next ListRevisions request to continue.
+    """
+
+    @property
+    def raw_page(self):
+        return self
+
+    revisions: MutableSequence['Revision'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=1,
+        message='Revision',
+    )
+    next_page_token: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class DeleteRevisionRequest(proto.Message):
+    r"""Request message for deleting a retired Revision.
+    Revision lifecycle is usually managed by making changes to the
+    parent Service. Only retired revisions can be deleted with this
+    API.
+
+    Attributes:
+        name (str):
+            Required. The name of the Revision to delete.
+            Format:
+
+            projects/{project}/locations/{location}/services/{service}/revisions/{revision}
+        validate_only (bool):
+            Indicates that the request should be
+            validated without actually deleting any
+            resources.
+        etag (str):
+            A system-generated fingerprint for this
+            version of the resource. This may be used to
+            detect modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=2,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+
+
+class Revision(proto.Message):
+    r"""A Revision is an immutable snapshot of code and
+    configuration.  A Revision references a container image.
+    Revisions are only created by updates to its parent Service.
+
+    Attributes:
+        name (str):
+            Output only. The unique name of this
+            Revision.
+        uid (str):
+            Output only. Server assigned unique
+            identifier for the Revision. The value is a
+            UUID4 string and guaranteed to remain unchanged
+            until the resource is deleted.
+        generation (int):
+            Output only. A number that monotonically
+            increases every time the user modifies the
+            desired state.
+        labels (MutableMapping[str, str]):
+            Output only. Unstructured key value map that
+            can be used to organize and categorize objects.
+            User-provided labels are shared with Google's
+            billing system, so they can be used to filter,
+            or break down billing charges by team,
+            component, environment, state, etc. For more
+            information, visit
+            https://cloud.google.com/resource-manager/docs/creating-managing-labels
+            or
+            https://cloud.google.com/run/docs/configuring/labels.
+        annotations (MutableMapping[str, str]):
+            Output only. Unstructured key value map that
+            may be set by external tools to store and
+            arbitrary metadata. They are not queryable and
+            should be preserved when modifying objects.
+        create_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The creation time.
+        update_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The last-modified time.
+        delete_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. For a deleted resource, the
+            deletion time. It is only populated as a
+            response to a Delete request.
+        expire_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. For a deleted resource, the time
+            after which it will be permamently deleted. It
+            is only populated as a response to a Delete
+            request.
+        launch_stage (google.api.launch_stage_pb2.LaunchStage):
+            The least stable launch stage needed to create this
+            resource, as defined by `Google Cloud Platform Launch
+            Stages <https://cloud.google.com/terms/launch-stages>`__.
+            Cloud Run supports ``ALPHA``, ``BETA``, and ``GA``.
+
+            .. raw:: html
+
+                <p>Note that this value might not be what was used
+                as input. For example, if ALPHA was provided as input in the parent
+                resource, but only BETA and GA-level features are were, this field will be
+                BETA.
+        service (str):
+            Output only. The name of the parent service.
+        scaling (google.cloud.run_v2.types.RevisionScaling):
+            Scaling settings for this revision.
+        vpc_access (google.cloud.run_v2.types.VpcAccess):
+            VPC Access configuration for this Revision.
+            For more information, visit
+            https://cloud.google.com/run/docs/configuring/connecting-vpc.
+        max_instance_request_concurrency (int):
+            Sets the maximum number of requests that each
+            serving instance can receive.
+        timeout (google.protobuf.duration_pb2.Duration):
+            Max allowed time for an instance to respond
+            to a request.
+        service_account (str):
+            Email address of the IAM service account
+            associated with the revision of the service. The
+            service account represents the identity of the
+            running revision, and determines what
+            permissions the revision has.
+        containers (MutableSequence[google.cloud.run_v2.types.Container]):
+            Holds the single container that defines the
+            unit of execution for this Revision.
+        volumes (MutableSequence[google.cloud.run_v2.types.Volume]):
+            A list of Volumes to make available to
+            containers.
+        execution_environment (google.cloud.run_v2.types.ExecutionEnvironment):
+            The execution environment being used to host
+            this Revision.
+        encryption_key (str):
+            A reference to a customer managed encryption
+            key (CMEK) to use to encrypt this container
+            image. For more information, go to
+            https://cloud.google.com/run/docs/securing/using-cmek
+        service_mesh (google.cloud.run_v2.types.ServiceMesh):
+            Enables service mesh connectivity.
+        encryption_key_revocation_action (google.cloud.run_v2.types.EncryptionKeyRevocationAction):
+            The action to take if the encryption key is
+            revoked.
+        encryption_key_shutdown_duration (google.protobuf.duration_pb2.Duration):
+            If encryption_key_revocation_action is SHUTDOWN, the
+            duration before shutting down all instances. The minimum
+            increment is 1 hour.
+        reconciling (bool):
+            Output only. Indicates whether the resource's reconciliation
+            is still in progress. See comments in
+            ``Service.reconciling`` for additional information on
+            reconciliation process in Cloud Run.
+        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
+            Output only. The Condition of this Revision,
+            containing its readiness status, and detailed
+            error information in case it did not reach a
+            serving state.
+        observed_generation (int):
+            Output only. The generation of this Revision currently
+            serving traffic. See comments in ``reconciling`` for
+            additional information on reconciliation process in Cloud
+            Run.
+        log_uri (str):
+            Output only. The Google Console URI to obtain
+            logs for the Revision.
+        satisfies_pzs (bool):
+            Output only. Reserved for future use.
+        session_affinity (bool):
+            Enable session affinity.
+        scaling_status (google.cloud.run_v2.types.RevisionScalingStatus):
+            Output only. The current effective scaling
+            settings for the revision.
+        node_selector (google.cloud.run_v2.types.NodeSelector):
+            The node selector for the revision.
+        etag (str):
+            Output only. A system-generated fingerprint
+            for this version of the resource. May be used to
+            detect modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    uid: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    generation: int = proto.Field(
+        proto.INT64,
+        number=3,
+    )
+    labels: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=4,
+    )
+    annotations: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=5,
+    )
+    create_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        message=timestamp_pb2.Timestamp,
+    )
+    update_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=7,
+        message=timestamp_pb2.Timestamp,
+    )
+    delete_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=8,
+        message=timestamp_pb2.Timestamp,
+    )
+    expire_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=9,
+        message=timestamp_pb2.Timestamp,
+    )
+    launch_stage: launch_stage_pb2.LaunchStage = proto.Field(
+        proto.ENUM,
+        number=10,
+        enum=launch_stage_pb2.LaunchStage,
+    )
+    service: str = proto.Field(
+        proto.STRING,
+        number=11,
+    )
+    scaling: vendor_settings.RevisionScaling = proto.Field(
+        proto.MESSAGE,
+        number=12,
+        message=vendor_settings.RevisionScaling,
+    )
+    vpc_access: vendor_settings.VpcAccess = proto.Field(
+        proto.MESSAGE,
+        number=13,
+        message=vendor_settings.VpcAccess,
+    )
+    max_instance_request_concurrency: int = proto.Field(
+        proto.INT32,
+        number=34,
+    )
+    timeout: duration_pb2.Duration = proto.Field(
+        proto.MESSAGE,
+        number=15,
+        message=duration_pb2.Duration,
+    )
+    service_account: str = proto.Field(
+        proto.STRING,
+        number=16,
+    )
+    containers: MutableSequence[k8s_min.Container] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=17,
+        message=k8s_min.Container,
+    )
+    volumes: MutableSequence[k8s_min.Volume] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=18,
+        message=k8s_min.Volume,
+    )
+    execution_environment: vendor_settings.ExecutionEnvironment = proto.Field(
+        proto.ENUM,
+        number=20,
+        enum=vendor_settings.ExecutionEnvironment,
+    )
+    encryption_key: str = proto.Field(
+        proto.STRING,
+        number=21,
+    )
+    service_mesh: vendor_settings.ServiceMesh = proto.Field(
+        proto.MESSAGE,
+        number=22,
+        message=vendor_settings.ServiceMesh,
+    )
+    encryption_key_revocation_action: vendor_settings.EncryptionKeyRevocationAction = proto.Field(
+        proto.ENUM,
+        number=23,
+        enum=vendor_settings.EncryptionKeyRevocationAction,
+    )
+    encryption_key_shutdown_duration: duration_pb2.Duration = proto.Field(
+        proto.MESSAGE,
+        number=24,
+        message=duration_pb2.Duration,
+    )
+    reconciling: bool = proto.Field(
+        proto.BOOL,
+        number=30,
+    )
+    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=31,
+        message=condition.Condition,
+    )
+    observed_generation: int = proto.Field(
+        proto.INT64,
+        number=32,
+    )
+    log_uri: str = proto.Field(
+        proto.STRING,
+        number=33,
+    )
+    satisfies_pzs: bool = proto.Field(
+        proto.BOOL,
+        number=37,
+    )
+    session_affinity: bool = proto.Field(
+        proto.BOOL,
+        number=38,
+    )
+    scaling_status: status.RevisionScalingStatus = proto.Field(
+        proto.MESSAGE,
+        number=39,
+        message=status.RevisionScalingStatus,
+    )
+    node_selector: vendor_settings.NodeSelector = proto.Field(
+        proto.MESSAGE,
+        number=40,
+        message=vendor_settings.NodeSelector,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=99,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision_template.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision_template.py
new file mode 100644
index 000000000000..919d22ed3568
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision_template.py
@@ -0,0 +1,217 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import vendor_settings
+from google.protobuf import duration_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'RevisionTemplate',
+    },
+)
+
+
+class RevisionTemplate(proto.Message):
+    r"""RevisionTemplate describes the data a revision should have
+    when created from a template.
+
+    Attributes:
+        revision (str):
+            Optional. The unique name for the revision.
+            If this field is omitted, it will be
+            automatically generated based on the Service
+            name.
+        labels (MutableMapping[str, str]):
+            Optional. Unstructured key value map that can be used to
+            organize and categorize objects. User-provided labels are
+            shared with Google's billing system, so they can be used to
+            filter, or break down billing charges by team, component,
+            environment, state, etc. For more information, visit
+            https://cloud.google.com/resource-manager/docs/creating-managing-labels
+            or https://cloud.google.com/run/docs/configuring/labels.
+
+            .. raw:: html
+
+                <p>Cloud Run API v2 does not support labels with `run.googleapis.com`,
+                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
+                namespaces, and they will be rejected. All system labels in v1 now have a
+                corresponding field in v2 RevisionTemplate.
+        annotations (MutableMapping[str, str]):
+            Optional. Unstructured key value map that may be set by
+            external tools to store and arbitrary metadata. They are not
+            queryable and should be preserved when modifying objects.
+
+            .. raw:: html
+
+                <p>Cloud Run API v2 does not support annotations with `run.googleapis.com`,
+                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
+                namespaces, and they will be rejected. All system annotations in v1 now
+                have a corresponding field in v2 RevisionTemplate.
+
+            .. raw:: html
+
+                <p>This field follows Kubernetes annotations' namespacing, limits, and
+                rules.
+        scaling (google.cloud.run_v2.types.RevisionScaling):
+            Optional. Scaling settings for this Revision.
+        vpc_access (google.cloud.run_v2.types.VpcAccess):
+            Optional. VPC Access configuration to use for
+            this Revision. For more information, visit
+            https://cloud.google.com/run/docs/configuring/connecting-vpc.
+        timeout (google.protobuf.duration_pb2.Duration):
+            Optional. Max allowed time for an instance to
+            respond to a request.
+        service_account (str):
+            Optional. Email address of the IAM service
+            account associated with the revision of the
+            service. The service account represents the
+            identity of the running revision, and determines
+            what permissions the revision has. If not
+            provided, the revision will use the project's
+            default service account.
+        containers (MutableSequence[google.cloud.run_v2.types.Container]):
+            Holds the single container that defines the
+            unit of execution for this Revision.
+        volumes (MutableSequence[google.cloud.run_v2.types.Volume]):
+            Optional. A list of Volumes to make available
+            to containers.
+        execution_environment (google.cloud.run_v2.types.ExecutionEnvironment):
+            Optional. The sandbox environment to host
+            this Revision.
+        encryption_key (str):
+            A reference to a customer managed encryption
+            key (CMEK) to use to encrypt this container
+            image. For more information, go to
+            https://cloud.google.com/run/docs/securing/using-cmek
+        max_instance_request_concurrency (int):
+            Optional. Sets the maximum number of requests that each
+            serving instance can receive. If not specified or 0,
+            concurrency defaults to 80 when requested ``CPU >= 1`` and
+            defaults to 1 when requested ``CPU < 1``.
+        service_mesh (google.cloud.run_v2.types.ServiceMesh):
+            Optional. Enables service mesh connectivity.
+        encryption_key_revocation_action (google.cloud.run_v2.types.EncryptionKeyRevocationAction):
+            Optional. The action to take if the
+            encryption key is revoked.
+        encryption_key_shutdown_duration (google.protobuf.duration_pb2.Duration):
+            Optional. If encryption_key_revocation_action is SHUTDOWN,
+            the duration before shutting down all instances. The minimum
+            increment is 1 hour.
+        session_affinity (bool):
+            Optional. Enable session affinity.
+        health_check_disabled (bool):
+            Optional. Disables health checking containers
+            during deployment.
+        node_selector (google.cloud.run_v2.types.NodeSelector):
+            Optional. The node selector for the revision
+            template.
+    """
+
+    revision: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    labels: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=2,
+    )
+    annotations: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=3,
+    )
+    scaling: vendor_settings.RevisionScaling = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        message=vendor_settings.RevisionScaling,
+    )
+    vpc_access: vendor_settings.VpcAccess = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        message=vendor_settings.VpcAccess,
+    )
+    timeout: duration_pb2.Duration = proto.Field(
+        proto.MESSAGE,
+        number=8,
+        message=duration_pb2.Duration,
+    )
+    service_account: str = proto.Field(
+        proto.STRING,
+        number=9,
+    )
+    containers: MutableSequence[k8s_min.Container] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=10,
+        message=k8s_min.Container,
+    )
+    volumes: MutableSequence[k8s_min.Volume] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=11,
+        message=k8s_min.Volume,
+    )
+    execution_environment: vendor_settings.ExecutionEnvironment = proto.Field(
+        proto.ENUM,
+        number=13,
+        enum=vendor_settings.ExecutionEnvironment,
+    )
+    encryption_key: str = proto.Field(
+        proto.STRING,
+        number=14,
+    )
+    max_instance_request_concurrency: int = proto.Field(
+        proto.INT32,
+        number=15,
+    )
+    service_mesh: vendor_settings.ServiceMesh = proto.Field(
+        proto.MESSAGE,
+        number=16,
+        message=vendor_settings.ServiceMesh,
+    )
+    encryption_key_revocation_action: vendor_settings.EncryptionKeyRevocationAction = proto.Field(
+        proto.ENUM,
+        number=17,
+        enum=vendor_settings.EncryptionKeyRevocationAction,
+    )
+    encryption_key_shutdown_duration: duration_pb2.Duration = proto.Field(
+        proto.MESSAGE,
+        number=18,
+        message=duration_pb2.Duration,
+    )
+    session_affinity: bool = proto.Field(
+        proto.BOOL,
+        number=19,
+    )
+    health_check_disabled: bool = proto.Field(
+        proto.BOOL,
+        number=20,
+    )
+    node_selector: vendor_settings.NodeSelector = proto.Field(
+        proto.MESSAGE,
+        number=21,
+        message=vendor_settings.NodeSelector,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/service.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/service.py
new file mode 100644
index 000000000000..9171d51f1921
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/service.py
@@ -0,0 +1,602 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import revision_template
+from google.cloud.run_v2.types import traffic_target
+from google.cloud.run_v2.types import vendor_settings
+from google.protobuf import field_mask_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'CreateServiceRequest',
+        'UpdateServiceRequest',
+        'ListServicesRequest',
+        'ListServicesResponse',
+        'GetServiceRequest',
+        'DeleteServiceRequest',
+        'Service',
+    },
+)
+
+
+class CreateServiceRequest(proto.Message):
+    r"""Request message for creating a Service.
+
+    Attributes:
+        parent (str):
+            Required. The location and project in which
+            this service should be created. Format:
+            projects/{project}/locations/{location}, where
+            {project} can be project id or number. Only
+            lowercase characters, digits, and hyphens.
+        service (google.cloud.run_v2.types.Service):
+            Required. The Service instance to create.
+        service_id (str):
+            Required. The unique identifier for the Service. It must
+            begin with letter, and cannot end with hyphen; must contain
+            fewer than 50 characters. The name of the service becomes
+            {parent}/services/{service_id}.
+        validate_only (bool):
+            Indicates that the request should be
+            validated and default values populated, without
+            persisting the request or creating any
+            resources.
+    """
+
+    parent: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    service: 'Service' = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        message='Service',
+    )
+    service_id: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class UpdateServiceRequest(proto.Message):
+    r"""Request message for updating a service.
+
+    Attributes:
+        update_mask (google.protobuf.field_mask_pb2.FieldMask):
+            Optional. The list of fields to be updated.
+        service (google.cloud.run_v2.types.Service):
+            Required. The Service to be updated.
+        validate_only (bool):
+            Indicates that the request should be
+            validated and default values populated, without
+            persisting the request or updating any
+            resources.
+        allow_missing (bool):
+            Optional. If set to true, and if the Service
+            does not exist, it will create a new one. The
+            caller must have 'run.services.create'
+            permissions if this is set to true and the
+            Service does not exist.
+    """
+
+    update_mask: field_mask_pb2.FieldMask = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        message=field_mask_pb2.FieldMask,
+    )
+    service: 'Service' = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message='Service',
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=3,
+    )
+    allow_missing: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class ListServicesRequest(proto.Message):
+    r"""Request message for retrieving a list of Services.
+
+    Attributes:
+        parent (str):
+            Required. The location and project to list
+            resources on. Location must be a valid Google
+            Cloud region, and cannot be the "-" wildcard.
+            Format: projects/{project}/locations/{location},
+            where {project} can be project id or number.
+        page_size (int):
+            Maximum number of Services to return in this
+            call.
+        page_token (str):
+            A page token received from a previous call to
+            ListServices. All other parameters must match.
+        show_deleted (bool):
+            If true, returns deleted (but unexpired)
+            resources along with active ones.
+    """
+
+    parent: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    page_size: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+    page_token: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    show_deleted: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class ListServicesResponse(proto.Message):
+    r"""Response message containing a list of Services.
+
+    Attributes:
+        services (MutableSequence[google.cloud.run_v2.types.Service]):
+            The resulting list of Services.
+        next_page_token (str):
+            A token indicating there are more items than page_size. Use
+            it in the next ListServices request to continue.
+    """
+
+    @property
+    def raw_page(self):
+        return self
+
+    services: MutableSequence['Service'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=1,
+        message='Service',
+    )
+    next_page_token: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class GetServiceRequest(proto.Message):
+    r"""Request message for obtaining a Service by its full name.
+
+    Attributes:
+        name (str):
+            Required. The full name of the Service.
+            Format:
+            projects/{project}/locations/{location}/services/{service},
+            where {project} can be project id or number.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class DeleteServiceRequest(proto.Message):
+    r"""Request message to delete a Service by its full name.
+
+    Attributes:
+        name (str):
+            Required. The full name of the Service.
+            Format:
+            projects/{project}/locations/{location}/services/{service},
+            where {project} can be project id or number.
+        validate_only (bool):
+            Indicates that the request should be
+            validated without actually deleting any
+            resources.
+        etag (str):
+            A system-generated fingerprint for this
+            version of the resource. May be used to detect
+            modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    validate_only: bool = proto.Field(
+        proto.BOOL,
+        number=2,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+
+
+class Service(proto.Message):
+    r"""Service acts as a top-level container that manages a set of
+    configurations and revision templates which implement a network
+    service. Service exists to provide a singular abstraction which
+    can be access controlled, reasoned about, and which encapsulates
+    software lifecycle decisions such as rollout policy and team
+    resource ownership.
+
+    Attributes:
+        name (str):
+            The fully qualified name of this Service. In
+            CreateServiceRequest, this field is ignored, and instead
+            composed from CreateServiceRequest.parent and
+            CreateServiceRequest.service_id.
+
+            Format:
+            projects/{project}/locations/{location}/services/{service_id}
+        description (str):
+            User-provided description of the Service.
+            This field currently has a 512-character limit.
+        uid (str):
+            Output only. Server assigned unique
+            identifier for the trigger. The value is a UUID4
+            string and guaranteed to remain unchanged until
+            the resource is deleted.
+        generation (int):
+            Output only. A number that monotonically increases every
+            time the user modifies the desired state. Please note that
+            unlike v1, this is an int64 value. As with most Google APIs,
+            its JSON representation will be a ``string`` instead of an
+            ``integer``.
+        labels (MutableMapping[str, str]):
+            Optional. Unstructured key value map that can be used to
+            organize and categorize objects. User-provided labels are
+            shared with Google's billing system, so they can be used to
+            filter, or break down billing charges by team, component,
+            environment, state, etc. For more information, visit
+            https://cloud.google.com/resource-manager/docs/creating-managing-labels
+            or https://cloud.google.com/run/docs/configuring/labels.
+
+            .. raw:: html
+
+                <p>Cloud Run API v2 does not support labels with  `run.googleapis.com`,
+                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
+                namespaces, and they will be rejected. All system labels in v1 now have a
+                corresponding field in v2 Service.
+        annotations (MutableMapping[str, str]):
+            Optional. Unstructured key value map that may be set by
+            external tools to store and arbitrary metadata. They are not
+            queryable and should be preserved when modifying objects.
+
+            .. raw:: html
+
+                <p>Cloud Run API v2 does not support annotations with `run.googleapis.com`,
+                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
+                namespaces, and they will be rejected in new resources. All system
+                annotations in v1 now have a corresponding field in v2 Service.
+
+            .. raw:: html
+
+                <p>This field follows Kubernetes
+                annotations' namespacing, limits, and rules.
+        create_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The creation time.
+        update_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The last-modified time.
+        delete_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The deletion time. It is only
+            populated as a response to a Delete request.
+        expire_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. For a deleted resource, the time
+            after which it will be permamently deleted.
+        creator (str):
+            Output only. Email address of the
+            authenticated creator.
+        last_modifier (str):
+            Output only. Email address of the last
+            authenticated modifier.
+        client (str):
+            Arbitrary identifier for the API client.
+        client_version (str):
+            Arbitrary version identifier for the API
+            client.
+        ingress (google.cloud.run_v2.types.IngressTraffic):
+            Optional. Provides the ingress settings for this Service. On
+            output, returns the currently observed ingress settings, or
+            INGRESS_TRAFFIC_UNSPECIFIED if no revision is active.
+        launch_stage (google.api.launch_stage_pb2.LaunchStage):
+            Optional. The launch stage as defined by `Google Cloud
+            Platform Launch
+            Stages <https://cloud.google.com/terms/launch-stages>`__.
+            Cloud Run supports ``ALPHA``, ``BETA``, and ``GA``. If no
+            value is specified, GA is assumed. Set the launch stage to a
+            preview stage on input to allow use of preview features in
+            that stage. On read (or output), describes whether the
+            resource uses preview features.
+
+            .. raw:: html
+
+                <p>
+                For example, if ALPHA is provided as input, but only BETA and GA-level
+                features are used, this field will be BETA on output.
+        binary_authorization (google.cloud.run_v2.types.BinaryAuthorization):
+            Optional. Settings for the Binary
+            Authorization feature.
+        template (google.cloud.run_v2.types.RevisionTemplate):
+            Required. The template used to create
+            revisions for this Service.
+        traffic (MutableSequence[google.cloud.run_v2.types.TrafficTarget]):
+            Optional. Specifies how to distribute traffic over a
+            collection of Revisions belonging to the Service. If traffic
+            is empty or not provided, defaults to 100% traffic to the
+            latest ``Ready`` Revision.
+        scaling (google.cloud.run_v2.types.ServiceScaling):
+            Optional. Specifies service-level scaling
+            settings
+        invoker_iam_disabled (bool):
+            Optional. Disables IAM permission check for
+            run.routes.invoke for callers of this service. This feature
+            is available by invitation only. For more information, visit
+            https://cloud.google.com/run/docs/securing/managing-access#invoker_check.
+        default_uri_disabled (bool):
+            Optional. Disables public resolution of the
+            default URI of this service.
+        urls (MutableSequence[str]):
+            Output only. All URLs serving traffic for
+            this Service.
+        custom_audiences (MutableSequence[str]):
+            One or more custom audiences that you want
+            this service to support. Specify each custom
+            audience as the full URL in a string. The custom
+            audiences are encoded in the token and used to
+            authenticate requests. For more information, see
+            https://cloud.google.com/run/docs/configuring/custom-audiences.
+        observed_generation (int):
+            Output only. The generation of this Service currently
+            serving traffic. See comments in ``reconciling`` for
+            additional information on reconciliation process in Cloud
+            Run. Please note that unlike v1, this is an int64 value. As
+            with most Google APIs, its JSON representation will be a
+            ``string`` instead of an ``integer``.
+        terminal_condition (google.cloud.run_v2.types.Condition):
+            Output only. The Condition of this Service, containing its
+            readiness status, and detailed error information in case it
+            did not reach a serving state. See comments in
+            ``reconciling`` for additional information on reconciliation
+            process in Cloud Run.
+        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
+            Output only. The Conditions of all other associated
+            sub-resources. They contain additional diagnostics
+            information in case the Service does not reach its Serving
+            state. See comments in ``reconciling`` for additional
+            information on reconciliation process in Cloud Run.
+        latest_ready_revision (str):
+            Output only. Name of the latest revision that is serving
+            traffic. See comments in ``reconciling`` for additional
+            information on reconciliation process in Cloud Run.
+        latest_created_revision (str):
+            Output only. Name of the last created revision. See comments
+            in ``reconciling`` for additional information on
+            reconciliation process in Cloud Run.
+        traffic_statuses (MutableSequence[google.cloud.run_v2.types.TrafficTargetStatus]):
+            Output only. Detailed status information for corresponding
+            traffic targets. See comments in ``reconciling`` for
+            additional information on reconciliation process in Cloud
+            Run.
+        uri (str):
+            Output only. The main URI in which this
+            Service is serving traffic.
+        satisfies_pzs (bool):
+            Output only. Reserved for future use.
+        reconciling (bool):
+            Output only. Returns true if the Service is currently being
+            acted upon by the system to bring it into the desired state.
+
+            When a new Service is created, or an existing one is
+            updated, Cloud Run will asynchronously perform all necessary
+            steps to bring the Service to the desired serving state.
+            This process is called reconciliation. While reconciliation
+            is in process, ``observed_generation``,
+            ``latest_ready_revison``, ``traffic_statuses``, and ``uri``
+            will have transient values that might mismatch the intended
+            state: Once reconciliation is over (and this field is
+            false), there are two possible outcomes: reconciliation
+            succeeded and the serving state matches the Service, or
+            there was an error, and reconciliation failed. This state
+            can be found in ``terminal_condition.state``.
+
+            If reconciliation succeeded, the following fields will
+            match: ``traffic`` and ``traffic_statuses``,
+            ``observed_generation`` and ``generation``,
+            ``latest_ready_revision`` and ``latest_created_revision``.
+
+            If reconciliation failed, ``traffic_statuses``,
+            ``observed_generation``, and ``latest_ready_revision`` will
+            have the state of the last serving revision, or empty for
+            newly created Services. Additional information on the
+            failure can be found in ``terminal_condition`` and
+            ``conditions``.
+        etag (str):
+            Output only. A system-generated fingerprint
+            for this version of the resource. May be used to
+            detect modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    description: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    uid: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    generation: int = proto.Field(
+        proto.INT64,
+        number=4,
+    )
+    labels: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=5,
+    )
+    annotations: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=6,
+    )
+    create_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=7,
+        message=timestamp_pb2.Timestamp,
+    )
+    update_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=8,
+        message=timestamp_pb2.Timestamp,
+    )
+    delete_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=9,
+        message=timestamp_pb2.Timestamp,
+    )
+    expire_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=10,
+        message=timestamp_pb2.Timestamp,
+    )
+    creator: str = proto.Field(
+        proto.STRING,
+        number=11,
+    )
+    last_modifier: str = proto.Field(
+        proto.STRING,
+        number=12,
+    )
+    client: str = proto.Field(
+        proto.STRING,
+        number=13,
+    )
+    client_version: str = proto.Field(
+        proto.STRING,
+        number=14,
+    )
+    ingress: vendor_settings.IngressTraffic = proto.Field(
+        proto.ENUM,
+        number=15,
+        enum=vendor_settings.IngressTraffic,
+    )
+    launch_stage: launch_stage_pb2.LaunchStage = proto.Field(
+        proto.ENUM,
+        number=16,
+        enum=launch_stage_pb2.LaunchStage,
+    )
+    binary_authorization: vendor_settings.BinaryAuthorization = proto.Field(
+        proto.MESSAGE,
+        number=17,
+        message=vendor_settings.BinaryAuthorization,
+    )
+    template: revision_template.RevisionTemplate = proto.Field(
+        proto.MESSAGE,
+        number=18,
+        message=revision_template.RevisionTemplate,
+    )
+    traffic: MutableSequence[traffic_target.TrafficTarget] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=19,
+        message=traffic_target.TrafficTarget,
+    )
+    scaling: vendor_settings.ServiceScaling = proto.Field(
+        proto.MESSAGE,
+        number=20,
+        message=vendor_settings.ServiceScaling,
+    )
+    invoker_iam_disabled: bool = proto.Field(
+        proto.BOOL,
+        number=21,
+    )
+    default_uri_disabled: bool = proto.Field(
+        proto.BOOL,
+        number=22,
+    )
+    urls: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=24,
+    )
+    custom_audiences: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=37,
+    )
+    observed_generation: int = proto.Field(
+        proto.INT64,
+        number=30,
+    )
+    terminal_condition: condition.Condition = proto.Field(
+        proto.MESSAGE,
+        number=31,
+        message=condition.Condition,
+    )
+    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=32,
+        message=condition.Condition,
+    )
+    latest_ready_revision: str = proto.Field(
+        proto.STRING,
+        number=33,
+    )
+    latest_created_revision: str = proto.Field(
+        proto.STRING,
+        number=34,
+    )
+    traffic_statuses: MutableSequence[traffic_target.TrafficTargetStatus] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=35,
+        message=traffic_target.TrafficTargetStatus,
+    )
+    uri: str = proto.Field(
+        proto.STRING,
+        number=36,
+    )
+    satisfies_pzs: bool = proto.Field(
+        proto.BOOL,
+        number=38,
+    )
+    reconciling: bool = proto.Field(
+        proto.BOOL,
+        number=98,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=99,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/status.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/status.py
new file mode 100644
index 000000000000..3fd6f50a43b5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/status.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'RevisionScalingStatus',
+    },
+)
+
+
+class RevisionScalingStatus(proto.Message):
+    r"""Effective settings for the current revision
+
+    Attributes:
+        desired_min_instance_count (int):
+            The current number of min instances
+            provisioned for this revision.
+    """
+
+    desired_min_instance_count: int = proto.Field(
+        proto.INT32,
+        number=1,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task.py
new file mode 100644
index 000000000000..5bf0564a7a03
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task.py
@@ -0,0 +1,431 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import vendor_settings
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from google.rpc import status_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'GetTaskRequest',
+        'ListTasksRequest',
+        'ListTasksResponse',
+        'Task',
+        'TaskAttemptResult',
+    },
+)
+
+
+class GetTaskRequest(proto.Message):
+    r"""Request message for obtaining a Task by its full name.
+
+    Attributes:
+        name (str):
+            Required. The full name of the Task.
+            Format:
+
+            projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class ListTasksRequest(proto.Message):
+    r"""Request message for retrieving a list of Tasks.
+
+    Attributes:
+        parent (str):
+            Required. The Execution from which the Tasks
+            should be listed. To list all Tasks across
+            Executions of a Job, use "-" instead of
+            Execution name. To list all Tasks across Jobs,
+            use "-" instead of Job name. Format:
+
+            projects/{project}/locations/{location}/jobs/{job}/executions/{execution}
+        page_size (int):
+            Maximum number of Tasks to return in this
+            call.
+        page_token (str):
+            A page token received from a previous call to
+            ListTasks. All other parameters must match.
+        show_deleted (bool):
+            If true, returns deleted (but unexpired)
+            resources along with active ones.
+    """
+
+    parent: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    page_size: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+    page_token: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    show_deleted: bool = proto.Field(
+        proto.BOOL,
+        number=4,
+    )
+
+
+class ListTasksResponse(proto.Message):
+    r"""Response message containing a list of Tasks.
+
+    Attributes:
+        tasks (MutableSequence[google.cloud.run_v2.types.Task]):
+            The resulting list of Tasks.
+        next_page_token (str):
+            A token indicating there are more items than page_size. Use
+            it in the next ListTasks request to continue.
+    """
+
+    @property
+    def raw_page(self):
+        return self
+
+    tasks: MutableSequence['Task'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=1,
+        message='Task',
+    )
+    next_page_token: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class Task(proto.Message):
+    r"""Task represents a single run of a container to completion.
+
+    Attributes:
+        name (str):
+            Output only. The unique name of this Task.
+        uid (str):
+            Output only. Server assigned unique
+            identifier for the Task. The value is a UUID4
+            string and guaranteed to remain unchanged until
+            the resource is deleted.
+        generation (int):
+            Output only. A number that monotonically
+            increases every time the user modifies the
+            desired state.
+        labels (MutableMapping[str, str]):
+            Output only. Unstructured key value map that
+            can be used to organize and categorize objects.
+            User-provided labels are shared with Google's
+            billing system, so they can be used to filter,
+            or break down billing charges by team,
+            component, environment, state, etc. For more
+            information, visit
+            https://cloud.google.com/resource-manager/docs/creating-managing-labels
+            or
+            https://cloud.google.com/run/docs/configuring/labels
+        annotations (MutableMapping[str, str]):
+            Output only. Unstructured key value map that
+            may be set by external tools to store and
+            arbitrary metadata. They are not queryable and
+            should be preserved when modifying objects.
+        create_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. Represents time when the task
+            was created by the system. It is not guaranteed
+            to be set in happens-before order across
+            separate operations.
+        scheduled_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. Represents time when the task
+            was scheduled to run by the system. It is not
+            guaranteed to be set in happens-before order
+            across separate operations.
+        start_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. Represents time when the task
+            started to run. It is not guaranteed to be set
+            in happens-before order across separate
+            operations.
+        completion_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. Represents time when the Task
+            was completed. It is not guaranteed to be set in
+            happens-before order across separate operations.
+        update_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. The last-modified time.
+        delete_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. For a deleted resource, the
+            deletion time. It is only populated as a
+            response to a Delete request.
+        expire_time (google.protobuf.timestamp_pb2.Timestamp):
+            Output only. For a deleted resource, the time
+            after which it will be permamently deleted. It
+            is only populated as a response to a Delete
+            request.
+        job (str):
+            Output only. The name of the parent Job.
+        execution (str):
+            Output only. The name of the parent
+            Execution.
+        containers (MutableSequence[google.cloud.run_v2.types.Container]):
+            Holds the single container that defines the
+            unit of execution for this task.
+        volumes (MutableSequence[google.cloud.run_v2.types.Volume]):
+            A list of Volumes to make available to
+            containers.
+        max_retries (int):
+            Number of retries allowed per Task, before
+            marking this Task failed.
+        timeout (google.protobuf.duration_pb2.Duration):
+            Max allowed time duration the Task may be
+            active before the system will actively try to
+            mark it failed and kill associated containers.
+            This applies per attempt of a task, meaning each
+            retry can run for the full timeout.
+        service_account (str):
+            Email address of the IAM service account
+            associated with the Task of a Job. The service
+            account represents the identity of the running
+            task, and determines what permissions the task
+            has. If not provided, the task will use the
+            project's default service account.
+        execution_environment (google.cloud.run_v2.types.ExecutionEnvironment):
+            The execution environment being used to host
+            this Task.
+        reconciling (bool):
+            Output only. Indicates whether the resource's reconciliation
+            is still in progress. See comments in ``Job.reconciling``
+            for additional information on reconciliation process in
+            Cloud Run.
+        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
+            Output only. The Condition of this Task,
+            containing its readiness status, and detailed
+            error information in case it did not reach the
+            desired state.
+        observed_generation (int):
+            Output only. The generation of this Task. See comments in
+            ``Job.reconciling`` for additional information on
+            reconciliation process in Cloud Run.
+        index (int):
+            Output only. Index of the Task, unique per
+            execution, and beginning at 0.
+        retried (int):
+            Output only. The number of times this Task
+            was retried. Tasks are retried when they fail up
+            to the maxRetries limit.
+        last_attempt_result (google.cloud.run_v2.types.TaskAttemptResult):
+            Output only. Result of the last attempt of
+            this Task.
+        encryption_key (str):
+            Output only. A reference to a customer
+            managed encryption key (CMEK) to use to encrypt
+            this container image. For more information, go
+            to
+            https://cloud.google.com/run/docs/securing/using-cmek
+        vpc_access (google.cloud.run_v2.types.VpcAccess):
+            Output only. VPC Access configuration to use
+            for this Task. For more information, visit
+            https://cloud.google.com/run/docs/configuring/connecting-vpc.
+        log_uri (str):
+            Output only. URI where logs for this
+            execution can be found in Cloud Console.
+        satisfies_pzs (bool):
+            Output only. Reserved for future use.
+        etag (str):
+            Output only. A system-generated fingerprint
+            for this version of the resource. May be used to
+            detect modification conflict during updates.
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    uid: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    generation: int = proto.Field(
+        proto.INT64,
+        number=3,
+    )
+    labels: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=4,
+    )
+    annotations: MutableMapping[str, str] = proto.MapField(
+        proto.STRING,
+        proto.STRING,
+        number=5,
+    )
+    create_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        message=timestamp_pb2.Timestamp,
+    )
+    scheduled_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=34,
+        message=timestamp_pb2.Timestamp,
+    )
+    start_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=27,
+        message=timestamp_pb2.Timestamp,
+    )
+    completion_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=7,
+        message=timestamp_pb2.Timestamp,
+    )
+    update_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=8,
+        message=timestamp_pb2.Timestamp,
+    )
+    delete_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=9,
+        message=timestamp_pb2.Timestamp,
+    )
+    expire_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=10,
+        message=timestamp_pb2.Timestamp,
+    )
+    job: str = proto.Field(
+        proto.STRING,
+        number=12,
+    )
+    execution: str = proto.Field(
+        proto.STRING,
+        number=13,
+    )
+    containers: MutableSequence[k8s_min.Container] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=14,
+        message=k8s_min.Container,
+    )
+    volumes: MutableSequence[k8s_min.Volume] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=15,
+        message=k8s_min.Volume,
+    )
+    max_retries: int = proto.Field(
+        proto.INT32,
+        number=16,
+    )
+    timeout: duration_pb2.Duration = proto.Field(
+        proto.MESSAGE,
+        number=17,
+        message=duration_pb2.Duration,
+    )
+    service_account: str = proto.Field(
+        proto.STRING,
+        number=18,
+    )
+    execution_environment: vendor_settings.ExecutionEnvironment = proto.Field(
+        proto.ENUM,
+        number=20,
+        enum=vendor_settings.ExecutionEnvironment,
+    )
+    reconciling: bool = proto.Field(
+        proto.BOOL,
+        number=21,
+    )
+    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=22,
+        message=condition.Condition,
+    )
+    observed_generation: int = proto.Field(
+        proto.INT64,
+        number=23,
+    )
+    index: int = proto.Field(
+        proto.INT32,
+        number=24,
+    )
+    retried: int = proto.Field(
+        proto.INT32,
+        number=25,
+    )
+    last_attempt_result: 'TaskAttemptResult' = proto.Field(
+        proto.MESSAGE,
+        number=26,
+        message='TaskAttemptResult',
+    )
+    encryption_key: str = proto.Field(
+        proto.STRING,
+        number=28,
+    )
+    vpc_access: vendor_settings.VpcAccess = proto.Field(
+        proto.MESSAGE,
+        number=29,
+        message=vendor_settings.VpcAccess,
+    )
+    log_uri: str = proto.Field(
+        proto.STRING,
+        number=32,
+    )
+    satisfies_pzs: bool = proto.Field(
+        proto.BOOL,
+        number=33,
+    )
+    etag: str = proto.Field(
+        proto.STRING,
+        number=99,
+    )
+
+
+class TaskAttemptResult(proto.Message):
+    r"""Result of a task attempt.
+
+    Attributes:
+        status (google.rpc.status_pb2.Status):
+            Output only. The status of this attempt.
+            If the status code is OK, then the attempt
+            succeeded.
+        exit_code (int):
+            Output only. The exit code of this attempt.
+            This may be unset if the container was unable to
+            exit cleanly with a code due to some other
+            failure.
+            See status field for possible failure details.
+    """
+
+    status: status_pb2.Status = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message=status_pb2.Status,
+    )
+    exit_code: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task_template.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task_template.py
new file mode 100644
index 000000000000..121be8e72208
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task_template.py
@@ -0,0 +1,122 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import vendor_settings
+from google.protobuf import duration_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'TaskTemplate',
+    },
+)
+
+
+class TaskTemplate(proto.Message):
+    r"""TaskTemplate describes the data a task should have when
+    created from a template.
+
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        containers (MutableSequence[google.cloud.run_v2.types.Container]):
+            Holds the single container that defines the
+            unit of execution for this task.
+        volumes (MutableSequence[google.cloud.run_v2.types.Volume]):
+            Optional. A list of Volumes to make available
+            to containers.
+        max_retries (int):
+            Number of retries allowed per Task, before
+            marking this Task failed. Defaults to 3.
+
+            This field is a member of `oneof`_ ``retries``.
+        timeout (google.protobuf.duration_pb2.Duration):
+            Optional. Max allowed time duration the Task
+            may be active before the system will actively
+            try to mark it failed and kill associated
+            containers. This applies per attempt of a task,
+            meaning each retry can run for the full timeout.
+            Defaults to 600 seconds.
+        service_account (str):
+            Optional. Email address of the IAM service
+            account associated with the Task of a Job. The
+            service account represents the identity of the
+            running task, and determines what permissions
+            the task has. If not provided, the task will use
+            the project's default service account.
+        execution_environment (google.cloud.run_v2.types.ExecutionEnvironment):
+            Optional. The execution environment being
+            used to host this Task.
+        encryption_key (str):
+            A reference to a customer managed encryption
+            key (CMEK) to use to encrypt this container
+            image. For more information, go to
+            https://cloud.google.com/run/docs/securing/using-cmek
+        vpc_access (google.cloud.run_v2.types.VpcAccess):
+            Optional. VPC Access configuration to use for
+            this Task. For more information, visit
+            https://cloud.google.com/run/docs/configuring/connecting-vpc.
+    """
+
+    containers: MutableSequence[k8s_min.Container] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=1,
+        message=k8s_min.Container,
+    )
+    volumes: MutableSequence[k8s_min.Volume] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=2,
+        message=k8s_min.Volume,
+    )
+    max_retries: int = proto.Field(
+        proto.INT32,
+        number=3,
+        oneof='retries',
+    )
+    timeout: duration_pb2.Duration = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        message=duration_pb2.Duration,
+    )
+    service_account: str = proto.Field(
+        proto.STRING,
+        number=5,
+    )
+    execution_environment: vendor_settings.ExecutionEnvironment = proto.Field(
+        proto.ENUM,
+        number=6,
+        enum=vendor_settings.ExecutionEnvironment,
+    )
+    encryption_key: str = proto.Field(
+        proto.STRING,
+        number=7,
+    )
+    vpc_access: vendor_settings.VpcAccess = proto.Field(
+        proto.MESSAGE,
+        number=8,
+        message=vendor_settings.VpcAccess,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/traffic_target.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/traffic_target.py
new file mode 100644
index 000000000000..adeddeef7288
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/traffic_target.py
@@ -0,0 +1,129 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'TrafficTargetAllocationType',
+        'TrafficTarget',
+        'TrafficTargetStatus',
+    },
+)
+
+
+class TrafficTargetAllocationType(proto.Enum):
+    r"""The type of instance allocation.
+
+    Values:
+        TRAFFIC_TARGET_ALLOCATION_TYPE_UNSPECIFIED (0):
+            Unspecified instance allocation type.
+        TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST (1):
+            Allocates instances to the Service's latest
+            ready Revision.
+        TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION (2):
+            Allocates instances to a Revision by name.
+    """
+    TRAFFIC_TARGET_ALLOCATION_TYPE_UNSPECIFIED = 0
+    TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST = 1
+    TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION = 2
+
+
+class TrafficTarget(proto.Message):
+    r"""Holds a single traffic routing entry for the Service.
+    Allocations can be done to a specific Revision name, or pointing
+    to the latest Ready Revision.
+
+    Attributes:
+        type_ (google.cloud.run_v2.types.TrafficTargetAllocationType):
+            The allocation type for this traffic target.
+        revision (str):
+            Revision to which to send this portion of
+            traffic, if traffic allocation is by revision.
+        percent (int):
+            Specifies percent of the traffic to this
+            Revision. This defaults to zero if unspecified.
+        tag (str):
+            Indicates a string to be part of the URI to
+            exclusively reference this target.
+    """
+
+    type_: 'TrafficTargetAllocationType' = proto.Field(
+        proto.ENUM,
+        number=1,
+        enum='TrafficTargetAllocationType',
+    )
+    revision: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    percent: int = proto.Field(
+        proto.INT32,
+        number=3,
+    )
+    tag: str = proto.Field(
+        proto.STRING,
+        number=4,
+    )
+
+
+class TrafficTargetStatus(proto.Message):
+    r"""Represents the observed state of a single ``TrafficTarget`` entry.
+
+    Attributes:
+        type_ (google.cloud.run_v2.types.TrafficTargetAllocationType):
+            The allocation type for this traffic target.
+        revision (str):
+            Revision to which this traffic is sent.
+        percent (int):
+            Specifies percent of the traffic to this
+            Revision.
+        tag (str):
+            Indicates the string used in the URI to
+            exclusively reference this target.
+        uri (str):
+            Displays the target URI.
+    """
+
+    type_: 'TrafficTargetAllocationType' = proto.Field(
+        proto.ENUM,
+        number=1,
+        enum='TrafficTargetAllocationType',
+    )
+    revision: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    percent: int = proto.Field(
+        proto.INT32,
+        number=3,
+    )
+    tag: str = proto.Field(
+        proto.STRING,
+        number=4,
+    )
+    uri: str = proto.Field(
+        proto.STRING,
+        number=5,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/vendor_settings.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/vendor_settings.py
new file mode 100644
index 000000000000..61dd6f7e626f
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/vendor_settings.py
@@ -0,0 +1,351 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+from __future__ import annotations
+
+from typing import MutableMapping, MutableSequence
+
+import proto  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.cloud.run.v2',
+    manifest={
+        'IngressTraffic',
+        'ExecutionEnvironment',
+        'EncryptionKeyRevocationAction',
+        'VpcAccess',
+        'BinaryAuthorization',
+        'RevisionScaling',
+        'ServiceMesh',
+        'ServiceScaling',
+        'NodeSelector',
+    },
+)
+
+
+class IngressTraffic(proto.Enum):
+    r"""Allowed ingress traffic for the Container.
+
+    Values:
+        INGRESS_TRAFFIC_UNSPECIFIED (0):
+            Unspecified
+        INGRESS_TRAFFIC_ALL (1):
+            All inbound traffic is allowed.
+        INGRESS_TRAFFIC_INTERNAL_ONLY (2):
+            Only internal traffic is allowed.
+        INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER (3):
+            Both internal and Google Cloud Load Balancer
+            traffic is allowed.
+        INGRESS_TRAFFIC_NONE (4):
+            No ingress traffic is allowed.
+    """
+    INGRESS_TRAFFIC_UNSPECIFIED = 0
+    INGRESS_TRAFFIC_ALL = 1
+    INGRESS_TRAFFIC_INTERNAL_ONLY = 2
+    INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER = 3
+    INGRESS_TRAFFIC_NONE = 4
+
+
+class ExecutionEnvironment(proto.Enum):
+    r"""Alternatives for execution environments.
+
+    Values:
+        EXECUTION_ENVIRONMENT_UNSPECIFIED (0):
+            Unspecified
+        EXECUTION_ENVIRONMENT_GEN1 (1):
+            Uses the First Generation environment.
+        EXECUTION_ENVIRONMENT_GEN2 (2):
+            Uses Second Generation environment.
+    """
+    EXECUTION_ENVIRONMENT_UNSPECIFIED = 0
+    EXECUTION_ENVIRONMENT_GEN1 = 1
+    EXECUTION_ENVIRONMENT_GEN2 = 2
+
+
+class EncryptionKeyRevocationAction(proto.Enum):
+    r"""Specifies behavior if an encryption key used by a resource is
+    revoked.
+
+    Values:
+        ENCRYPTION_KEY_REVOCATION_ACTION_UNSPECIFIED (0):
+            Unspecified
+        PREVENT_NEW (1):
+            Prevents the creation of new instances.
+        SHUTDOWN (2):
+            Shuts down existing instances, and prevents
+            creation of new ones.
+    """
+    ENCRYPTION_KEY_REVOCATION_ACTION_UNSPECIFIED = 0
+    PREVENT_NEW = 1
+    SHUTDOWN = 2
+
+
+class VpcAccess(proto.Message):
+    r"""VPC Access settings. For more information on sending traffic
+    to a VPC network, visit
+    https://cloud.google.com/run/docs/configuring/connecting-vpc.
+
+    Attributes:
+        connector (str):
+            VPC Access connector name. Format:
+            ``projects/{project}/locations/{location}/connectors/{connector}``,
+            where ``{project}`` can be project id or number. For more
+            information on sending traffic to a VPC network via a
+            connector, visit
+            https://cloud.google.com/run/docs/configuring/vpc-connectors.
+        egress (google.cloud.run_v2.types.VpcAccess.VpcEgress):
+            Optional. Traffic VPC egress settings. If not provided, it
+            defaults to PRIVATE_RANGES_ONLY.
+        network_interfaces (MutableSequence[google.cloud.run_v2.types.VpcAccess.NetworkInterface]):
+            Optional. Direct VPC egress settings.
+            Currently only single network interface is
+            supported.
+    """
+    class VpcEgress(proto.Enum):
+        r"""Egress options for VPC access.
+
+        Values:
+            VPC_EGRESS_UNSPECIFIED (0):
+                Unspecified
+            ALL_TRAFFIC (1):
+                All outbound traffic is routed through the
+                VPC connector.
+            PRIVATE_RANGES_ONLY (2):
+                Only private IP ranges are routed through the
+                VPC connector.
+        """
+        VPC_EGRESS_UNSPECIFIED = 0
+        ALL_TRAFFIC = 1
+        PRIVATE_RANGES_ONLY = 2
+
+    class NetworkInterface(proto.Message):
+        r"""Direct VPC egress settings.
+
+        Attributes:
+            network (str):
+                Optional. The VPC network that the Cloud Run
+                resource will be able to send traffic to. At
+                least one of network or subnetwork must be
+                specified. If both network and subnetwork are
+                specified, the given VPC subnetwork must belong
+                to the given VPC network. If network is not
+                specified, it will be looked up from the
+                subnetwork.
+            subnetwork (str):
+                Optional. The VPC subnetwork that the Cloud
+                Run resource will get IPs from. At least one of
+                network or subnetwork must be specified. If both
+                network and subnetwork are specified, the given
+                VPC subnetwork must belong to the given VPC
+                network. If subnetwork is not specified, the
+                subnetwork with the same name with the network
+                will be used.
+            tags (MutableSequence[str]):
+                Optional. Network tags applied to this Cloud
+                Run resource.
+        """
+
+        network: str = proto.Field(
+            proto.STRING,
+            number=1,
+        )
+        subnetwork: str = proto.Field(
+            proto.STRING,
+            number=2,
+        )
+        tags: MutableSequence[str] = proto.RepeatedField(
+            proto.STRING,
+            number=3,
+        )
+
+    connector: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    egress: VpcEgress = proto.Field(
+        proto.ENUM,
+        number=2,
+        enum=VpcEgress,
+    )
+    network_interfaces: MutableSequence[NetworkInterface] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=3,
+        message=NetworkInterface,
+    )
+
+
+class BinaryAuthorization(proto.Message):
+    r"""Settings for Binary Authorization feature.
+
+    This message has `oneof`_ fields (mutually exclusive fields).
+    For each oneof, at most one member field can be set at the same time.
+    Setting any member of the oneof automatically clears all other
+    members.
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        use_default (bool):
+            Optional. If True, indicates to use the
+            default project's binary authorization policy.
+            If False, binary authorization will be disabled.
+
+            This field is a member of `oneof`_ ``binauthz_method``.
+        policy (str):
+            Optional. The path to a binary authorization policy. Format:
+            ``projects/{project}/platforms/cloudRun/{policy-name}``
+
+            This field is a member of `oneof`_ ``binauthz_method``.
+        breakglass_justification (str):
+            Optional. If present, indicates to use Breakglass using this
+            justification. If use_default is False, then it must be
+            empty. For more information on breakglass, see
+            https://cloud.google.com/binary-authorization/docs/using-breakglass
+    """
+
+    use_default: bool = proto.Field(
+        proto.BOOL,
+        number=1,
+        oneof='binauthz_method',
+    )
+    policy: str = proto.Field(
+        proto.STRING,
+        number=3,
+        oneof='binauthz_method',
+    )
+    breakglass_justification: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+
+
+class RevisionScaling(proto.Message):
+    r"""Settings for revision-level scaling settings.
+
+    Attributes:
+        min_instance_count (int):
+            Optional. Minimum number of serving instances
+            that this resource should have.
+        max_instance_count (int):
+            Optional. Maximum number of serving instances
+            that this resource should have. When
+            unspecified, the field is set to the server
+            default value of
+            100. For more information see
+            https://cloud.google.com/run/docs/configuring/max-instances
+    """
+
+    min_instance_count: int = proto.Field(
+        proto.INT32,
+        number=1,
+    )
+    max_instance_count: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+
+
+class ServiceMesh(proto.Message):
+    r"""Settings for Cloud Service Mesh. For more information see
+    https://cloud.google.com/service-mesh/docs/overview.
+
+    Attributes:
+        mesh (str):
+            The Mesh resource name. Format:
+            ``projects/{project}/locations/global/meshes/{mesh}``, where
+            ``{project}`` can be project id or number.
+    """
+
+    mesh: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class ServiceScaling(proto.Message):
+    r"""Scaling settings applied at the service level rather than
+    at the revision level.
+
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
+    Attributes:
+        min_instance_count (int):
+            Optional. total min instances for the
+            service. This number of instances is divided
+            among all revisions with specified traffic based
+            on the percent of traffic they are receiving.
+        scaling_mode (google.cloud.run_v2.types.ServiceScaling.ScalingMode):
+            Optional. The scaling mode for the service.
+        manual_instance_count (int):
+            Optional. total instance count for the
+            service in manual scaling mode. This number of
+            instances is divided among all revisions with
+            specified traffic based on the percent of
+            traffic they are receiving.
+
+            This field is a member of `oneof`_ ``_manual_instance_count``.
+    """
+    class ScalingMode(proto.Enum):
+        r"""The scaling mode for the service. If not provided, it
+        defaults to AUTOMATIC.
+
+        Values:
+            SCALING_MODE_UNSPECIFIED (0):
+                Unspecified.
+            AUTOMATIC (1):
+                Scale based on traffic between min and max
+                instances.
+            MANUAL (2):
+                Scale to exactly min instances and ignore max
+                instances.
+        """
+        SCALING_MODE_UNSPECIFIED = 0
+        AUTOMATIC = 1
+        MANUAL = 2
+
+    min_instance_count: int = proto.Field(
+        proto.INT32,
+        number=1,
+    )
+    scaling_mode: ScalingMode = proto.Field(
+        proto.ENUM,
+        number=3,
+        enum=ScalingMode,
+    )
+    manual_instance_count: int = proto.Field(
+        proto.INT32,
+        number=6,
+        optional=True,
+    )
+
+
+class NodeSelector(proto.Message):
+    r"""Hardware constraints configuration.
+
+    Attributes:
+        accelerator (str):
+            Required. GPU accelerator type to attach to
+            an instance.
+    """
+
+    accelerator: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/mypy.ini b/owl-bot-staging/google-cloud-run/v2/mypy.ini
new file mode 100644
index 000000000000..574c5aed394b
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/mypy.ini
@@ -0,0 +1,3 @@
+[mypy]
+python_version = 3.7
+namespace_packages = True
diff --git a/owl-bot-staging/google-cloud-run/v2/noxfile.py b/owl-bot-staging/google-cloud-run/v2/noxfile.py
new file mode 100644
index 000000000000..13a9cb1f9a37
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/noxfile.py
@@ -0,0 +1,280 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 os
+import pathlib
+import re
+import shutil
+import subprocess
+import sys
+
+
+import nox  # type: ignore
+
+ALL_PYTHON = [
+    "3.7",
+    "3.8",
+    "3.9",
+    "3.10",
+    "3.11",
+    "3.12",
+    "3.13",
+]
+
+CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()
+
+LOWER_BOUND_CONSTRAINTS_FILE = CURRENT_DIRECTORY / "constraints.txt"
+PACKAGE_NAME = 'google-cloud-run'
+
+BLACK_VERSION = "black==22.3.0"
+BLACK_PATHS = ["docs", "google", "tests", "samples", "noxfile.py", "setup.py"]
+DEFAULT_PYTHON_VERSION = "3.13"
+
+nox.sessions = [
+    "unit",
+    "cover",
+    "mypy",
+    "check_lower_bounds"
+    # exclude update_lower_bounds from default
+    "docs",
+    "blacken",
+    "lint",
+    "prerelease_deps",
+]
+
+@nox.session(python=ALL_PYTHON)
+@nox.parametrize(
+    "protobuf_implementation",
+    [ "python", "upb", "cpp" ],
+)
+def unit(session, protobuf_implementation):
+    """Run the unit test suite."""
+
+    if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):
+        session.skip("cpp implementation is not supported in python 3.11+")
+
+    session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"')
+    session.install('-e', '.', "-c", f"testing/constraints-{session.python}.txt")
+
+    # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped.
+    # The 'cpp' implementation requires Protobuf<4.
+    if protobuf_implementation == "cpp":
+        session.install("protobuf<4")
+
+    session.run(
+        'py.test',
+        '--quiet',
+        '--cov=google/cloud/run_v2/',
+        '--cov=tests/',
+        '--cov-config=.coveragerc',
+        '--cov-report=term',
+        '--cov-report=html',
+        os.path.join('tests', 'unit', ''.join(session.posargs)),
+        env={
+            "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation,
+        },
+    )
+
+@nox.session(python=ALL_PYTHON[-1])
+@nox.parametrize(
+    "protobuf_implementation",
+    [ "python", "upb", "cpp" ],
+)
+def prerelease_deps(session, protobuf_implementation):
+    """Run the unit test suite against pre-release versions of dependencies."""
+
+    if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):
+        session.skip("cpp implementation is not supported in python 3.11+")
+
+    # Install test environment dependencies
+    session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"')
+
+    # Install the package without dependencies
+    session.install('-e', '.', '--no-deps')
+
+    # We test the minimum dependency versions using the minimum Python
+    # version so the lowest python runtime that we test has a corresponding constraints
+    # file, located at `testing/constraints-<version>-.txt`,  which contains all of the
+    # dependencies and extras.
+    with open(
+        CURRENT_DIRECTORY
+        / "testing"
+        / f"constraints-{ALL_PYTHON[0]}.txt",
+        encoding="utf-8",
+    ) as constraints_file:
+        constraints_text = constraints_file.read()
+
+    # Ignore leading whitespace and comment lines.
+    constraints_deps = [
+        match.group(1)
+        for match in re.finditer(
+            r"^\s*(\S+)(?===\S+)", constraints_text, flags=re.MULTILINE
+        )
+    ]
+
+    session.install(*constraints_deps)
+
+    prerel_deps = [
+        "googleapis-common-protos",
+        "google-api-core",
+        "google-auth",
+        # Exclude grpcio!=1.67.0rc1 which does not support python 3.13
+        "grpcio!=1.67.0rc1",
+        "grpcio-status",
+        "protobuf",
+        "proto-plus",
+    ]
+
+    for dep in prerel_deps:
+        session.install("--pre", "--no-deps", "--upgrade", dep)
+
+    # Remaining dependencies
+    other_deps = [
+        "requests",
+    ]
+    session.install(*other_deps)
+
+    # Print out prerelease package versions
+
+    session.run("python", "-c", "import google.api_core; print(google.api_core.__version__)")
+    session.run("python", "-c", "import google.auth; print(google.auth.__version__)")
+    session.run("python", "-c", "import grpc; print(grpc.__version__)")
+    session.run(
+        "python", "-c", "import google.protobuf; print(google.protobuf.__version__)"
+    )
+    session.run(
+        "python", "-c", "import proto; print(proto.__version__)"
+    )
+
+    session.run(
+        'py.test',
+        '--quiet',
+        '--cov=google/cloud/run_v2/',
+        '--cov=tests/',
+        '--cov-config=.coveragerc',
+        '--cov-report=term',
+        '--cov-report=html',
+        os.path.join('tests', 'unit', ''.join(session.posargs)),
+        env={
+            "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation,
+        },
+    )
+
+
+@nox.session(python=DEFAULT_PYTHON_VERSION)
+def cover(session):
+    """Run the final coverage report.
+    This outputs the coverage report aggregating coverage from the unit
+    test runs (not system test runs), and then erases coverage data.
+    """
+    session.install("coverage", "pytest-cov")
+    session.run("coverage", "report", "--show-missing", "--fail-under=100")
+
+    session.run("coverage", "erase")
+
+
+@nox.session(python=ALL_PYTHON)
+def mypy(session):
+    """Run the type checker."""
+    session.install(
+        'mypy',
+        'types-requests',
+        'types-protobuf'
+    )
+    session.install('.')
+    session.run(
+        'mypy',
+        '-p',
+        'google',
+    )
+
+
+@nox.session
+def update_lower_bounds(session):
+    """Update lower bounds in constraints.txt to match setup.py"""
+    session.install('google-cloud-testutils')
+    session.install('.')
+
+    session.run(
+        'lower-bound-checker',
+        'update',
+        '--package-name',
+        PACKAGE_NAME,
+        '--constraints-file',
+        str(LOWER_BOUND_CONSTRAINTS_FILE),
+    )
+
+
+@nox.session
+def check_lower_bounds(session):
+    """Check lower bounds in setup.py are reflected in constraints file"""
+    session.install('google-cloud-testutils')
+    session.install('.')
+
+    session.run(
+        'lower-bound-checker',
+        'check',
+        '--package-name',
+        PACKAGE_NAME,
+        '--constraints-file',
+        str(LOWER_BOUND_CONSTRAINTS_FILE),
+    )
+
+@nox.session(python=DEFAULT_PYTHON_VERSION)
+def docs(session):
+    """Build the docs for this library."""
+
+    session.install("-e", ".")
+    session.install("sphinx==7.0.1", "alabaster", "recommonmark")
+
+    shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True)
+    session.run(
+        "sphinx-build",
+        "-W",  # warnings as errors
+        "-T",  # show full traceback on exception
+        "-N",  # no colors
+        "-b",
+        "html",
+        "-d",
+        os.path.join("docs", "_build", "doctrees", ""),
+        os.path.join("docs", ""),
+        os.path.join("docs", "_build", "html", ""),
+    )
+
+
+@nox.session(python=DEFAULT_PYTHON_VERSION)
+def lint(session):
+    """Run linters.
+
+    Returns a failure if the linters find linting errors or sufficiently
+    serious code quality issues.
+    """
+    session.install("flake8", BLACK_VERSION)
+    session.run(
+        "black",
+        "--check",
+        *BLACK_PATHS,
+    )
+    session.run("flake8", "google", "tests", "samples")
+
+
+@nox.session(python=DEFAULT_PYTHON_VERSION)
+def blacken(session):
+    """Run black. Format code to uniform standard."""
+    session.install(BLACK_VERSION)
+    session.run(
+        "black",
+        *BLACK_PATHS,
+    )
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_async.py
new file mode 100644
index 000000000000..a5a58398f493
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_async.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for SubmitBuild
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Builds_SubmitBuild_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_submit_build():
+    # Create a client
+    client = run_v2.BuildsAsyncClient()
+
+    # Initialize request argument(s)
+    storage_source = run_v2.StorageSource()
+    storage_source.bucket = "bucket_value"
+    storage_source.object_ = "object__value"
+
+    request = run_v2.SubmitBuildRequest(
+        storage_source=storage_source,
+        parent="parent_value",
+        image_uri="image_uri_value",
+    )
+
+    # Make the request
+    response = await client.submit_build(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Builds_SubmitBuild_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_sync.py
new file mode 100644
index 000000000000..17d11866d645
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_sync.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for SubmitBuild
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Builds_SubmitBuild_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_submit_build():
+    # Create a client
+    client = run_v2.BuildsClient()
+
+    # Initialize request argument(s)
+    storage_source = run_v2.StorageSource()
+    storage_source.bucket = "bucket_value"
+    storage_source.object_ = "object__value"
+
+    request = run_v2.SubmitBuildRequest(
+        storage_source=storage_source,
+        parent="parent_value",
+        image_uri="image_uri_value",
+    )
+
+    # Make the request
+    response = client.submit_build(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Builds_SubmitBuild_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_async.py
new file mode 100644
index 000000000000..badef7f1f4aa
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_async.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for CancelExecution
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Executions_CancelExecution_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_cancel_execution():
+    # Create a client
+    client = run_v2.ExecutionsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.CancelExecutionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.cancel_execution(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Executions_CancelExecution_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_sync.py
new file mode 100644
index 000000000000..ad1c216565ba
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_sync.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for CancelExecution
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Executions_CancelExecution_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_cancel_execution():
+    # Create a client
+    client = run_v2.ExecutionsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.CancelExecutionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.cancel_execution(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Executions_CancelExecution_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_async.py
new file mode 100644
index 000000000000..ea29a38fdf5a
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_async.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for DeleteExecution
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Executions_DeleteExecution_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_delete_execution():
+    # Create a client
+    client = run_v2.ExecutionsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.DeleteExecutionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.delete_execution(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Executions_DeleteExecution_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_sync.py
new file mode 100644
index 000000000000..60866ab562f9
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_sync.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for DeleteExecution
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Executions_DeleteExecution_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_delete_execution():
+    # Create a client
+    client = run_v2.ExecutionsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.DeleteExecutionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.delete_execution(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Executions_DeleteExecution_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_async.py
new file mode 100644
index 000000000000..e98e081cde1b
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_async.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetExecution
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Executions_GetExecution_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_get_execution():
+    # Create a client
+    client = run_v2.ExecutionsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetExecutionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = await client.get_execution(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Executions_GetExecution_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_sync.py
new file mode 100644
index 000000000000..038079bcc3b7
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_sync.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetExecution
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Executions_GetExecution_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_get_execution():
+    # Create a client
+    client = run_v2.ExecutionsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetExecutionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = client.get_execution(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Executions_GetExecution_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_async.py
new file mode 100644
index 000000000000..cd30dd68ab16
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListExecutions
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Executions_ListExecutions_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_list_executions():
+    # Create a client
+    client = run_v2.ExecutionsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListExecutionsRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_executions(request=request)
+
+    # Handle the response
+    async for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Executions_ListExecutions_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_sync.py
new file mode 100644
index 000000000000..e1b073a03351
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListExecutions
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Executions_ListExecutions_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_list_executions():
+    # Create a client
+    client = run_v2.ExecutionsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListExecutionsRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_executions(request=request)
+
+    # Handle the response
+    for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Executions_ListExecutions_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_async.py
new file mode 100644
index 000000000000..b734d8d64618
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_async.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for CreateJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_CreateJob_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_create_job():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    job = run_v2.Job()
+    job.start_execution_token = "start_execution_token_value"
+    job.template.template.max_retries = 1187
+
+    request = run_v2.CreateJobRequest(
+        parent="parent_value",
+        job=job,
+        job_id="job_id_value",
+    )
+
+    # Make the request
+    operation = client.create_job(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_CreateJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_sync.py
new file mode 100644
index 000000000000..5472e142193d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_sync.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for CreateJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_CreateJob_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_create_job():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    job = run_v2.Job()
+    job.start_execution_token = "start_execution_token_value"
+    job.template.template.max_retries = 1187
+
+    request = run_v2.CreateJobRequest(
+        parent="parent_value",
+        job=job,
+        job_id="job_id_value",
+    )
+
+    # Make the request
+    operation = client.create_job(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_CreateJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_async.py
new file mode 100644
index 000000000000..28c6c5e77d1e
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_async.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for DeleteJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_DeleteJob_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_delete_job():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.DeleteJobRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.delete_job(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_DeleteJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_sync.py
new file mode 100644
index 000000000000..2511a7e87f6b
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_sync.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for DeleteJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_DeleteJob_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_delete_job():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.DeleteJobRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.delete_job(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_DeleteJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_async.py
new file mode 100644
index 000000000000..cff3fa269c38
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetIamPolicy
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_GetIamPolicy_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+async def sample_get_iam_policy():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.GetIamPolicyRequest(
+        resource="resource_value",
+    )
+
+    # Make the request
+    response = await client.get_iam_policy(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_GetIamPolicy_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_sync.py
new file mode 100644
index 000000000000..3e6f4ff92763
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetIamPolicy
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_GetIamPolicy_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+def sample_get_iam_policy():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.GetIamPolicyRequest(
+        resource="resource_value",
+    )
+
+    # Make the request
+    response = client.get_iam_policy(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_GetIamPolicy_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_async.py
new file mode 100644
index 000000000000..04dc34bd572a
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_async.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_GetJob_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_get_job():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetJobRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = await client.get_job(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_GetJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_sync.py
new file mode 100644
index 000000000000..c32233106ff4
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_sync.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_GetJob_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_get_job():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetJobRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = client.get_job(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_GetJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_async.py
new file mode 100644
index 000000000000..d0182493deba
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListJobs
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_ListJobs_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_list_jobs():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListJobsRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_jobs(request=request)
+
+    # Handle the response
+    async for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Jobs_ListJobs_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_sync.py
new file mode 100644
index 000000000000..3e5f6dead459
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListJobs
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_ListJobs_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_list_jobs():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListJobsRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_jobs(request=request)
+
+    # Handle the response
+    for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Jobs_ListJobs_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_async.py
new file mode 100644
index 000000000000..56ac69aa9b34
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_async.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for RunJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_RunJob_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_run_job():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.RunJobRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.run_job(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_RunJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_sync.py
new file mode 100644
index 000000000000..2a1febcc204d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_sync.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for RunJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_RunJob_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_run_job():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.RunJobRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.run_job(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_RunJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_async.py
new file mode 100644
index 000000000000..26398cc28efd
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for SetIamPolicy
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_SetIamPolicy_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+async def sample_set_iam_policy():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.SetIamPolicyRequest(
+        resource="resource_value",
+    )
+
+    # Make the request
+    response = await client.set_iam_policy(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_SetIamPolicy_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_sync.py
new file mode 100644
index 000000000000..edc0a717dba0
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for SetIamPolicy
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_SetIamPolicy_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+def sample_set_iam_policy():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.SetIamPolicyRequest(
+        resource="resource_value",
+    )
+
+    # Make the request
+    response = client.set_iam_policy(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_SetIamPolicy_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_async.py
new file mode 100644
index 000000000000..1e2c88d9e52d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_async.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for TestIamPermissions
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_TestIamPermissions_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+async def sample_test_iam_permissions():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.TestIamPermissionsRequest(
+        resource="resource_value",
+        permissions=['permissions_value1', 'permissions_value2'],
+    )
+
+    # Make the request
+    response = await client.test_iam_permissions(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_TestIamPermissions_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_sync.py
new file mode 100644
index 000000000000..5fe6551b1491
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_sync.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for TestIamPermissions
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_TestIamPermissions_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+def sample_test_iam_permissions():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.TestIamPermissionsRequest(
+        resource="resource_value",
+        permissions=['permissions_value1', 'permissions_value2'],
+    )
+
+    # Make the request
+    response = client.test_iam_permissions(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_TestIamPermissions_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_async.py
new file mode 100644
index 000000000000..be2832cf54e5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_async.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for UpdateJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_UpdateJob_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_update_job():
+    # Create a client
+    client = run_v2.JobsAsyncClient()
+
+    # Initialize request argument(s)
+    job = run_v2.Job()
+    job.start_execution_token = "start_execution_token_value"
+    job.template.template.max_retries = 1187
+
+    request = run_v2.UpdateJobRequest(
+        job=job,
+    )
+
+    # Make the request
+    operation = client.update_job(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_UpdateJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_sync.py
new file mode 100644
index 000000000000..3fa185f4d430
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_sync.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for UpdateJob
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Jobs_UpdateJob_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_update_job():
+    # Create a client
+    client = run_v2.JobsClient()
+
+    # Initialize request argument(s)
+    job = run_v2.Job()
+    job.start_execution_token = "start_execution_token_value"
+    job.template.template.max_retries = 1187
+
+    request = run_v2.UpdateJobRequest(
+        job=job,
+    )
+
+    # Make the request
+    operation = client.update_job(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Jobs_UpdateJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_async.py
new file mode 100644
index 000000000000..91a76517fc9b
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_async.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for DeleteRevision
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Revisions_DeleteRevision_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_delete_revision():
+    # Create a client
+    client = run_v2.RevisionsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.DeleteRevisionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.delete_revision(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Revisions_DeleteRevision_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_sync.py
new file mode 100644
index 000000000000..ac2b5f5eb455
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_sync.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for DeleteRevision
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Revisions_DeleteRevision_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_delete_revision():
+    # Create a client
+    client = run_v2.RevisionsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.DeleteRevisionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.delete_revision(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Revisions_DeleteRevision_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_async.py
new file mode 100644
index 000000000000..c97f06b47583
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_async.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetRevision
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Revisions_GetRevision_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_get_revision():
+    # Create a client
+    client = run_v2.RevisionsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetRevisionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = await client.get_revision(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Revisions_GetRevision_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_sync.py
new file mode 100644
index 000000000000..c1d407bd364c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_sync.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetRevision
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Revisions_GetRevision_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_get_revision():
+    # Create a client
+    client = run_v2.RevisionsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetRevisionRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = client.get_revision(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Revisions_GetRevision_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_async.py
new file mode 100644
index 000000000000..63790358693f
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListRevisions
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Revisions_ListRevisions_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_list_revisions():
+    # Create a client
+    client = run_v2.RevisionsAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListRevisionsRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_revisions(request=request)
+
+    # Handle the response
+    async for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Revisions_ListRevisions_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_sync.py
new file mode 100644
index 000000000000..6f803529b2c0
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListRevisions
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Revisions_ListRevisions_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_list_revisions():
+    # Create a client
+    client = run_v2.RevisionsClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListRevisionsRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_revisions(request=request)
+
+    # Handle the response
+    for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Revisions_ListRevisions_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_async.py
new file mode 100644
index 000000000000..2696bfc2fb8c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_async.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for CreateService
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_CreateService_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_create_service():
+    # Create a client
+    client = run_v2.ServicesAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.CreateServiceRequest(
+        parent="parent_value",
+        service_id="service_id_value",
+    )
+
+    # Make the request
+    operation = client.create_service(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_CreateService_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_sync.py
new file mode 100644
index 000000000000..0122c9670ffb
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_sync.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for CreateService
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_CreateService_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_create_service():
+    # Create a client
+    client = run_v2.ServicesClient()
+
+    # Initialize request argument(s)
+    request = run_v2.CreateServiceRequest(
+        parent="parent_value",
+        service_id="service_id_value",
+    )
+
+    # Make the request
+    operation = client.create_service(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_CreateService_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_async.py
new file mode 100644
index 000000000000..efd8fb3011df
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_async.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for DeleteService
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_DeleteService_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_delete_service():
+    # Create a client
+    client = run_v2.ServicesAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.DeleteServiceRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.delete_service(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_DeleteService_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_sync.py
new file mode 100644
index 000000000000..5f417f9277cb
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_sync.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for DeleteService
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_DeleteService_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_delete_service():
+    # Create a client
+    client = run_v2.ServicesClient()
+
+    # Initialize request argument(s)
+    request = run_v2.DeleteServiceRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    operation = client.delete_service(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_DeleteService_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_async.py
new file mode 100644
index 000000000000..5bdbd0de8cc0
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetIamPolicy
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_GetIamPolicy_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+async def sample_get_iam_policy():
+    # Create a client
+    client = run_v2.ServicesAsyncClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.GetIamPolicyRequest(
+        resource="resource_value",
+    )
+
+    # Make the request
+    response = await client.get_iam_policy(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_GetIamPolicy_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_sync.py
new file mode 100644
index 000000000000..485987005460
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetIamPolicy
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_GetIamPolicy_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+def sample_get_iam_policy():
+    # Create a client
+    client = run_v2.ServicesClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.GetIamPolicyRequest(
+        resource="resource_value",
+    )
+
+    # Make the request
+    response = client.get_iam_policy(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_GetIamPolicy_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_async.py
new file mode 100644
index 000000000000..e27a5a20eed8
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_async.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetService
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_GetService_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_get_service():
+    # Create a client
+    client = run_v2.ServicesAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetServiceRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = await client.get_service(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_GetService_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_sync.py
new file mode 100644
index 000000000000..cf30a1bca4dd
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_sync.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetService
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_GetService_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_get_service():
+    # Create a client
+    client = run_v2.ServicesClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetServiceRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = client.get_service(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_GetService_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_async.py
new file mode 100644
index 000000000000..b566686c8aaa
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListServices
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_ListServices_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_list_services():
+    # Create a client
+    client = run_v2.ServicesAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListServicesRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_services(request=request)
+
+    # Handle the response
+    async for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Services_ListServices_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_sync.py
new file mode 100644
index 000000000000..6fe61a94d59a
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListServices
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_ListServices_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_list_services():
+    # Create a client
+    client = run_v2.ServicesClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListServicesRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_services(request=request)
+
+    # Handle the response
+    for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Services_ListServices_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_async.py
new file mode 100644
index 000000000000..cf9956dccce1
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for SetIamPolicy
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_SetIamPolicy_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+async def sample_set_iam_policy():
+    # Create a client
+    client = run_v2.ServicesAsyncClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.SetIamPolicyRequest(
+        resource="resource_value",
+    )
+
+    # Make the request
+    response = await client.set_iam_policy(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_SetIamPolicy_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_sync.py
new file mode 100644
index 000000000000..048f5918b93b
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for SetIamPolicy
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_SetIamPolicy_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+def sample_set_iam_policy():
+    # Create a client
+    client = run_v2.ServicesClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.SetIamPolicyRequest(
+        resource="resource_value",
+    )
+
+    # Make the request
+    response = client.set_iam_policy(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_SetIamPolicy_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_async.py
new file mode 100644
index 000000000000..dbe5caadba4f
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_async.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for TestIamPermissions
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_TestIamPermissions_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+async def sample_test_iam_permissions():
+    # Create a client
+    client = run_v2.ServicesAsyncClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.TestIamPermissionsRequest(
+        resource="resource_value",
+        permissions=['permissions_value1', 'permissions_value2'],
+    )
+
+    # Make the request
+    response = await client.test_iam_permissions(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_TestIamPermissions_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_sync.py
new file mode 100644
index 000000000000..0978c3e8e467
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_sync.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for TestIamPermissions
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_TestIamPermissions_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+
+
+def sample_test_iam_permissions():
+    # Create a client
+    client = run_v2.ServicesClient()
+
+    # Initialize request argument(s)
+    request = iam_policy_pb2.TestIamPermissionsRequest(
+        resource="resource_value",
+        permissions=['permissions_value1', 'permissions_value2'],
+    )
+
+    # Make the request
+    response = client.test_iam_permissions(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_TestIamPermissions_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_async.py
new file mode 100644
index 000000000000..9de05838e2e1
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_async.py
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for UpdateService
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_UpdateService_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_update_service():
+    # Create a client
+    client = run_v2.ServicesAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.UpdateServiceRequest(
+    )
+
+    # Make the request
+    operation = client.update_service(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = (await operation).result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_UpdateService_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_sync.py
new file mode 100644
index 000000000000..681f7120f73a
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_sync.py
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for UpdateService
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Services_UpdateService_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_update_service():
+    # Create a client
+    client = run_v2.ServicesClient()
+
+    # Initialize request argument(s)
+    request = run_v2.UpdateServiceRequest(
+    )
+
+    # Make the request
+    operation = client.update_service(request=request)
+
+    print("Waiting for operation to complete...")
+
+    response = operation.result()
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Services_UpdateService_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_async.py
new file mode 100644
index 000000000000..da35f41f0a9d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_async.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetTask
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Tasks_GetTask_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_get_task():
+    # Create a client
+    client = run_v2.TasksAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetTaskRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = await client.get_task(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Tasks_GetTask_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_sync.py
new file mode 100644
index 000000000000..6e0b116d372d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_sync.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for GetTask
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Tasks_GetTask_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_get_task():
+    # Create a client
+    client = run_v2.TasksClient()
+
+    # Initialize request argument(s)
+    request = run_v2.GetTaskRequest(
+        name="name_value",
+    )
+
+    # Make the request
+    response = client.get_task(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END run_v2_generated_Tasks_GetTask_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_async.py
new file mode 100644
index 000000000000..a4e3e4130d15
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListTasks
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Tasks_ListTasks_async]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+async def sample_list_tasks():
+    # Create a client
+    client = run_v2.TasksAsyncClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListTasksRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_tasks(request=request)
+
+    # Handle the response
+    async for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Tasks_ListTasks_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_sync.py
new file mode 100644
index 000000000000..053cd4ba0cec
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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.
+#
+# Generated code. DO NOT EDIT!
+#
+# Snippet for ListTasks
+# NOTE: This snippet has been automatically generated for illustrative purposes only.
+# It may require modifications to work in your environment.
+
+# To install the latest published package dependency, execute the following:
+#   python3 -m pip install google-cloud-run
+
+
+# [START run_v2_generated_Tasks_ListTasks_sync]
+# This snippet has been automatically generated and should be regarded as a
+# code template only.
+# It will require modifications to work:
+# - It may require correct/in-range values for request initialization.
+# - It may require specifying regional endpoints when creating the service
+#   client as shown in:
+#   https://googleapis.dev/python/google-api-core/latest/client_options.html
+from google.cloud import run_v2
+
+
+def sample_list_tasks():
+    # Create a client
+    client = run_v2.TasksClient()
+
+    # Initialize request argument(s)
+    request = run_v2.ListTasksRequest(
+        parent="parent_value",
+    )
+
+    # Make the request
+    page_result = client.list_tasks(request=request)
+
+    # Handle the response
+    for response in page_result:
+        print(response)
+
+# [END run_v2_generated_Tasks_ListTasks_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
new file mode 100644
index 000000000000..84a8ca294789
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
@@ -0,0 +1,4346 @@
+{
+  "clientLibrary": {
+    "apis": [
+      {
+        "id": "google.cloud.run.v2",
+        "version": "v2"
+      }
+    ],
+    "language": "PYTHON",
+    "name": "google-cloud-run",
+    "version": "0.1.0"
+  },
+  "snippets": [
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.BuildsAsyncClient",
+          "shortName": "BuildsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.BuildsAsyncClient.submit_build",
+        "method": {
+          "fullName": "google.cloud.run.v2.Builds.SubmitBuild",
+          "service": {
+            "fullName": "google.cloud.run.v2.Builds",
+            "shortName": "Builds"
+          },
+          "shortName": "SubmitBuild"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.SubmitBuildRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.SubmitBuildResponse",
+        "shortName": "submit_build"
+      },
+      "description": "Sample for SubmitBuild",
+      "file": "run_v2_generated_builds_submit_build_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Builds_SubmitBuild_async",
+      "segments": [
+        {
+          "end": 57,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 57,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 51,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 54,
+          "start": 52,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 58,
+          "start": 55,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_builds_submit_build_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.BuildsClient",
+          "shortName": "BuildsClient"
+        },
+        "fullName": "google.cloud.run_v2.BuildsClient.submit_build",
+        "method": {
+          "fullName": "google.cloud.run.v2.Builds.SubmitBuild",
+          "service": {
+            "fullName": "google.cloud.run.v2.Builds",
+            "shortName": "Builds"
+          },
+          "shortName": "SubmitBuild"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.SubmitBuildRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.SubmitBuildResponse",
+        "shortName": "submit_build"
+      },
+      "description": "Sample for SubmitBuild",
+      "file": "run_v2_generated_builds_submit_build_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Builds_SubmitBuild_sync",
+      "segments": [
+        {
+          "end": 57,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 57,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 51,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 54,
+          "start": 52,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 58,
+          "start": 55,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_builds_submit_build_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ExecutionsAsyncClient",
+          "shortName": "ExecutionsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ExecutionsAsyncClient.cancel_execution",
+        "method": {
+          "fullName": "google.cloud.run.v2.Executions.CancelExecution",
+          "service": {
+            "fullName": "google.cloud.run.v2.Executions",
+            "shortName": "Executions"
+          },
+          "shortName": "CancelExecution"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.CancelExecutionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "cancel_execution"
+      },
+      "description": "Sample for CancelExecution",
+      "file": "run_v2_generated_executions_cancel_execution_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Executions_CancelExecution_async",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_executions_cancel_execution_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ExecutionsClient",
+          "shortName": "ExecutionsClient"
+        },
+        "fullName": "google.cloud.run_v2.ExecutionsClient.cancel_execution",
+        "method": {
+          "fullName": "google.cloud.run.v2.Executions.CancelExecution",
+          "service": {
+            "fullName": "google.cloud.run.v2.Executions",
+            "shortName": "Executions"
+          },
+          "shortName": "CancelExecution"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.CancelExecutionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "cancel_execution"
+      },
+      "description": "Sample for CancelExecution",
+      "file": "run_v2_generated_executions_cancel_execution_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Executions_CancelExecution_sync",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_executions_cancel_execution_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ExecutionsAsyncClient",
+          "shortName": "ExecutionsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ExecutionsAsyncClient.delete_execution",
+        "method": {
+          "fullName": "google.cloud.run.v2.Executions.DeleteExecution",
+          "service": {
+            "fullName": "google.cloud.run.v2.Executions",
+            "shortName": "Executions"
+          },
+          "shortName": "DeleteExecution"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.DeleteExecutionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "delete_execution"
+      },
+      "description": "Sample for DeleteExecution",
+      "file": "run_v2_generated_executions_delete_execution_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Executions_DeleteExecution_async",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_executions_delete_execution_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ExecutionsClient",
+          "shortName": "ExecutionsClient"
+        },
+        "fullName": "google.cloud.run_v2.ExecutionsClient.delete_execution",
+        "method": {
+          "fullName": "google.cloud.run.v2.Executions.DeleteExecution",
+          "service": {
+            "fullName": "google.cloud.run.v2.Executions",
+            "shortName": "Executions"
+          },
+          "shortName": "DeleteExecution"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.DeleteExecutionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "delete_execution"
+      },
+      "description": "Sample for DeleteExecution",
+      "file": "run_v2_generated_executions_delete_execution_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Executions_DeleteExecution_sync",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_executions_delete_execution_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ExecutionsAsyncClient",
+          "shortName": "ExecutionsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ExecutionsAsyncClient.get_execution",
+        "method": {
+          "fullName": "google.cloud.run.v2.Executions.GetExecution",
+          "service": {
+            "fullName": "google.cloud.run.v2.Executions",
+            "shortName": "Executions"
+          },
+          "shortName": "GetExecution"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetExecutionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Execution",
+        "shortName": "get_execution"
+      },
+      "description": "Sample for GetExecution",
+      "file": "run_v2_generated_executions_get_execution_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Executions_GetExecution_async",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_executions_get_execution_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ExecutionsClient",
+          "shortName": "ExecutionsClient"
+        },
+        "fullName": "google.cloud.run_v2.ExecutionsClient.get_execution",
+        "method": {
+          "fullName": "google.cloud.run.v2.Executions.GetExecution",
+          "service": {
+            "fullName": "google.cloud.run.v2.Executions",
+            "shortName": "Executions"
+          },
+          "shortName": "GetExecution"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetExecutionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Execution",
+        "shortName": "get_execution"
+      },
+      "description": "Sample for GetExecution",
+      "file": "run_v2_generated_executions_get_execution_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Executions_GetExecution_sync",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_executions_get_execution_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ExecutionsAsyncClient",
+          "shortName": "ExecutionsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ExecutionsAsyncClient.list_executions",
+        "method": {
+          "fullName": "google.cloud.run.v2.Executions.ListExecutions",
+          "service": {
+            "fullName": "google.cloud.run.v2.Executions",
+            "shortName": "Executions"
+          },
+          "shortName": "ListExecutions"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListExecutionsRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.executions.pagers.ListExecutionsAsyncPager",
+        "shortName": "list_executions"
+      },
+      "description": "Sample for ListExecutions",
+      "file": "run_v2_generated_executions_list_executions_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Executions_ListExecutions_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_executions_list_executions_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ExecutionsClient",
+          "shortName": "ExecutionsClient"
+        },
+        "fullName": "google.cloud.run_v2.ExecutionsClient.list_executions",
+        "method": {
+          "fullName": "google.cloud.run.v2.Executions.ListExecutions",
+          "service": {
+            "fullName": "google.cloud.run.v2.Executions",
+            "shortName": "Executions"
+          },
+          "shortName": "ListExecutions"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListExecutionsRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.executions.pagers.ListExecutionsPager",
+        "shortName": "list_executions"
+      },
+      "description": "Sample for ListExecutions",
+      "file": "run_v2_generated_executions_list_executions_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Executions_ListExecutions_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_executions_list_executions_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.create_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.CreateJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "CreateJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.CreateJobRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "job",
+            "type": "google.cloud.run_v2.types.Job"
+          },
+          {
+            "name": "job_id",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "create_job"
+      },
+      "description": "Sample for CreateJob",
+      "file": "run_v2_generated_jobs_create_job_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_CreateJob_async",
+      "segments": [
+        {
+          "end": 61,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 61,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 51,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 58,
+          "start": 52,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 62,
+          "start": 59,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_create_job_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.create_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.CreateJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "CreateJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.CreateJobRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "job",
+            "type": "google.cloud.run_v2.types.Job"
+          },
+          {
+            "name": "job_id",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "create_job"
+      },
+      "description": "Sample for CreateJob",
+      "file": "run_v2_generated_jobs_create_job_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_CreateJob_sync",
+      "segments": [
+        {
+          "end": 61,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 61,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 51,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 58,
+          "start": 52,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 62,
+          "start": 59,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_create_job_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.delete_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.DeleteJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "DeleteJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.DeleteJobRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "delete_job"
+      },
+      "description": "Sample for DeleteJob",
+      "file": "run_v2_generated_jobs_delete_job_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_DeleteJob_async",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_delete_job_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.delete_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.DeleteJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "DeleteJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.DeleteJobRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "delete_job"
+      },
+      "description": "Sample for DeleteJob",
+      "file": "run_v2_generated_jobs_delete_job_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_DeleteJob_sync",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_delete_job_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.get_iam_policy",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.GetIamPolicy",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "GetIamPolicy"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.GetIamPolicyRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.policy_pb2.Policy",
+        "shortName": "get_iam_policy"
+      },
+      "description": "Sample for GetIamPolicy",
+      "file": "run_v2_generated_jobs_get_iam_policy_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_GetIamPolicy_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_get_iam_policy_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.get_iam_policy",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.GetIamPolicy",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "GetIamPolicy"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.GetIamPolicyRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.policy_pb2.Policy",
+        "shortName": "get_iam_policy"
+      },
+      "description": "Sample for GetIamPolicy",
+      "file": "run_v2_generated_jobs_get_iam_policy_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_GetIamPolicy_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_get_iam_policy_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.get_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.GetJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "GetJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetJobRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Job",
+        "shortName": "get_job"
+      },
+      "description": "Sample for GetJob",
+      "file": "run_v2_generated_jobs_get_job_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_GetJob_async",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_get_job_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.get_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.GetJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "GetJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetJobRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Job",
+        "shortName": "get_job"
+      },
+      "description": "Sample for GetJob",
+      "file": "run_v2_generated_jobs_get_job_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_GetJob_sync",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_get_job_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.list_jobs",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.ListJobs",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "ListJobs"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListJobsRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.jobs.pagers.ListJobsAsyncPager",
+        "shortName": "list_jobs"
+      },
+      "description": "Sample for ListJobs",
+      "file": "run_v2_generated_jobs_list_jobs_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_ListJobs_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_list_jobs_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.list_jobs",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.ListJobs",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "ListJobs"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListJobsRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.jobs.pagers.ListJobsPager",
+        "shortName": "list_jobs"
+      },
+      "description": "Sample for ListJobs",
+      "file": "run_v2_generated_jobs_list_jobs_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_ListJobs_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_list_jobs_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.run_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.RunJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "RunJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.RunJobRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "run_job"
+      },
+      "description": "Sample for RunJob",
+      "file": "run_v2_generated_jobs_run_job_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_RunJob_async",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_run_job_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.run_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.RunJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "RunJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.RunJobRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "run_job"
+      },
+      "description": "Sample for RunJob",
+      "file": "run_v2_generated_jobs_run_job_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_RunJob_sync",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_run_job_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.set_iam_policy",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.SetIamPolicy",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "SetIamPolicy"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.SetIamPolicyRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.policy_pb2.Policy",
+        "shortName": "set_iam_policy"
+      },
+      "description": "Sample for SetIamPolicy",
+      "file": "run_v2_generated_jobs_set_iam_policy_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_SetIamPolicy_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_set_iam_policy_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.set_iam_policy",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.SetIamPolicy",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "SetIamPolicy"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.SetIamPolicyRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.policy_pb2.Policy",
+        "shortName": "set_iam_policy"
+      },
+      "description": "Sample for SetIamPolicy",
+      "file": "run_v2_generated_jobs_set_iam_policy_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_SetIamPolicy_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_set_iam_policy_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.test_iam_permissions",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.TestIamPermissions",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "TestIamPermissions"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse",
+        "shortName": "test_iam_permissions"
+      },
+      "description": "Sample for TestIamPermissions",
+      "file": "run_v2_generated_jobs_test_iam_permissions_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_TestIamPermissions_async",
+      "segments": [
+        {
+          "end": 53,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 53,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 47,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 50,
+          "start": 48,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 54,
+          "start": 51,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_test_iam_permissions_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.test_iam_permissions",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.TestIamPermissions",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "TestIamPermissions"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse",
+        "shortName": "test_iam_permissions"
+      },
+      "description": "Sample for TestIamPermissions",
+      "file": "run_v2_generated_jobs_test_iam_permissions_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_TestIamPermissions_sync",
+      "segments": [
+        {
+          "end": 53,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 53,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 47,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 50,
+          "start": 48,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 54,
+          "start": 51,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_test_iam_permissions_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsAsyncClient",
+          "shortName": "JobsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsAsyncClient.update_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.UpdateJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "UpdateJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.UpdateJobRequest"
+          },
+          {
+            "name": "job",
+            "type": "google.cloud.run_v2.types.Job"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "update_job"
+      },
+      "description": "Sample for UpdateJob",
+      "file": "run_v2_generated_jobs_update_job_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_UpdateJob_async",
+      "segments": [
+        {
+          "end": 59,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 59,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 56,
+          "start": 50,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 60,
+          "start": 57,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_update_job_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.JobsClient",
+          "shortName": "JobsClient"
+        },
+        "fullName": "google.cloud.run_v2.JobsClient.update_job",
+        "method": {
+          "fullName": "google.cloud.run.v2.Jobs.UpdateJob",
+          "service": {
+            "fullName": "google.cloud.run.v2.Jobs",
+            "shortName": "Jobs"
+          },
+          "shortName": "UpdateJob"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.UpdateJobRequest"
+          },
+          {
+            "name": "job",
+            "type": "google.cloud.run_v2.types.Job"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "update_job"
+      },
+      "description": "Sample for UpdateJob",
+      "file": "run_v2_generated_jobs_update_job_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Jobs_UpdateJob_sync",
+      "segments": [
+        {
+          "end": 59,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 59,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 56,
+          "start": 50,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 60,
+          "start": 57,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_jobs_update_job_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.RevisionsAsyncClient",
+          "shortName": "RevisionsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.RevisionsAsyncClient.delete_revision",
+        "method": {
+          "fullName": "google.cloud.run.v2.Revisions.DeleteRevision",
+          "service": {
+            "fullName": "google.cloud.run.v2.Revisions",
+            "shortName": "Revisions"
+          },
+          "shortName": "DeleteRevision"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.DeleteRevisionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "delete_revision"
+      },
+      "description": "Sample for DeleteRevision",
+      "file": "run_v2_generated_revisions_delete_revision_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Revisions_DeleteRevision_async",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_revisions_delete_revision_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.RevisionsClient",
+          "shortName": "RevisionsClient"
+        },
+        "fullName": "google.cloud.run_v2.RevisionsClient.delete_revision",
+        "method": {
+          "fullName": "google.cloud.run.v2.Revisions.DeleteRevision",
+          "service": {
+            "fullName": "google.cloud.run.v2.Revisions",
+            "shortName": "Revisions"
+          },
+          "shortName": "DeleteRevision"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.DeleteRevisionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "delete_revision"
+      },
+      "description": "Sample for DeleteRevision",
+      "file": "run_v2_generated_revisions_delete_revision_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Revisions_DeleteRevision_sync",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_revisions_delete_revision_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.RevisionsAsyncClient",
+          "shortName": "RevisionsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.RevisionsAsyncClient.get_revision",
+        "method": {
+          "fullName": "google.cloud.run.v2.Revisions.GetRevision",
+          "service": {
+            "fullName": "google.cloud.run.v2.Revisions",
+            "shortName": "Revisions"
+          },
+          "shortName": "GetRevision"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetRevisionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Revision",
+        "shortName": "get_revision"
+      },
+      "description": "Sample for GetRevision",
+      "file": "run_v2_generated_revisions_get_revision_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Revisions_GetRevision_async",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_revisions_get_revision_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.RevisionsClient",
+          "shortName": "RevisionsClient"
+        },
+        "fullName": "google.cloud.run_v2.RevisionsClient.get_revision",
+        "method": {
+          "fullName": "google.cloud.run.v2.Revisions.GetRevision",
+          "service": {
+            "fullName": "google.cloud.run.v2.Revisions",
+            "shortName": "Revisions"
+          },
+          "shortName": "GetRevision"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetRevisionRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Revision",
+        "shortName": "get_revision"
+      },
+      "description": "Sample for GetRevision",
+      "file": "run_v2_generated_revisions_get_revision_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Revisions_GetRevision_sync",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_revisions_get_revision_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.RevisionsAsyncClient",
+          "shortName": "RevisionsAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.RevisionsAsyncClient.list_revisions",
+        "method": {
+          "fullName": "google.cloud.run.v2.Revisions.ListRevisions",
+          "service": {
+            "fullName": "google.cloud.run.v2.Revisions",
+            "shortName": "Revisions"
+          },
+          "shortName": "ListRevisions"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListRevisionsRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.revisions.pagers.ListRevisionsAsyncPager",
+        "shortName": "list_revisions"
+      },
+      "description": "Sample for ListRevisions",
+      "file": "run_v2_generated_revisions_list_revisions_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Revisions_ListRevisions_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_revisions_list_revisions_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.RevisionsClient",
+          "shortName": "RevisionsClient"
+        },
+        "fullName": "google.cloud.run_v2.RevisionsClient.list_revisions",
+        "method": {
+          "fullName": "google.cloud.run.v2.Revisions.ListRevisions",
+          "service": {
+            "fullName": "google.cloud.run.v2.Revisions",
+            "shortName": "Revisions"
+          },
+          "shortName": "ListRevisions"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListRevisionsRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.revisions.pagers.ListRevisionsPager",
+        "shortName": "list_revisions"
+      },
+      "description": "Sample for ListRevisions",
+      "file": "run_v2_generated_revisions_list_revisions_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Revisions_ListRevisions_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_revisions_list_revisions_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
+          "shortName": "ServicesAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesAsyncClient.create_service",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.CreateService",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "CreateService"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.CreateServiceRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "service",
+            "type": "google.cloud.run_v2.types.Service"
+          },
+          {
+            "name": "service_id",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "create_service"
+      },
+      "description": "Sample for CreateService",
+      "file": "run_v2_generated_services_create_service_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_CreateService_async",
+      "segments": [
+        {
+          "end": 56,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 56,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 53,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 57,
+          "start": 54,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_create_service_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesClient",
+          "shortName": "ServicesClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesClient.create_service",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.CreateService",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "CreateService"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.CreateServiceRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "service",
+            "type": "google.cloud.run_v2.types.Service"
+          },
+          {
+            "name": "service_id",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "create_service"
+      },
+      "description": "Sample for CreateService",
+      "file": "run_v2_generated_services_create_service_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_CreateService_sync",
+      "segments": [
+        {
+          "end": 56,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 56,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 53,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 57,
+          "start": 54,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_create_service_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
+          "shortName": "ServicesAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesAsyncClient.delete_service",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.DeleteService",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "DeleteService"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.DeleteServiceRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "delete_service"
+      },
+      "description": "Sample for DeleteService",
+      "file": "run_v2_generated_services_delete_service_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_DeleteService_async",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_delete_service_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesClient",
+          "shortName": "ServicesClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesClient.delete_service",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.DeleteService",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "DeleteService"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.DeleteServiceRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "delete_service"
+      },
+      "description": "Sample for DeleteService",
+      "file": "run_v2_generated_services_delete_service_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_DeleteService_sync",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_delete_service_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
+          "shortName": "ServicesAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesAsyncClient.get_iam_policy",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.GetIamPolicy",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "GetIamPolicy"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.GetIamPolicyRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.policy_pb2.Policy",
+        "shortName": "get_iam_policy"
+      },
+      "description": "Sample for GetIamPolicy",
+      "file": "run_v2_generated_services_get_iam_policy_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_GetIamPolicy_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_get_iam_policy_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesClient",
+          "shortName": "ServicesClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesClient.get_iam_policy",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.GetIamPolicy",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "GetIamPolicy"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.GetIamPolicyRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.policy_pb2.Policy",
+        "shortName": "get_iam_policy"
+      },
+      "description": "Sample for GetIamPolicy",
+      "file": "run_v2_generated_services_get_iam_policy_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_GetIamPolicy_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_get_iam_policy_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
+          "shortName": "ServicesAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesAsyncClient.get_service",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.GetService",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "GetService"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetServiceRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Service",
+        "shortName": "get_service"
+      },
+      "description": "Sample for GetService",
+      "file": "run_v2_generated_services_get_service_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_GetService_async",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_get_service_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesClient",
+          "shortName": "ServicesClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesClient.get_service",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.GetService",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "GetService"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetServiceRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Service",
+        "shortName": "get_service"
+      },
+      "description": "Sample for GetService",
+      "file": "run_v2_generated_services_get_service_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_GetService_sync",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_get_service_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
+          "shortName": "ServicesAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesAsyncClient.list_services",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.ListServices",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "ListServices"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListServicesRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.services.pagers.ListServicesAsyncPager",
+        "shortName": "list_services"
+      },
+      "description": "Sample for ListServices",
+      "file": "run_v2_generated_services_list_services_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_ListServices_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_list_services_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesClient",
+          "shortName": "ServicesClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesClient.list_services",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.ListServices",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "ListServices"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListServicesRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.services.pagers.ListServicesPager",
+        "shortName": "list_services"
+      },
+      "description": "Sample for ListServices",
+      "file": "run_v2_generated_services_list_services_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_ListServices_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_list_services_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
+          "shortName": "ServicesAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesAsyncClient.set_iam_policy",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.SetIamPolicy",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "SetIamPolicy"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.SetIamPolicyRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.policy_pb2.Policy",
+        "shortName": "set_iam_policy"
+      },
+      "description": "Sample for SetIamPolicy",
+      "file": "run_v2_generated_services_set_iam_policy_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_SetIamPolicy_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_set_iam_policy_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesClient",
+          "shortName": "ServicesClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesClient.set_iam_policy",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.SetIamPolicy",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "SetIamPolicy"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.SetIamPolicyRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.policy_pb2.Policy",
+        "shortName": "set_iam_policy"
+      },
+      "description": "Sample for SetIamPolicy",
+      "file": "run_v2_generated_services_set_iam_policy_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_SetIamPolicy_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_set_iam_policy_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
+          "shortName": "ServicesAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesAsyncClient.test_iam_permissions",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.TestIamPermissions",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "TestIamPermissions"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse",
+        "shortName": "test_iam_permissions"
+      },
+      "description": "Sample for TestIamPermissions",
+      "file": "run_v2_generated_services_test_iam_permissions_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_TestIamPermissions_async",
+      "segments": [
+        {
+          "end": 53,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 53,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 47,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 50,
+          "start": 48,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 54,
+          "start": 51,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_test_iam_permissions_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesClient",
+          "shortName": "ServicesClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesClient.test_iam_permissions",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.TestIamPermissions",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "TestIamPermissions"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse",
+        "shortName": "test_iam_permissions"
+      },
+      "description": "Sample for TestIamPermissions",
+      "file": "run_v2_generated_services_test_iam_permissions_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_TestIamPermissions_sync",
+      "segments": [
+        {
+          "end": 53,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 53,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 41,
+          "start": 39,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 47,
+          "start": 42,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 50,
+          "start": 48,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 54,
+          "start": 51,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_test_iam_permissions_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
+          "shortName": "ServicesAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesAsyncClient.update_service",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.UpdateService",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "UpdateService"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.UpdateServiceRequest"
+          },
+          {
+            "name": "service",
+            "type": "google.cloud.run_v2.types.Service"
+          },
+          {
+            "name": "update_mask",
+            "type": "google.protobuf.field_mask_pb2.FieldMask"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation_async.AsyncOperation",
+        "shortName": "update_service"
+      },
+      "description": "Sample for UpdateService",
+      "file": "run_v2_generated_services_update_service_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_UpdateService_async",
+      "segments": [
+        {
+          "end": 54,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 54,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 44,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 51,
+          "start": 45,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 55,
+          "start": 52,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_update_service_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.ServicesClient",
+          "shortName": "ServicesClient"
+        },
+        "fullName": "google.cloud.run_v2.ServicesClient.update_service",
+        "method": {
+          "fullName": "google.cloud.run.v2.Services.UpdateService",
+          "service": {
+            "fullName": "google.cloud.run.v2.Services",
+            "shortName": "Services"
+          },
+          "shortName": "UpdateService"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.UpdateServiceRequest"
+          },
+          {
+            "name": "service",
+            "type": "google.cloud.run_v2.types.Service"
+          },
+          {
+            "name": "update_mask",
+            "type": "google.protobuf.field_mask_pb2.FieldMask"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.api_core.operation.Operation",
+        "shortName": "update_service"
+      },
+      "description": "Sample for UpdateService",
+      "file": "run_v2_generated_services_update_service_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Services_UpdateService_sync",
+      "segments": [
+        {
+          "end": 54,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 54,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 44,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 51,
+          "start": 45,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 55,
+          "start": 52,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_services_update_service_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.TasksAsyncClient",
+          "shortName": "TasksAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.TasksAsyncClient.get_task",
+        "method": {
+          "fullName": "google.cloud.run.v2.Tasks.GetTask",
+          "service": {
+            "fullName": "google.cloud.run.v2.Tasks",
+            "shortName": "Tasks"
+          },
+          "shortName": "GetTask"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetTaskRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Task",
+        "shortName": "get_task"
+      },
+      "description": "Sample for GetTask",
+      "file": "run_v2_generated_tasks_get_task_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Tasks_GetTask_async",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_tasks_get_task_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.TasksClient",
+          "shortName": "TasksClient"
+        },
+        "fullName": "google.cloud.run_v2.TasksClient.get_task",
+        "method": {
+          "fullName": "google.cloud.run.v2.Tasks.GetTask",
+          "service": {
+            "fullName": "google.cloud.run.v2.Tasks",
+            "shortName": "Tasks"
+          },
+          "shortName": "GetTask"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.GetTaskRequest"
+          },
+          {
+            "name": "name",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.types.Task",
+        "shortName": "get_task"
+      },
+      "description": "Sample for GetTask",
+      "file": "run_v2_generated_tasks_get_task_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Tasks_GetTask_sync",
+      "segments": [
+        {
+          "end": 51,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 51,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 52,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_tasks_get_task_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.run_v2.TasksAsyncClient",
+          "shortName": "TasksAsyncClient"
+        },
+        "fullName": "google.cloud.run_v2.TasksAsyncClient.list_tasks",
+        "method": {
+          "fullName": "google.cloud.run.v2.Tasks.ListTasks",
+          "service": {
+            "fullName": "google.cloud.run.v2.Tasks",
+            "shortName": "Tasks"
+          },
+          "shortName": "ListTasks"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListTasksRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.tasks.pagers.ListTasksAsyncPager",
+        "shortName": "list_tasks"
+      },
+      "description": "Sample for ListTasks",
+      "file": "run_v2_generated_tasks_list_tasks_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Tasks_ListTasks_async",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_tasks_list_tasks_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.run_v2.TasksClient",
+          "shortName": "TasksClient"
+        },
+        "fullName": "google.cloud.run_v2.TasksClient.list_tasks",
+        "method": {
+          "fullName": "google.cloud.run.v2.Tasks.ListTasks",
+          "service": {
+            "fullName": "google.cloud.run.v2.Tasks",
+            "shortName": "Tasks"
+          },
+          "shortName": "ListTasks"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.run_v2.types.ListTasksRequest"
+          },
+          {
+            "name": "parent",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.run_v2.services.tasks.pagers.ListTasksPager",
+        "shortName": "list_tasks"
+      },
+      "description": "Sample for ListTasks",
+      "file": "run_v2_generated_tasks_list_tasks_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "run_v2_generated_Tasks_ListTasks_sync",
+      "segments": [
+        {
+          "end": 52,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 52,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 45,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 48,
+          "start": 46,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 53,
+          "start": 49,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "run_v2_generated_tasks_list_tasks_sync.py"
+    }
+  ]
+}
diff --git a/owl-bot-staging/google-cloud-run/v2/scripts/fixup_run_v2_keywords.py b/owl-bot-staging/google-cloud-run/v2/scripts/fixup_run_v2_keywords.py
new file mode 100644
index 000000000000..84f0f0b13518
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/scripts/fixup_run_v2_keywords.py
@@ -0,0 +1,199 @@
+#! /usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 argparse
+import os
+import libcst as cst
+import pathlib
+import sys
+from typing import (Any, Callable, Dict, List, Sequence, Tuple)
+
+
+def partition(
+    predicate: Callable[[Any], bool],
+    iterator: Sequence[Any]
+) -> Tuple[List[Any], List[Any]]:
+    """A stable, out-of-place partition."""
+    results = ([], [])
+
+    for i in iterator:
+        results[int(predicate(i))].append(i)
+
+    # Returns trueList, falseList
+    return results[1], results[0]
+
+
+class runCallTransformer(cst.CSTTransformer):
+    CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata')
+    METHOD_TO_PARAMS: Dict[str, Tuple[str]] = {
+        'cancel_execution': ('name', 'validate_only', 'etag', ),
+        'create_job': ('parent', 'job', 'job_id', 'validate_only', ),
+        'create_service': ('parent', 'service', 'service_id', 'validate_only', ),
+        'delete_execution': ('name', 'validate_only', 'etag', ),
+        'delete_job': ('name', 'validate_only', 'etag', ),
+        'delete_revision': ('name', 'validate_only', 'etag', ),
+        'delete_service': ('name', 'validate_only', 'etag', ),
+        'get_execution': ('name', ),
+        'get_iam_policy': ('resource', 'options', ),
+        'get_job': ('name', ),
+        'get_revision': ('name', ),
+        'get_service': ('name', ),
+        'get_task': ('name', ),
+        'list_executions': ('parent', 'page_size', 'page_token', 'show_deleted', ),
+        'list_jobs': ('parent', 'page_size', 'page_token', 'show_deleted', ),
+        'list_revisions': ('parent', 'page_size', 'page_token', 'show_deleted', ),
+        'list_services': ('parent', 'page_size', 'page_token', 'show_deleted', ),
+        'list_tasks': ('parent', 'page_size', 'page_token', 'show_deleted', ),
+        'run_job': ('name', 'validate_only', 'etag', 'overrides', ),
+        'set_iam_policy': ('resource', 'policy', 'update_mask', ),
+        'submit_build': ('parent', 'storage_source', 'image_uri', 'buildpack_build', 'docker_build', 'service_account', 'worker_pool', 'tags', ),
+        'test_iam_permissions': ('resource', 'permissions', ),
+        'update_job': ('job', 'validate_only', 'allow_missing', ),
+        'update_service': ('service', 'update_mask', 'validate_only', 'allow_missing', ),
+    }
+
+    def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode:
+        try:
+            key = original.func.attr.value
+            kword_params = self.METHOD_TO_PARAMS[key]
+        except (AttributeError, KeyError):
+            # Either not a method from the API or too convoluted to be sure.
+            return updated
+
+        # If the existing code is valid, keyword args come after positional args.
+        # Therefore, all positional args must map to the first parameters.
+        args, kwargs = partition(lambda a: not bool(a.keyword), updated.args)
+        if any(k.keyword.value == "request" for k in kwargs):
+            # We've already fixed this file, don't fix it again.
+            return updated
+
+        kwargs, ctrl_kwargs = partition(
+            lambda a: a.keyword.value not in self.CTRL_PARAMS,
+            kwargs
+        )
+
+        args, ctrl_args = args[:len(kword_params)], args[len(kword_params):]
+        ctrl_kwargs.extend(cst.Arg(value=a.value, keyword=cst.Name(value=ctrl))
+                           for a, ctrl in zip(ctrl_args, self.CTRL_PARAMS))
+
+        request_arg = cst.Arg(
+            value=cst.Dict([
+                cst.DictElement(
+                    cst.SimpleString("'{}'".format(name)),
+cst.Element(value=arg.value)
+                )
+                # Note: the args + kwargs looks silly, but keep in mind that
+                # the control parameters had to be stripped out, and that
+                # those could have been passed positionally or by keyword.
+                for name, arg in zip(kword_params, args + kwargs)]),
+            keyword=cst.Name("request")
+        )
+
+        return updated.with_changes(
+            args=[request_arg] + ctrl_kwargs
+        )
+
+
+def fix_files(
+    in_dir: pathlib.Path,
+    out_dir: pathlib.Path,
+    *,
+    transformer=runCallTransformer(),
+):
+    """Duplicate the input dir to the output dir, fixing file method calls.
+
+    Preconditions:
+    * in_dir is a real directory
+    * out_dir is a real, empty directory
+    """
+    pyfile_gen = (
+        pathlib.Path(os.path.join(root, f))
+        for root, _, files in os.walk(in_dir)
+        for f in files if os.path.splitext(f)[1] == ".py"
+    )
+
+    for fpath in pyfile_gen:
+        with open(fpath, 'r') as f:
+            src = f.read()
+
+        # Parse the code and insert method call fixes.
+        tree = cst.parse_module(src)
+        updated = tree.visit(transformer)
+
+        # Create the path and directory structure for the new file.
+        updated_path = out_dir.joinpath(fpath.relative_to(in_dir))
+        updated_path.parent.mkdir(parents=True, exist_ok=True)
+
+        # Generate the updated source file at the corresponding path.
+        with open(updated_path, 'w') as f:
+            f.write(updated.code)
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(
+        description="""Fix up source that uses the run client library.
+
+The existing sources are NOT overwritten but are copied to output_dir with changes made.
+
+Note: This tool operates at a best-effort level at converting positional
+      parameters in client method calls to keyword based parameters.
+      Cases where it WILL FAIL include
+      A) * or ** expansion in a method call.
+      B) Calls via function or method alias (includes free function calls)
+      C) Indirect or dispatched calls (e.g. the method is looked up dynamically)
+
+      These all constitute false negatives. The tool will also detect false
+      positives when an API method shares a name with another method.
+""")
+    parser.add_argument(
+        '-d',
+        '--input-directory',
+        required=True,
+        dest='input_dir',
+        help='the input directory to walk for python files to fix up',
+    )
+    parser.add_argument(
+        '-o',
+        '--output-directory',
+        required=True,
+        dest='output_dir',
+        help='the directory to output files fixed via un-flattening',
+    )
+    args = parser.parse_args()
+    input_dir = pathlib.Path(args.input_dir)
+    output_dir = pathlib.Path(args.output_dir)
+    if not input_dir.is_dir():
+        print(
+            f"input directory '{input_dir}' does not exist or is not a directory",
+            file=sys.stderr,
+        )
+        sys.exit(-1)
+
+    if not output_dir.is_dir():
+        print(
+            f"output directory '{output_dir}' does not exist or is not a directory",
+            file=sys.stderr,
+        )
+        sys.exit(-1)
+
+    if os.listdir(output_dir):
+        print(
+            f"output directory '{output_dir}' is not empty",
+            file=sys.stderr,
+        )
+        sys.exit(-1)
+
+    fix_files(input_dir, output_dir)
diff --git a/owl-bot-staging/google-cloud-run/v2/setup.py b/owl-bot-staging/google-cloud-run/v2/setup.py
new file mode 100644
index 000000000000..c5e3a15ad773
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/setup.py
@@ -0,0 +1,99 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 io
+import os
+import re
+
+import setuptools # type: ignore
+
+package_root = os.path.abspath(os.path.dirname(__file__))
+
+name = 'google-cloud-run'
+
+
+description = "Google Cloud Run API client library"
+
+version = None
+
+with open(os.path.join(package_root, 'google/cloud/run/gapic_version.py')) as fp:
+    version_candidates = re.findall(r"(?<=\")\d+.\d+.\d+(?=\")", fp.read())
+    assert (len(version_candidates) == 1)
+    version = version_candidates[0]
+
+if version[0] == "0":
+    release_status = "Development Status :: 4 - Beta"
+else:
+    release_status = "Development Status :: 5 - Production/Stable"
+
+dependencies = [
+    "google-api-core[grpc] >= 1.34.1, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*",
+    # Exclude incompatible versions of `google-auth`
+    # See https://github.com/googleapis/google-cloud-python/issues/12364
+    "google-auth >= 2.14.1, <3.0.0dev,!=2.24.0,!=2.25.0",
+    "proto-plus >= 1.22.3, <2.0.0dev",
+    "proto-plus >= 1.25.0, <2.0.0dev; python_version >= '3.13'",
+    "protobuf>=3.20.2,<6.0.0dev,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
+    "grpc-google-iam-v1 >= 0.12.4, <1.0.0dev",
+]
+extras = {
+}
+url = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-run"
+
+package_root = os.path.abspath(os.path.dirname(__file__))
+
+readme_filename = os.path.join(package_root, "README.rst")
+with io.open(readme_filename, encoding="utf-8") as readme_file:
+    readme = readme_file.read()
+
+packages = [
+    package
+    for package in setuptools.find_namespace_packages()
+    if package.startswith("google")
+]
+
+setuptools.setup(
+    name=name,
+    version=version,
+    description=description,
+    long_description=readme,
+    author="Google LLC",
+    author_email="googleapis-packages@google.com",
+    license="Apache 2.0",
+    url=url,
+    classifiers=[
+        release_status,
+        "Intended Audience :: Developers",
+        "License :: OSI Approved :: Apache Software License",
+        "Programming Language :: Python",
+        "Programming Language :: Python :: 3",
+        "Programming Language :: Python :: 3.7",
+        "Programming Language :: Python :: 3.8",
+        "Programming Language :: Python :: 3.9",
+        "Programming Language :: Python :: 3.10",
+        "Programming Language :: Python :: 3.11",
+        "Programming Language :: Python :: 3.12",
+        "Programming Language :: Python :: 3.13",
+        "Operating System :: OS Independent",
+        "Topic :: Internet",
+    ],
+    platforms="Posix; MacOS X; Windows",
+    packages=packages,
+    python_requires=">=3.7",
+    install_requires=dependencies,
+    extras_require=extras,
+    include_package_data=True,
+    zip_safe=False,
+)
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.10.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.10.txt
new file mode 100644
index 000000000000..ad3f0fa58e2d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.10.txt
@@ -0,0 +1,7 @@
+# -*- 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
+grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.11.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.11.txt
new file mode 100644
index 000000000000..ad3f0fa58e2d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.11.txt
@@ -0,0 +1,7 @@
+# -*- 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
+grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.12.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.12.txt
new file mode 100644
index 000000000000..ad3f0fa58e2d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.12.txt
@@ -0,0 +1,7 @@
+# -*- 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
+grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.13.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.13.txt
new file mode 100644
index 000000000000..ad3f0fa58e2d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.13.txt
@@ -0,0 +1,7 @@
+# -*- 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
+grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.7.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.7.txt
new file mode 100644
index 000000000000..a81fb6bcd05c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.7.txt
@@ -0,0 +1,11 @@
+# This constraints file is used to check that lower bounds
+# are correct in setup.py
+# List all library dependencies and extras in this file.
+# Pin the version to the lower bound.
+# 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.34.1
+google-auth==2.14.1
+proto-plus==1.22.3
+protobuf==3.20.2
+grpc-google-iam-v1==0.12.4
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.8.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.8.txt
new file mode 100644
index 000000000000..ad3f0fa58e2d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.8.txt
@@ -0,0 +1,7 @@
+# -*- 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
+grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.9.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.9.txt
new file mode 100644
index 000000000000..ad3f0fa58e2d
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.9.txt
@@ -0,0 +1,7 @@
+# -*- 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
+grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/__init__.py b/owl-bot-staging/google-cloud-run/v2/tests/__init__.py
new file mode 100644
index 000000000000..7b3de3117f38
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/__init__.py
@@ -0,0 +1,16 @@
+
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/__init__.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/__init__.py
new file mode 100644
index 000000000000..7b3de3117f38
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/__init__.py
@@ -0,0 +1,16 @@
+
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/__init__.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/__init__.py
new file mode 100644
index 000000000000..7b3de3117f38
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/__init__.py
@@ -0,0 +1,16 @@
+
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/__init__.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/__init__.py
new file mode 100644
index 000000000000..7b3de3117f38
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/__init__.py
@@ -0,0 +1,16 @@
+
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_builds.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_builds.py
new file mode 100644
index 000000000000..cd1505140bd5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_builds.py
@@ -0,0 +1,2690 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 os
+# try/except added for compatibility with python < 3.8
+try:
+    from unittest import mock
+    from unittest.mock import AsyncMock  # pragma: NO COVER
+except ImportError:  # pragma: NO COVER
+    import mock
+
+import grpc
+from grpc.experimental import aio
+from collections.abc import Iterable, AsyncIterable
+from google.protobuf import json_format
+import json
+import math
+import pytest
+from google.api_core import api_core_version
+from proto.marshal.rules.dates import DurationRule, TimestampRule
+from proto.marshal.rules import wrappers
+from requests import Response
+from requests import Request, PreparedRequest
+from requests.sessions import Session
+from google.protobuf import json_format
+
+try:
+    from google.auth.aio import credentials as ga_credentials_async
+    HAS_GOOGLE_AUTH_AIO = True
+except ImportError: # pragma: NO COVER
+    HAS_GOOGLE_AUTH_AIO = False
+
+from google.api_core import client_options
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers
+from google.api_core import grpc_helpers_async
+from google.api_core import path_template
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.location import locations_pb2
+from google.cloud.run_v2.services.builds import BuildsAsyncClient
+from google.cloud.run_v2.services.builds import BuildsClient
+from google.cloud.run_v2.services.builds import transports
+from google.cloud.run_v2.types import build
+from google.longrunning import operations_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from google.oauth2 import service_account
+import google.auth
+
+
+async def mock_async_gen(data, chunk_size=1):
+    for i in range(0, len(data)):  # pragma: NO COVER
+        chunk = data[i : i + chunk_size]
+        yield chunk.encode("utf-8")
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
+# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
+def async_anonymous_credentials():
+    if HAS_GOOGLE_AUTH_AIO:
+        return ga_credentials_async.AnonymousCredentials()
+    return ga_credentials.AnonymousCredentials()
+
+# If default endpoint is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint(client):
+    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
+
+# If default endpoint template is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint template so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint_template(client):
+    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
+
+
+def test__get_default_mtls_endpoint():
+    api_endpoint = "example.googleapis.com"
+    api_mtls_endpoint = "example.mtls.googleapis.com"
+    sandbox_endpoint = "example.sandbox.googleapis.com"
+    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
+    non_googleapi = "api.example.com"
+
+    assert BuildsClient._get_default_mtls_endpoint(None) is None
+    assert BuildsClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert BuildsClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert BuildsClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert BuildsClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert BuildsClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+def test__read_environment_variables():
+    assert BuildsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        assert BuildsClient._read_environment_variables() == (True, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        assert BuildsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            BuildsClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        assert BuildsClient._read_environment_variables() == (False, "never", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        assert BuildsClient._read_environment_variables() == (False, "always", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
+        assert BuildsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            BuildsClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
+        assert BuildsClient._read_environment_variables() == (False, "auto", "foo.com")
+
+def test__get_client_cert_source():
+    mock_provided_cert_source = mock.Mock()
+    mock_default_cert_source = mock.Mock()
+
+    assert BuildsClient._get_client_cert_source(None, False) is None
+    assert BuildsClient._get_client_cert_source(mock_provided_cert_source, False) is None
+    assert BuildsClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
+
+    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
+            assert BuildsClient._get_client_cert_source(None, True) is mock_default_cert_source
+            assert BuildsClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
+
+@mock.patch.object(BuildsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsClient))
+@mock.patch.object(BuildsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsAsyncClient))
+def test__get_api_endpoint():
+    api_override = "foo.com"
+    mock_client_cert_source = mock.Mock()
+    default_universe = BuildsClient._DEFAULT_UNIVERSE
+    default_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    assert BuildsClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
+    assert BuildsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == BuildsClient.DEFAULT_MTLS_ENDPOINT
+    assert BuildsClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
+    assert BuildsClient._get_api_endpoint(None, None, default_universe, "always") == BuildsClient.DEFAULT_MTLS_ENDPOINT
+    assert BuildsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == BuildsClient.DEFAULT_MTLS_ENDPOINT
+    assert BuildsClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
+    assert BuildsClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
+
+    with pytest.raises(MutualTLSChannelError) as excinfo:
+        BuildsClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
+    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
+
+
+def test__get_universe_domain():
+    client_universe_domain = "foo.com"
+    universe_domain_env = "bar.com"
+
+    assert BuildsClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
+    assert BuildsClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
+    assert BuildsClient._get_universe_domain(None, None) == BuildsClient._DEFAULT_UNIVERSE
+
+    with pytest.raises(ValueError) as excinfo:
+        BuildsClient._get_universe_domain("", None)
+    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (BuildsClient, "grpc"),
+    (BuildsAsyncClient, "grpc_asyncio"),
+    (BuildsClient, "rest"),
+])
+def test_builds_client_from_service_account_info(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
+        factory.return_value = creds
+        info = {"valid": True}
+        client = client_class.from_service_account_info(info, transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.BuildsGrpcTransport, "grpc"),
+    (transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.BuildsRestTransport, "rest"),
+])
+def test_builds_client_service_account_always_use_jwt(transport_class, transport_name):
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=True)
+        use_jwt.assert_called_once_with(True)
+
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=False)
+        use_jwt.assert_not_called()
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (BuildsClient, "grpc"),
+    (BuildsAsyncClient, "grpc_asyncio"),
+    (BuildsClient, "rest"),
+])
+def test_builds_client_from_service_account_file(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
+        factory.return_value = creds
+        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+def test_builds_client_get_transport_class():
+    transport = BuildsClient.get_transport_class()
+    available_transports = [
+        transports.BuildsGrpcTransport,
+        transports.BuildsRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = BuildsClient.get_transport_class("grpc")
+    assert transport == transports.BuildsGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (BuildsClient, transports.BuildsGrpcTransport, "grpc"),
+    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (BuildsClient, transports.BuildsRestTransport, "rest"),
+])
+@mock.patch.object(BuildsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsClient))
+@mock.patch.object(BuildsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsAsyncClient))
+def test_builds_client_client_options(client_class, transport_class, transport_name):
+    # Check that if channel is provided we won't create a new one.
+    with mock.patch.object(BuildsClient, 'get_transport_class') as gtc:
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+        client = client_class(transport=transport)
+        gtc.assert_not_called()
+
+    # Check that if channel is provided via str we will create a new one.
+    with mock.patch.object(BuildsClient, 'get_transport_class') as gtc:
+        client = client_class(transport=transport_name)
+        gtc.assert_called()
+
+    # Check the case api_endpoint is provided.
+    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(transport=transport_name, client_options=options)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "never".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "always".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client.DEFAULT_MTLS_ENDPOINT,
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    # Check the case quota_project_id is provided
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id="octopus",
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+    # Check the case api_endpoint is provided
+    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
+    with mock.patch.object(transport_class, '__init__') as patched:
+        patched.return_value = None
+        client = client_class(client_options=options, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience="https://language.googleapis.com"
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
+    (BuildsClient, transports.BuildsGrpcTransport, "grpc", "true"),
+    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (BuildsClient, transports.BuildsGrpcTransport, "grpc", "false"),
+    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (BuildsClient, transports.BuildsRestTransport, "rest", "true"),
+    (BuildsClient, transports.BuildsRestTransport, "rest", "false"),
+])
+@mock.patch.object(BuildsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsClient))
+@mock.patch.object(BuildsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_builds_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
+    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
+    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
+
+    # Check the case client_cert_source is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
+        with mock.patch.object(transport_class, '__init__') as patched:
+            patched.return_value = None
+            client = client_class(client_options=options, transport=transport_name)
+
+            if use_client_cert_env == "false":
+                expected_client_cert_source = None
+                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+            else:
+                expected_client_cert_source = client_cert_source_callback
+                expected_host = client.DEFAULT_MTLS_ENDPOINT
+
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=expected_host,
+                scopes=None,
+                client_cert_source_for_mtls=expected_client_cert_source,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case ADC client cert is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
+                    if use_client_cert_env == "false":
+                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+                        expected_client_cert_source = None
+                    else:
+                        expected_host = client.DEFAULT_MTLS_ENDPOINT
+                        expected_client_cert_source = client_cert_source_callback
+
+                    patched.return_value = None
+                    client = client_class(transport=transport_name)
+                    patched.assert_called_once_with(
+                        credentials=None,
+                        credentials_file=None,
+                        host=expected_host,
+                        scopes=None,
+                        client_cert_source_for_mtls=expected_client_cert_source,
+                        quota_project_id=None,
+                        client_info=transports.base.DEFAULT_CLIENT_INFO,
+                        always_use_jwt_access=True,
+                        api_audience=None,
+                    )
+
+    # Check the case client_cert_source and ADC client cert are not provided.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
+                patched.return_value = None
+                client = client_class(transport=transport_name)
+                patched.assert_called_once_with(
+                    credentials=None,
+                    credentials_file=None,
+                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                    scopes=None,
+                    client_cert_source_for_mtls=None,
+                    quota_project_id=None,
+                    client_info=transports.base.DEFAULT_CLIENT_INFO,
+                    always_use_jwt_access=True,
+                    api_audience=None,
+                )
+
+
+@pytest.mark.parametrize("client_class", [
+    BuildsClient, BuildsAsyncClient
+])
+@mock.patch.object(BuildsClient, "DEFAULT_ENDPOINT", modify_default_endpoint(BuildsClient))
+@mock.patch.object(BuildsAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(BuildsAsyncClient))
+def test_builds_client_get_mtls_endpoint_and_cert_source(client_class):
+    mock_client_cert_source = mock.Mock()
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source == mock_client_cert_source
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        mock_client_cert_source = mock.Mock()
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
+            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+            assert api_endpoint == client_class.DEFAULT_ENDPOINT
+            assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
+                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+                assert cert_source == mock_client_cert_source
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+@pytest.mark.parametrize("client_class", [
+    BuildsClient, BuildsAsyncClient
+])
+@mock.patch.object(BuildsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsClient))
+@mock.patch.object(BuildsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsAsyncClient))
+def test_builds_client_client_api_endpoint(client_class):
+    mock_client_cert_source = client_cert_source_callback
+    api_override = "foo.com"
+    default_universe = BuildsClient._DEFAULT_UNIVERSE
+    default_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
+    # use ClientOptions.api_endpoint as the api endpoint regardless.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
+            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
+            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+            assert client.api_endpoint == api_override
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
+    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+
+    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
+    # and ClientOptions.universe_domain="bar.com",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
+    options = client_options.ClientOptions()
+    universe_exists = hasattr(options, "universe_domain")
+    if universe_exists:
+        options = client_options.ClientOptions(universe_domain=mock_universe)
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    else:
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
+    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
+
+    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    options = client_options.ClientOptions()
+    if hasattr(options, "universe_domain"):
+        delattr(options, "universe_domain")
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (BuildsClient, transports.BuildsGrpcTransport, "grpc"),
+    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (BuildsClient, transports.BuildsRestTransport, "rest"),
+])
+def test_builds_client_client_options_scopes(client_class, transport_class, transport_name):
+    # Check the case scopes are provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=["1", "2"],
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (BuildsClient, transports.BuildsGrpcTransport, "grpc", grpc_helpers),
+    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (BuildsClient, transports.BuildsRestTransport, "rest", None),
+])
+def test_builds_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+def test_builds_client_client_options_from_dict():
+    with mock.patch('google.cloud.run_v2.services.builds.transports.BuildsGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = BuildsClient(
+            client_options={'api_endpoint': 'squid.clam.whelk'}
+        )
+        grpc_transport.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (BuildsClient, transports.BuildsGrpcTransport, "grpc", grpc_helpers),
+    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_builds_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # test that the credentials from file are saved and used as the credentials.
+    with mock.patch.object(
+        google.auth, "load_credentials_from_file", autospec=True
+    ) as load_creds, mock.patch.object(
+        google.auth, "default", autospec=True
+    ) as adc, mock.patch.object(
+        grpc_helpers, "create_channel"
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        file_creds = ga_credentials.AnonymousCredentials()
+        load_creds.return_value = (file_creds, None)
+        adc.return_value = (creds, None)
+        client = client_class(client_options=options, transport=transport_name)
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=file_creds,
+            credentials_file=None,
+            quota_project_id=None,
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=None,
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  build.SubmitBuildRequest,
+  dict,
+])
+def test_submit_build(request_type, transport: str = 'grpc'):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.submit_build),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = build.SubmitBuildResponse(
+            base_image_uri='base_image_uri_value',
+            base_image_warning='base_image_warning_value',
+        )
+        response = client.submit_build(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = build.SubmitBuildRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, build.SubmitBuildResponse)
+    assert response.base_image_uri == 'base_image_uri_value'
+    assert response.base_image_warning == 'base_image_warning_value'
+
+
+def test_submit_build_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = build.SubmitBuildRequest(
+        parent='parent_value',
+        image_uri='image_uri_value',
+        service_account='service_account_value',
+        worker_pool='worker_pool_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.submit_build),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.submit_build(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == build.SubmitBuildRequest(
+            parent='parent_value',
+            image_uri='image_uri_value',
+            service_account='service_account_value',
+            worker_pool='worker_pool_value',
+        )
+
+def test_submit_build_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = BuildsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.submit_build in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.submit_build] = mock_rpc
+        request = {}
+        client.submit_build(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.submit_build(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_submit_build_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = BuildsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.submit_build in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.submit_build] = mock_rpc
+
+        request = {}
+        await client.submit_build(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.submit_build(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_submit_build_async(transport: str = 'grpc_asyncio', request_type=build.SubmitBuildRequest):
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.submit_build),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(build.SubmitBuildResponse(
+            base_image_uri='base_image_uri_value',
+            base_image_warning='base_image_warning_value',
+        ))
+        response = await client.submit_build(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = build.SubmitBuildRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, build.SubmitBuildResponse)
+    assert response.base_image_uri == 'base_image_uri_value'
+    assert response.base_image_warning == 'base_image_warning_value'
+
+
+@pytest.mark.asyncio
+async def test_submit_build_async_from_dict():
+    await test_submit_build_async(request_type=dict)
+
+def test_submit_build_field_headers():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = build.SubmitBuildRequest()
+
+    request.parent = 'parent_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.submit_build),
+            '__call__') as call:
+        call.return_value = build.SubmitBuildResponse()
+        client.submit_build(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'parent=parent_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_submit_build_field_headers_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = build.SubmitBuildRequest()
+
+    request.parent = 'parent_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.submit_build),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(build.SubmitBuildResponse())
+        await client.submit_build(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'parent=parent_value',
+    ) in kw['metadata']
+
+
+def test_submit_build_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = BuildsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.submit_build in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.submit_build] = mock_rpc
+
+        request = {}
+        client.submit_build(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.submit_build(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_submit_build_rest_required_fields(request_type=build.SubmitBuildRequest):
+    transport_class = transports.BuildsRestTransport
+
+    request_init = {}
+    request_init["parent"] = ""
+    request_init["image_uri"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).submit_build._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["parent"] = 'parent_value'
+    jsonified_request["imageUri"] = 'image_uri_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).submit_build._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "parent" in jsonified_request
+    assert jsonified_request["parent"] == 'parent_value'
+    assert "imageUri" in jsonified_request
+    assert jsonified_request["imageUri"] == 'image_uri_value'
+
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = build.SubmitBuildResponse()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = build.SubmitBuildResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.submit_build(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_submit_build_rest_unset_required_fields():
+    transport = transports.BuildsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.submit_build._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("parent", "storageSource", "imageUri", )))
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.BuildsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = BuildsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.BuildsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = BuildsClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.BuildsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = BuildsClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = BuildsClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.BuildsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = BuildsClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.BuildsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = BuildsClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.BuildsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.BuildsGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.BuildsGrpcTransport,
+    transports.BuildsGrpcAsyncIOTransport,
+    transports.BuildsRestTransport,
+])
+def test_transport_adc(transport_class):
+    # Test default credentials are used if not provided.
+    with mock.patch.object(google.auth, 'default') as adc:
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport_class()
+        adc.assert_called_once()
+
+def test_transport_kind_grpc():
+    transport = BuildsClient.get_transport_class("grpc")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "grpc"
+
+
+def test_initialize_client_w_grpc():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_submit_build_empty_call_grpc():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.submit_build),
+            '__call__') as call:
+        call.return_value = build.SubmitBuildResponse()
+        client.submit_build(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = build.SubmitBuildRequest()
+
+        assert args[0] == request_msg
+
+
+def test_transport_kind_grpc_asyncio():
+    transport = BuildsAsyncClient.get_transport_class("grpc_asyncio")(
+        credentials=async_anonymous_credentials()
+    )
+    assert transport.kind == "grpc_asyncio"
+
+
+def test_initialize_client_w_grpc_asyncio():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_submit_build_empty_call_grpc_asyncio():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.submit_build),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(build.SubmitBuildResponse(
+            base_image_uri='base_image_uri_value',
+            base_image_warning='base_image_warning_value',
+        ))
+        await client.submit_build(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = build.SubmitBuildRequest()
+
+        assert args[0] == request_msg
+
+
+def test_transport_kind_rest():
+    transport = BuildsClient.get_transport_class("rest")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "rest"
+
+
+def test_submit_build_rest_bad_request(request_type=build.SubmitBuildRequest):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.submit_build(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  build.SubmitBuildRequest,
+  dict,
+])
+def test_submit_build_rest_call_success(request_type):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = build.SubmitBuildResponse(
+              base_image_uri='base_image_uri_value',
+              base_image_warning='base_image_warning_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = build.SubmitBuildResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.submit_build(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, build.SubmitBuildResponse)
+    assert response.base_image_uri == 'base_image_uri_value'
+    assert response.base_image_warning == 'base_image_warning_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_submit_build_rest_interceptors(null_interceptor):
+    transport = transports.BuildsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.BuildsRestInterceptor(),
+        )
+    client = BuildsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.BuildsRestInterceptor, "post_submit_build") as post, \
+        mock.patch.object(transports.BuildsRestInterceptor, "pre_submit_build") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = build.SubmitBuildRequest.pb(build.SubmitBuildRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = build.SubmitBuildResponse.to_json(build.SubmitBuildResponse())
+        req.return_value.content = return_value
+
+        request = build.SubmitBuildRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = build.SubmitBuildResponse()
+
+        client.submit_build(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.delete_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.DeleteOperationRequest,
+    dict,
+])
+def test_delete_operation_rest(request_type):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = None
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = '{}'
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.delete_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+
+def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.get_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.GetOperationRequest,
+    dict,
+])
+def test_get_operation_rest(request_type):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.get_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+
+def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.list_operations(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.ListOperationsRequest,
+    dict,
+])
+def test_list_operations_rest(request_type):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.ListOperationsResponse()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.list_operations(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+
+def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.wait_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.WaitOperationRequest,
+    dict,
+])
+def test_wait_operation_rest(request_type):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.wait_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_initialize_client_w_rest():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_submit_build_empty_call_rest():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.submit_build),
+            '__call__') as call:
+        client.submit_build(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = build.SubmitBuildRequest()
+
+        assert args[0] == request_msg
+
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.BuildsGrpcTransport,
+    )
+
+def test_builds_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.BuildsTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_builds_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.run_v2.services.builds.transports.BuildsTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.BuildsTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'submit_build',
+        'get_operation',
+        'wait_operation',
+        'delete_operation',
+        'list_operations',
+    )
+    for method in methods:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, method)(request=object())
+
+    with pytest.raises(NotImplementedError):
+        transport.close()
+
+    # Catch all for all remaining methods and properties
+    remainder = [
+        'kind',
+    ]
+    for r in remainder:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, r)()
+
+
+def test_builds_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.builds.transports.BuildsTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.BuildsTransport(
+            credentials_file="credentials.json",
+            quota_project_id="octopus",
+        )
+        load_creds.assert_called_once_with("credentials.json",
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id="octopus",
+        )
+
+
+def test_builds_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.builds.transports.BuildsTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.BuildsTransport()
+        adc.assert_called_once()
+
+
+def test_builds_auth_adc():
+    # 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)
+        BuildsClient()
+        adc.assert_called_once_with(
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id=None,
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.BuildsGrpcTransport,
+        transports.BuildsGrpcAsyncIOTransport,
+    ],
+)
+def test_builds_transport_auth_adc(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", scopes=["1", "2"])
+        adc.assert_called_once_with(
+            scopes=["1", "2"],
+            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
+            quota_project_id="octopus",
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.BuildsGrpcTransport,
+        transports.BuildsGrpcAsyncIOTransport,
+        transports.BuildsRestTransport,
+    ],
+)
+def test_builds_transport_auth_gdch_credentials(transport_class):
+    host = 'https://language.com'
+    api_audience_tests = [None, 'https://language2.com']
+    api_audience_expect = [host, 'https://language2.com']
+    for t, e in zip(api_audience_tests, api_audience_expect):
+        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
+            gdch_mock = mock.MagicMock()
+            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
+            adc.return_value = (gdch_mock, None)
+            transport_class(host=host, api_audience=t)
+            gdch_mock.with_gdch_audience.assert_called_once_with(
+                e
+            )
+
+
+@pytest.mark.parametrize(
+    "transport_class,grpc_helpers",
+    [
+        (transports.BuildsGrpcTransport, grpc_helpers),
+        (transports.BuildsGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_builds_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=creds,
+            credentials_file=None,
+            quota_project_id="octopus",
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=["1", "2"],
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.BuildsGrpcTransport, transports.BuildsGrpcAsyncIOTransport])
+def test_builds_grpc_transport_client_cert_source_for_mtls(
+    transport_class
+):
+    cred = ga_credentials.AnonymousCredentials()
+
+    # Check ssl_channel_credentials is used if provided.
+    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
+        mock_ssl_channel_creds = mock.Mock()
+        transport_class(
+            host="squid.clam.whelk",
+            credentials=cred,
+            ssl_channel_credentials=mock_ssl_channel_creds
+        )
+        mock_create_channel.assert_called_once_with(
+            "squid.clam.whelk:443",
+            credentials=cred,
+            credentials_file=None,
+            scopes=None,
+            ssl_credentials=mock_ssl_channel_creds,
+            quota_project_id=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
+    # is used.
+    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
+        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
+            transport_class(
+                credentials=cred,
+                client_cert_source_for_mtls=client_cert_source_callback
+            )
+            expected_cert, expected_key = client_cert_source_callback()
+            mock_ssl_cred.assert_called_once_with(
+                certificate_chain=expected_cert,
+                private_key=expected_key
+            )
+
+def test_builds_http_transport_client_cert_source_for_mtls():
+    cred = ga_credentials.AnonymousCredentials()
+    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
+        transports.BuildsRestTransport (
+            credentials=cred,
+            client_cert_source_for_mtls=client_cert_source_callback
+        )
+        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
+
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_builds_host_no_port(transport_name):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_builds_host_with_port(transport_name):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_builds_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = BuildsClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = BuildsClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.submit_build._session
+    session2 = client2.transport.submit_build._session
+    assert session1 != session2
+def test_builds_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.BuildsGrpcTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+def test_builds_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.BuildsGrpcAsyncIOTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.BuildsGrpcTransport, transports.BuildsGrpcAsyncIOTransport])
+def test_builds_transport_channel_mtls_with_client_cert_source(
+    transport_class
+):
+    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_ssl_cred = mock.Mock()
+            grpc_ssl_channel_cred.return_value = mock_ssl_cred
+
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+
+            cred = ga_credentials.AnonymousCredentials()
+            with pytest.warns(DeprecationWarning):
+                with mock.patch.object(google.auth, 'default') as adc:
+                    adc.return_value = (cred, None)
+                    transport = transport_class(
+                        host="squid.clam.whelk",
+                        api_mtls_endpoint="mtls.squid.clam.whelk",
+                        client_cert_source=client_cert_source_callback,
+                    )
+                    adc.assert_called_once()
+
+            grpc_ssl_channel_cred.assert_called_once_with(
+                certificate_chain=b"cert bytes", private_key=b"key bytes"
+            )
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+            assert transport._ssl_channel_credentials == mock_ssl_cred
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.BuildsGrpcTransport, transports.BuildsGrpcAsyncIOTransport])
+def test_builds_transport_channel_mtls_with_adc(
+    transport_class
+):
+    mock_ssl_cred = mock.Mock()
+    with mock.patch.multiple(
+        "google.auth.transport.grpc.SslCredentials",
+        __init__=mock.Mock(return_value=None),
+        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
+    ):
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+            mock_cred = mock.Mock()
+
+            with pytest.warns(DeprecationWarning):
+                transport = transport_class(
+                    host="squid.clam.whelk",
+                    credentials=mock_cred,
+                    api_mtls_endpoint="mtls.squid.clam.whelk",
+                    client_cert_source=None,
+                )
+
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=mock_cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+
+
+def test_worker_pool_path():
+    project = "squid"
+    location = "clam"
+    worker_pool = "whelk"
+    expected = "projects/{project}/locations/{location}/workerPools/{worker_pool}".format(project=project, location=location, worker_pool=worker_pool, )
+    actual = BuildsClient.worker_pool_path(project, location, worker_pool)
+    assert expected == actual
+
+
+def test_parse_worker_pool_path():
+    expected = {
+        "project": "octopus",
+        "location": "oyster",
+        "worker_pool": "nudibranch",
+    }
+    path = BuildsClient.worker_pool_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = BuildsClient.parse_worker_pool_path(path)
+    assert expected == actual
+
+def test_common_billing_account_path():
+    billing_account = "cuttlefish"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = BuildsClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "mussel",
+    }
+    path = BuildsClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = BuildsClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "winkle"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = BuildsClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "nautilus",
+    }
+    path = BuildsClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = BuildsClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "scallop"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = BuildsClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "abalone",
+    }
+    path = BuildsClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = BuildsClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "squid"
+    expected = "projects/{project}".format(project=project, )
+    actual = BuildsClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "clam",
+    }
+    path = BuildsClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = BuildsClient.parse_common_project_path(path)
+    assert expected == actual
+
+def test_common_location_path():
+    project = "whelk"
+    location = "octopus"
+    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
+    actual = BuildsClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "oyster",
+        "location": "nudibranch",
+    }
+    path = BuildsClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = BuildsClient.parse_common_location_path(path)
+    assert expected == actual
+
+
+def test_client_with_default_client_info():
+    client_info = gapic_v1.client_info.ClientInfo()
+
+    with mock.patch.object(transports.BuildsTransport, '_prep_wrapped_messages') as prep:
+        client = BuildsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.BuildsTransport, '_prep_wrapped_messages') as prep:
+        transport_class = BuildsClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+
+def test_delete_operation(transport: str = "grpc"):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+        response = client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+@pytest.mark.asyncio
+async def test_delete_operation_async(transport: str = "grpc_asyncio"):
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+def test_delete_operation_field_headers():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value =  None
+
+        client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_delete_operation_field_headers_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_delete_operation_from_dict():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+
+        response = client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_delete_operation_from_dict_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_wait_operation(transport: str = "grpc"):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_wait_operation(transport: str = "grpc_asyncio"):
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_wait_operation_field_headers():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_wait_operation_field_headers_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_wait_operation_from_dict():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_wait_operation_from_dict_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_get_operation(transport: str = "grpc"):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_get_operation_async(transport: str = "grpc_asyncio"):
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_get_operation_field_headers():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_get_operation_field_headers_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_get_operation_from_dict():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_get_operation_from_dict_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_list_operations(transport: str = "grpc"):
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+        response = client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+@pytest.mark.asyncio
+async def test_list_operations_async(transport: str = "grpc_asyncio"):
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+def test_list_operations_field_headers():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_list_operations_field_headers_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_list_operations_from_dict():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        response = client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_list_operations_from_dict_async():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_transport_close_grpc():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+@pytest.mark.asyncio
+async def test_transport_close_grpc_asyncio():
+    client = BuildsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        async with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_transport_close_rest():
+    client = BuildsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_client_ctx():
+    transports = [
+        'rest',
+        'grpc',
+    ]
+    for transport in transports:
+        client = BuildsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        # Test client calls underlying transport.
+        with mock.patch.object(type(client.transport), "close") as close:
+            close.assert_not_called()
+            with client:
+                pass
+            close.assert_called()
+
+@pytest.mark.parametrize("client_class,transport_class", [
+    (BuildsClient, transports.BuildsGrpcTransport),
+    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport),
+])
+def test_api_key_credentials(client_class, transport_class):
+    with mock.patch.object(
+        google.auth._default, "get_api_key_credentials", create=True
+    ) as get_api_key_credentials:
+        mock_cred = mock.Mock()
+        get_api_key_credentials.return_value = mock_cred
+        options = client_options.ClientOptions()
+        options.api_key = "api_key"
+        with mock.patch.object(transport_class, "__init__") as patched:
+            patched.return_value = None
+            client = client_class(client_options=options)
+            patched.assert_called_once_with(
+                credentials=mock_cred,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_executions.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_executions.py
new file mode 100644
index 000000000000..fd189d8e1981
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_executions.py
@@ -0,0 +1,5309 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 os
+# try/except added for compatibility with python < 3.8
+try:
+    from unittest import mock
+    from unittest.mock import AsyncMock  # pragma: NO COVER
+except ImportError:  # pragma: NO COVER
+    import mock
+
+import grpc
+from grpc.experimental import aio
+from collections.abc import Iterable, AsyncIterable
+from google.protobuf import json_format
+import json
+import math
+import pytest
+from google.api_core import api_core_version
+from proto.marshal.rules.dates import DurationRule, TimestampRule
+from proto.marshal.rules import wrappers
+from requests import Response
+from requests import Request, PreparedRequest
+from requests.sessions import Session
+from google.protobuf import json_format
+
+try:
+    from google.auth.aio import credentials as ga_credentials_async
+    HAS_GOOGLE_AUTH_AIO = True
+except ImportError: # pragma: NO COVER
+    HAS_GOOGLE_AUTH_AIO = False
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import client_options
+from google.api_core import exceptions as core_exceptions
+from google.api_core import future
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers
+from google.api_core import grpc_helpers_async
+from google.api_core import operation
+from google.api_core import operation_async  # type: ignore
+from google.api_core import operations_v1
+from google.api_core import path_template
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.location import locations_pb2
+from google.cloud.run_v2.services.executions import ExecutionsAsyncClient
+from google.cloud.run_v2.services.executions import ExecutionsClient
+from google.cloud.run_v2.services.executions import pagers
+from google.cloud.run_v2.services.executions import transports
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import execution
+from google.cloud.run_v2.types import task_template
+from google.longrunning import operations_pb2 # type: ignore
+from google.oauth2 import service_account
+from google.protobuf import timestamp_pb2  # type: ignore
+import google.auth
+
+
+async def mock_async_gen(data, chunk_size=1):
+    for i in range(0, len(data)):  # pragma: NO COVER
+        chunk = data[i : i + chunk_size]
+        yield chunk.encode("utf-8")
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
+# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
+def async_anonymous_credentials():
+    if HAS_GOOGLE_AUTH_AIO:
+        return ga_credentials_async.AnonymousCredentials()
+    return ga_credentials.AnonymousCredentials()
+
+# If default endpoint is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint(client):
+    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
+
+# If default endpoint template is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint template so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint_template(client):
+    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
+
+
+def test__get_default_mtls_endpoint():
+    api_endpoint = "example.googleapis.com"
+    api_mtls_endpoint = "example.mtls.googleapis.com"
+    sandbox_endpoint = "example.sandbox.googleapis.com"
+    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
+    non_googleapi = "api.example.com"
+
+    assert ExecutionsClient._get_default_mtls_endpoint(None) is None
+    assert ExecutionsClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert ExecutionsClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert ExecutionsClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert ExecutionsClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert ExecutionsClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+def test__read_environment_variables():
+    assert ExecutionsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        assert ExecutionsClient._read_environment_variables() == (True, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        assert ExecutionsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            ExecutionsClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        assert ExecutionsClient._read_environment_variables() == (False, "never", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        assert ExecutionsClient._read_environment_variables() == (False, "always", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
+        assert ExecutionsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            ExecutionsClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
+        assert ExecutionsClient._read_environment_variables() == (False, "auto", "foo.com")
+
+def test__get_client_cert_source():
+    mock_provided_cert_source = mock.Mock()
+    mock_default_cert_source = mock.Mock()
+
+    assert ExecutionsClient._get_client_cert_source(None, False) is None
+    assert ExecutionsClient._get_client_cert_source(mock_provided_cert_source, False) is None
+    assert ExecutionsClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
+
+    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
+            assert ExecutionsClient._get_client_cert_source(None, True) is mock_default_cert_source
+            assert ExecutionsClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
+
+@mock.patch.object(ExecutionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsClient))
+@mock.patch.object(ExecutionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsAsyncClient))
+def test__get_api_endpoint():
+    api_override = "foo.com"
+    mock_client_cert_source = mock.Mock()
+    default_universe = ExecutionsClient._DEFAULT_UNIVERSE
+    default_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    assert ExecutionsClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
+    assert ExecutionsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == ExecutionsClient.DEFAULT_MTLS_ENDPOINT
+    assert ExecutionsClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
+    assert ExecutionsClient._get_api_endpoint(None, None, default_universe, "always") == ExecutionsClient.DEFAULT_MTLS_ENDPOINT
+    assert ExecutionsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == ExecutionsClient.DEFAULT_MTLS_ENDPOINT
+    assert ExecutionsClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
+    assert ExecutionsClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
+
+    with pytest.raises(MutualTLSChannelError) as excinfo:
+        ExecutionsClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
+    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
+
+
+def test__get_universe_domain():
+    client_universe_domain = "foo.com"
+    universe_domain_env = "bar.com"
+
+    assert ExecutionsClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
+    assert ExecutionsClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
+    assert ExecutionsClient._get_universe_domain(None, None) == ExecutionsClient._DEFAULT_UNIVERSE
+
+    with pytest.raises(ValueError) as excinfo:
+        ExecutionsClient._get_universe_domain("", None)
+    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (ExecutionsClient, "grpc"),
+    (ExecutionsAsyncClient, "grpc_asyncio"),
+    (ExecutionsClient, "rest"),
+])
+def test_executions_client_from_service_account_info(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
+        factory.return_value = creds
+        info = {"valid": True}
+        client = client_class.from_service_account_info(info, transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.ExecutionsGrpcTransport, "grpc"),
+    (transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.ExecutionsRestTransport, "rest"),
+])
+def test_executions_client_service_account_always_use_jwt(transport_class, transport_name):
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=True)
+        use_jwt.assert_called_once_with(True)
+
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=False)
+        use_jwt.assert_not_called()
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (ExecutionsClient, "grpc"),
+    (ExecutionsAsyncClient, "grpc_asyncio"),
+    (ExecutionsClient, "rest"),
+])
+def test_executions_client_from_service_account_file(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
+        factory.return_value = creds
+        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+def test_executions_client_get_transport_class():
+    transport = ExecutionsClient.get_transport_class()
+    available_transports = [
+        transports.ExecutionsGrpcTransport,
+        transports.ExecutionsRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = ExecutionsClient.get_transport_class("grpc")
+    assert transport == transports.ExecutionsGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc"),
+    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ExecutionsClient, transports.ExecutionsRestTransport, "rest"),
+])
+@mock.patch.object(ExecutionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsClient))
+@mock.patch.object(ExecutionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsAsyncClient))
+def test_executions_client_client_options(client_class, transport_class, transport_name):
+    # Check that if channel is provided we won't create a new one.
+    with mock.patch.object(ExecutionsClient, 'get_transport_class') as gtc:
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+        client = client_class(transport=transport)
+        gtc.assert_not_called()
+
+    # Check that if channel is provided via str we will create a new one.
+    with mock.patch.object(ExecutionsClient, 'get_transport_class') as gtc:
+        client = client_class(transport=transport_name)
+        gtc.assert_called()
+
+    # Check the case api_endpoint is provided.
+    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(transport=transport_name, client_options=options)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "never".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "always".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client.DEFAULT_MTLS_ENDPOINT,
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    # Check the case quota_project_id is provided
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id="octopus",
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+    # Check the case api_endpoint is provided
+    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
+    with mock.patch.object(transport_class, '__init__') as patched:
+        patched.return_value = None
+        client = client_class(client_options=options, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience="https://language.googleapis.com"
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
+    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc", "true"),
+    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc", "false"),
+    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (ExecutionsClient, transports.ExecutionsRestTransport, "rest", "true"),
+    (ExecutionsClient, transports.ExecutionsRestTransport, "rest", "false"),
+])
+@mock.patch.object(ExecutionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsClient))
+@mock.patch.object(ExecutionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_executions_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
+    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
+    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
+
+    # Check the case client_cert_source is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
+        with mock.patch.object(transport_class, '__init__') as patched:
+            patched.return_value = None
+            client = client_class(client_options=options, transport=transport_name)
+
+            if use_client_cert_env == "false":
+                expected_client_cert_source = None
+                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+            else:
+                expected_client_cert_source = client_cert_source_callback
+                expected_host = client.DEFAULT_MTLS_ENDPOINT
+
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=expected_host,
+                scopes=None,
+                client_cert_source_for_mtls=expected_client_cert_source,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case ADC client cert is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
+                    if use_client_cert_env == "false":
+                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+                        expected_client_cert_source = None
+                    else:
+                        expected_host = client.DEFAULT_MTLS_ENDPOINT
+                        expected_client_cert_source = client_cert_source_callback
+
+                    patched.return_value = None
+                    client = client_class(transport=transport_name)
+                    patched.assert_called_once_with(
+                        credentials=None,
+                        credentials_file=None,
+                        host=expected_host,
+                        scopes=None,
+                        client_cert_source_for_mtls=expected_client_cert_source,
+                        quota_project_id=None,
+                        client_info=transports.base.DEFAULT_CLIENT_INFO,
+                        always_use_jwt_access=True,
+                        api_audience=None,
+                    )
+
+    # Check the case client_cert_source and ADC client cert are not provided.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
+                patched.return_value = None
+                client = client_class(transport=transport_name)
+                patched.assert_called_once_with(
+                    credentials=None,
+                    credentials_file=None,
+                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                    scopes=None,
+                    client_cert_source_for_mtls=None,
+                    quota_project_id=None,
+                    client_info=transports.base.DEFAULT_CLIENT_INFO,
+                    always_use_jwt_access=True,
+                    api_audience=None,
+                )
+
+
+@pytest.mark.parametrize("client_class", [
+    ExecutionsClient, ExecutionsAsyncClient
+])
+@mock.patch.object(ExecutionsClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ExecutionsClient))
+@mock.patch.object(ExecutionsAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ExecutionsAsyncClient))
+def test_executions_client_get_mtls_endpoint_and_cert_source(client_class):
+    mock_client_cert_source = mock.Mock()
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source == mock_client_cert_source
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        mock_client_cert_source = mock.Mock()
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
+            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+            assert api_endpoint == client_class.DEFAULT_ENDPOINT
+            assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
+                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+                assert cert_source == mock_client_cert_source
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+@pytest.mark.parametrize("client_class", [
+    ExecutionsClient, ExecutionsAsyncClient
+])
+@mock.patch.object(ExecutionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsClient))
+@mock.patch.object(ExecutionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsAsyncClient))
+def test_executions_client_client_api_endpoint(client_class):
+    mock_client_cert_source = client_cert_source_callback
+    api_override = "foo.com"
+    default_universe = ExecutionsClient._DEFAULT_UNIVERSE
+    default_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
+    # use ClientOptions.api_endpoint as the api endpoint regardless.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
+            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
+            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+            assert client.api_endpoint == api_override
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
+    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+
+    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
+    # and ClientOptions.universe_domain="bar.com",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
+    options = client_options.ClientOptions()
+    universe_exists = hasattr(options, "universe_domain")
+    if universe_exists:
+        options = client_options.ClientOptions(universe_domain=mock_universe)
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    else:
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
+    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
+
+    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    options = client_options.ClientOptions()
+    if hasattr(options, "universe_domain"):
+        delattr(options, "universe_domain")
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc"),
+    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ExecutionsClient, transports.ExecutionsRestTransport, "rest"),
+])
+def test_executions_client_client_options_scopes(client_class, transport_class, transport_name):
+    # Check the case scopes are provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=["1", "2"],
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc", grpc_helpers),
+    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (ExecutionsClient, transports.ExecutionsRestTransport, "rest", None),
+])
+def test_executions_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+def test_executions_client_client_options_from_dict():
+    with mock.patch('google.cloud.run_v2.services.executions.transports.ExecutionsGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = ExecutionsClient(
+            client_options={'api_endpoint': 'squid.clam.whelk'}
+        )
+        grpc_transport.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc", grpc_helpers),
+    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_executions_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # test that the credentials from file are saved and used as the credentials.
+    with mock.patch.object(
+        google.auth, "load_credentials_from_file", autospec=True
+    ) as load_creds, mock.patch.object(
+        google.auth, "default", autospec=True
+    ) as adc, mock.patch.object(
+        grpc_helpers, "create_channel"
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        file_creds = ga_credentials.AnonymousCredentials()
+        load_creds.return_value = (file_creds, None)
+        adc.return_value = (creds, None)
+        client = client_class(client_options=options, transport=transport_name)
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=file_creds,
+            credentials_file=None,
+            quota_project_id=None,
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=None,
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  execution.GetExecutionRequest,
+  dict,
+])
+def test_get_execution(request_type, transport: str = 'grpc'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = execution.Execution(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            job='job_value',
+            parallelism=1174,
+            task_count=1083,
+            reconciling=True,
+            observed_generation=2021,
+            running_count=1417,
+            succeeded_count=1581,
+            failed_count=1261,
+            cancelled_count=1571,
+            retried_count=1399,
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            etag='etag_value',
+        )
+        response = client.get_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = execution.GetExecutionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, execution.Execution)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.job == 'job_value'
+    assert response.parallelism == 1174
+    assert response.task_count == 1083
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.running_count == 1417
+    assert response.succeeded_count == 1581
+    assert response.failed_count == 1261
+    assert response.cancelled_count == 1571
+    assert response.retried_count == 1399
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+def test_get_execution_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = execution.GetExecutionRequest(
+        name='name_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.get_execution(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == execution.GetExecutionRequest(
+            name='name_value',
+        )
+
+def test_get_execution_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_execution in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_execution] = mock_rpc
+        request = {}
+        client.get_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_execution_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ExecutionsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.get_execution in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.get_execution] = mock_rpc
+
+        request = {}
+        await client.get_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.get_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_execution_async(transport: str = 'grpc_asyncio', request_type=execution.GetExecutionRequest):
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(execution.Execution(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            job='job_value',
+            parallelism=1174,
+            task_count=1083,
+            reconciling=True,
+            observed_generation=2021,
+            running_count=1417,
+            succeeded_count=1581,
+            failed_count=1261,
+            cancelled_count=1571,
+            retried_count=1399,
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            etag='etag_value',
+        ))
+        response = await client.get_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = execution.GetExecutionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, execution.Execution)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.job == 'job_value'
+    assert response.parallelism == 1174
+    assert response.task_count == 1083
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.running_count == 1417
+    assert response.succeeded_count == 1581
+    assert response.failed_count == 1261
+    assert response.cancelled_count == 1571
+    assert response.retried_count == 1399
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.asyncio
+async def test_get_execution_async_from_dict():
+    await test_get_execution_async(request_type=dict)
+
+def test_get_execution_field_headers():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = execution.GetExecutionRequest()
+
+    request.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        call.return_value = execution.Execution()
+        client.get_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'name=name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_get_execution_field_headers_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = execution.GetExecutionRequest()
+
+    request.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.Execution())
+        await client.get_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'name=name_value',
+    ) in kw['metadata']
+
+
+def test_get_execution_flattened():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = execution.Execution()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.get_execution(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_get_execution_flattened_error():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_execution(
+            execution.GetExecutionRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_get_execution_flattened_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = execution.Execution()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.Execution())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.get_execution(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_get_execution_flattened_error_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.get_execution(
+            execution.GetExecutionRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  execution.ListExecutionsRequest,
+  dict,
+])
+def test_list_executions(request_type, transport: str = 'grpc'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = execution.ListExecutionsResponse(
+            next_page_token='next_page_token_value',
+        )
+        response = client.list_executions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = execution.ListExecutionsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListExecutionsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_executions_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = execution.ListExecutionsRequest(
+        parent='parent_value',
+        page_token='page_token_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.list_executions(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == execution.ListExecutionsRequest(
+            parent='parent_value',
+            page_token='page_token_value',
+        )
+
+def test_list_executions_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_executions in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_executions] = mock_rpc
+        request = {}
+        client.list_executions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_executions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_executions_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ExecutionsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.list_executions in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.list_executions] = mock_rpc
+
+        request = {}
+        await client.list_executions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.list_executions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_executions_async(transport: str = 'grpc_asyncio', request_type=execution.ListExecutionsRequest):
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(execution.ListExecutionsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        response = await client.list_executions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = execution.ListExecutionsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListExecutionsAsyncPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.asyncio
+async def test_list_executions_async_from_dict():
+    await test_list_executions_async(request_type=dict)
+
+def test_list_executions_field_headers():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = execution.ListExecutionsRequest()
+
+    request.parent = 'parent_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        call.return_value = execution.ListExecutionsResponse()
+        client.list_executions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'parent=parent_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_list_executions_field_headers_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = execution.ListExecutionsRequest()
+
+    request.parent = 'parent_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.ListExecutionsResponse())
+        await client.list_executions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'parent=parent_value',
+    ) in kw['metadata']
+
+
+def test_list_executions_flattened():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = execution.ListExecutionsResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.list_executions(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+
+def test_list_executions_flattened_error():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_executions(
+            execution.ListExecutionsRequest(),
+            parent='parent_value',
+        )
+
+@pytest.mark.asyncio
+async def test_list_executions_flattened_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = execution.ListExecutionsResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.ListExecutionsResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.list_executions(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_list_executions_flattened_error_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.list_executions(
+            execution.ListExecutionsRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_executions_pager(transport_name: str = "grpc"):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+                next_page_token='abc',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[],
+                next_page_token='def',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                ],
+                next_page_token='ghi',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+            ),
+            RuntimeError,
+        )
+
+        expected_metadata = ()
+        retry = retries.Retry()
+        timeout = 5
+        expected_metadata = tuple(expected_metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ('parent', ''),
+            )),
+        )
+        pager = client.list_executions(request={}, retry=retry, timeout=timeout)
+
+        assert pager._metadata == expected_metadata
+        assert pager._retry == retry
+        assert pager._timeout == timeout
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, execution.Execution)
+                   for i in results)
+def test_list_executions_pages(transport_name: str = "grpc"):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+                next_page_token='abc',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[],
+                next_page_token='def',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                ],
+                next_page_token='ghi',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = list(client.list_executions(request={}).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.asyncio
+async def test_list_executions_async_pager():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+                next_page_token='abc',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[],
+                next_page_token='def',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                ],
+                next_page_token='ghi',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+            ),
+            RuntimeError,
+        )
+        async_pager = await client.list_executions(request={},)
+        assert async_pager.next_page_token == 'abc'
+        responses = []
+        async for response in async_pager: # pragma: no branch
+            responses.append(response)
+
+        assert len(responses) == 6
+        assert all(isinstance(i, execution.Execution)
+                for i in responses)
+
+
+@pytest.mark.asyncio
+async def test_list_executions_async_pages():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+                next_page_token='abc',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[],
+                next_page_token='def',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                ],
+                next_page_token='ghi',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = []
+        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
+        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
+        async for page_ in ( # pragma: no branch
+            await client.list_executions(request={})
+        ).pages:
+            pages.append(page_)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.parametrize("request_type", [
+  execution.DeleteExecutionRequest,
+  dict,
+])
+def test_delete_execution(request_type, transport: str = 'grpc'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.delete_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = execution.DeleteExecutionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_delete_execution_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = execution.DeleteExecutionRequest(
+        name='name_value',
+        etag='etag_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.delete_execution(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == execution.DeleteExecutionRequest(
+            name='name_value',
+            etag='etag_value',
+        )
+
+def test_delete_execution_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.delete_execution in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.delete_execution] = mock_rpc
+        request = {}
+        client.delete_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.delete_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_delete_execution_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ExecutionsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.delete_execution in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.delete_execution] = mock_rpc
+
+        request = {}
+        await client.delete_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.delete_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_delete_execution_async(transport: str = 'grpc_asyncio', request_type=execution.DeleteExecutionRequest):
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.delete_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = execution.DeleteExecutionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_delete_execution_async_from_dict():
+    await test_delete_execution_async(request_type=dict)
+
+def test_delete_execution_field_headers():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = execution.DeleteExecutionRequest()
+
+    request.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.delete_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'name=name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_delete_execution_field_headers_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = execution.DeleteExecutionRequest()
+
+    request.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op'))
+        await client.delete_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'name=name_value',
+    ) in kw['metadata']
+
+
+def test_delete_execution_flattened():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.delete_execution(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_delete_execution_flattened_error():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.delete_execution(
+            execution.DeleteExecutionRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_delete_execution_flattened_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.delete_execution(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_delete_execution_flattened_error_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.delete_execution(
+            execution.DeleteExecutionRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  execution.CancelExecutionRequest,
+  dict,
+])
+def test_cancel_execution(request_type, transport: str = 'grpc'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.cancel_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = execution.CancelExecutionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_cancel_execution_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = execution.CancelExecutionRequest(
+        name='name_value',
+        etag='etag_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.cancel_execution(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == execution.CancelExecutionRequest(
+            name='name_value',
+            etag='etag_value',
+        )
+
+def test_cancel_execution_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.cancel_execution in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.cancel_execution] = mock_rpc
+        request = {}
+        client.cancel_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.cancel_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_cancel_execution_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ExecutionsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.cancel_execution in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.cancel_execution] = mock_rpc
+
+        request = {}
+        await client.cancel_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.cancel_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_cancel_execution_async(transport: str = 'grpc_asyncio', request_type=execution.CancelExecutionRequest):
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.cancel_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = execution.CancelExecutionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_cancel_execution_async_from_dict():
+    await test_cancel_execution_async(request_type=dict)
+
+def test_cancel_execution_field_headers():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = execution.CancelExecutionRequest()
+
+    request.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.cancel_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'name=name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_cancel_execution_field_headers_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = execution.CancelExecutionRequest()
+
+    request.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op'))
+        await client.cancel_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'name=name_value',
+    ) in kw['metadata']
+
+
+def test_cancel_execution_flattened():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.cancel_execution(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_cancel_execution_flattened_error():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.cancel_execution(
+            execution.CancelExecutionRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_cancel_execution_flattened_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.cancel_execution(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_cancel_execution_flattened_error_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.cancel_execution(
+            execution.CancelExecutionRequest(),
+            name='name_value',
+        )
+
+
+def test_get_execution_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_execution in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_execution] = mock_rpc
+
+        request = {}
+        client.get_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_get_execution_rest_required_fields(request_type=execution.GetExecutionRequest):
+    transport_class = transports.ExecutionsRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_execution._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_execution._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = execution.Execution()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = execution.Execution.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.get_execution(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_get_execution_rest_unset_required_fields():
+    transport = transports.ExecutionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.get_execution._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("name", )))
+
+
+def test_get_execution_rest_flattened():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = execution.Execution()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = execution.Execution.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.get_execution(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*/executions/*}" % client.transport._host, args[1])
+
+
+def test_get_execution_rest_flattened_error(transport: str = 'rest'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_execution(
+            execution.GetExecutionRequest(),
+            name='name_value',
+        )
+
+
+def test_list_executions_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_executions in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_executions] = mock_rpc
+
+        request = {}
+        client.list_executions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_executions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_list_executions_rest_required_fields(request_type=execution.ListExecutionsRequest):
+    transport_class = transports.ExecutionsRestTransport
+
+    request_init = {}
+    request_init["parent"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_executions._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["parent"] = 'parent_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_executions._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "parent" in jsonified_request
+    assert jsonified_request["parent"] == 'parent_value'
+
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = execution.ListExecutionsResponse()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = execution.ListExecutionsResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.list_executions(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_list_executions_rest_unset_required_fields():
+    transport = transports.ExecutionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.list_executions._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
+
+
+def test_list_executions_rest_flattened():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = execution.ListExecutionsResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'parent': 'projects/sample1/locations/sample2/jobs/sample3'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            parent='parent_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = execution.ListExecutionsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.list_executions(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{parent=projects/*/locations/*/jobs/*}/executions" % client.transport._host, args[1])
+
+
+def test_list_executions_rest_flattened_error(transport: str = 'rest'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_executions(
+            execution.ListExecutionsRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_executions_rest_pager(transport: str = 'rest'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # TODO(kbandes): remove this mock unless there's a good reason for it.
+        #with mock.patch.object(path_template, 'transcode') as transcode:
+        # Set the response as a series of pages
+        response = (
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+                next_page_token='abc',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[],
+                next_page_token='def',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                ],
+                next_page_token='ghi',
+            ),
+            execution.ListExecutionsResponse(
+                executions=[
+                    execution.Execution(),
+                    execution.Execution(),
+                ],
+            ),
+        )
+        # Two responses for two calls
+        response = response + response
+
+        # Wrap the values into proper Response objs
+        response = tuple(execution.ListExecutionsResponse.to_json(x) for x in response)
+        return_values = tuple(Response() for i in response)
+        for return_val, response_val in zip(return_values, response):
+            return_val._content = response_val.encode('UTF-8')
+            return_val.status_code = 200
+        req.side_effect = return_values
+
+        sample_request = {'parent': 'projects/sample1/locations/sample2/jobs/sample3'}
+
+        pager = client.list_executions(request=sample_request)
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, execution.Execution)
+                for i in results)
+
+        pages = list(client.list_executions(request=sample_request).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+
+def test_delete_execution_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.delete_execution in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.delete_execution] = mock_rpc
+
+        request = {}
+        client.delete_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.delete_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_delete_execution_rest_required_fields(request_type=execution.DeleteExecutionRequest):
+    transport_class = transports.ExecutionsRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_execution._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_execution._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("etag", "validate_only", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "delete",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.delete_execution(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_delete_execution_rest_unset_required_fields():
+    transport = transports.ExecutionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.delete_execution._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("etag", "validateOnly", )) & set(("name", )))
+
+
+def test_delete_execution_rest_flattened():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.delete_execution(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*/executions/*}" % client.transport._host, args[1])
+
+
+def test_delete_execution_rest_flattened_error(transport: str = 'rest'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.delete_execution(
+            execution.DeleteExecutionRequest(),
+            name='name_value',
+        )
+
+
+def test_cancel_execution_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.cancel_execution in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.cancel_execution] = mock_rpc
+
+        request = {}
+        client.cancel_execution(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.cancel_execution(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_cancel_execution_rest_required_fields(request_type=execution.CancelExecutionRequest):
+    transport_class = transports.ExecutionsRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).cancel_execution._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).cancel_execution._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.cancel_execution(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_cancel_execution_rest_unset_required_fields():
+    transport = transports.ExecutionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.cancel_execution._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("name", )))
+
+
+def test_cancel_execution_rest_flattened():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.cancel_execution(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*/executions/*}:cancel" % client.transport._host, args[1])
+
+
+def test_cancel_execution_rest_flattened_error(transport: str = 'rest'):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.cancel_execution(
+            execution.CancelExecutionRequest(),
+            name='name_value',
+        )
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.ExecutionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.ExecutionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ExecutionsClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.ExecutionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ExecutionsClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ExecutionsClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.ExecutionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ExecutionsClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ExecutionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = ExecutionsClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ExecutionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.ExecutionsGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.ExecutionsGrpcTransport,
+    transports.ExecutionsGrpcAsyncIOTransport,
+    transports.ExecutionsRestTransport,
+])
+def test_transport_adc(transport_class):
+    # Test default credentials are used if not provided.
+    with mock.patch.object(google.auth, 'default') as adc:
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport_class()
+        adc.assert_called_once()
+
+def test_transport_kind_grpc():
+    transport = ExecutionsClient.get_transport_class("grpc")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "grpc"
+
+
+def test_initialize_client_w_grpc():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_execution_empty_call_grpc():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        call.return_value = execution.Execution()
+        client.get_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.GetExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_executions_empty_call_grpc():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        call.return_value = execution.ListExecutionsResponse()
+        client.list_executions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.ListExecutionsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_delete_execution_empty_call_grpc():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.delete_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.DeleteExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_cancel_execution_empty_call_grpc():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.cancel_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.CancelExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+def test_transport_kind_grpc_asyncio():
+    transport = ExecutionsAsyncClient.get_transport_class("grpc_asyncio")(
+        credentials=async_anonymous_credentials()
+    )
+    assert transport.kind == "grpc_asyncio"
+
+
+def test_initialize_client_w_grpc_asyncio():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_get_execution_empty_call_grpc_asyncio():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.Execution(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            job='job_value',
+            parallelism=1174,
+            task_count=1083,
+            reconciling=True,
+            observed_generation=2021,
+            running_count=1417,
+            succeeded_count=1581,
+            failed_count=1261,
+            cancelled_count=1571,
+            retried_count=1399,
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            etag='etag_value',
+        ))
+        await client.get_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.GetExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_list_executions_empty_call_grpc_asyncio():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.ListExecutionsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        await client.list_executions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.ListExecutionsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_delete_execution_empty_call_grpc_asyncio():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.delete_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.DeleteExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_cancel_execution_empty_call_grpc_asyncio():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.cancel_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.CancelExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+def test_transport_kind_rest():
+    transport = ExecutionsClient.get_transport_class("rest")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "rest"
+
+
+def test_get_execution_rest_bad_request(request_type=execution.GetExecutionRequest):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.get_execution(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  execution.GetExecutionRequest,
+  dict,
+])
+def test_get_execution_rest_call_success(request_type):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = execution.Execution(
+              name='name_value',
+              uid='uid_value',
+              generation=1068,
+              launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+              job='job_value',
+              parallelism=1174,
+              task_count=1083,
+              reconciling=True,
+              observed_generation=2021,
+              running_count=1417,
+              succeeded_count=1581,
+              failed_count=1261,
+              cancelled_count=1571,
+              retried_count=1399,
+              log_uri='log_uri_value',
+              satisfies_pzs=True,
+              etag='etag_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = execution.Execution.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.get_execution(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, execution.Execution)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.job == 'job_value'
+    assert response.parallelism == 1174
+    assert response.task_count == 1083
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.running_count == 1417
+    assert response.succeeded_count == 1581
+    assert response.failed_count == 1261
+    assert response.cancelled_count == 1571
+    assert response.retried_count == 1399
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_get_execution_rest_interceptors(null_interceptor):
+    transport = transports.ExecutionsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ExecutionsRestInterceptor(),
+        )
+    client = ExecutionsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.ExecutionsRestInterceptor, "post_get_execution") as post, \
+        mock.patch.object(transports.ExecutionsRestInterceptor, "pre_get_execution") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = execution.GetExecutionRequest.pb(execution.GetExecutionRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = execution.Execution.to_json(execution.Execution())
+        req.return_value.content = return_value
+
+        request = execution.GetExecutionRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = execution.Execution()
+
+        client.get_execution(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_list_executions_rest_bad_request(request_type=execution.ListExecutionsRequest):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.list_executions(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  execution.ListExecutionsRequest,
+  dict,
+])
+def test_list_executions_rest_call_success(request_type):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = execution.ListExecutionsResponse(
+              next_page_token='next_page_token_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = execution.ListExecutionsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.list_executions(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListExecutionsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_list_executions_rest_interceptors(null_interceptor):
+    transport = transports.ExecutionsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ExecutionsRestInterceptor(),
+        )
+    client = ExecutionsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.ExecutionsRestInterceptor, "post_list_executions") as post, \
+        mock.patch.object(transports.ExecutionsRestInterceptor, "pre_list_executions") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = execution.ListExecutionsRequest.pb(execution.ListExecutionsRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = execution.ListExecutionsResponse.to_json(execution.ListExecutionsResponse())
+        req.return_value.content = return_value
+
+        request = execution.ListExecutionsRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = execution.ListExecutionsResponse()
+
+        client.list_executions(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_execution_rest_bad_request(request_type=execution.DeleteExecutionRequest):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.delete_execution(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  execution.DeleteExecutionRequest,
+  dict,
+])
+def test_delete_execution_rest_call_success(request_type):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.delete_execution(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_delete_execution_rest_interceptors(null_interceptor):
+    transport = transports.ExecutionsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ExecutionsRestInterceptor(),
+        )
+    client = ExecutionsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.ExecutionsRestInterceptor, "post_delete_execution") as post, \
+        mock.patch.object(transports.ExecutionsRestInterceptor, "pre_delete_execution") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = execution.DeleteExecutionRequest.pb(execution.DeleteExecutionRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = execution.DeleteExecutionRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.delete_execution(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_cancel_execution_rest_bad_request(request_type=execution.CancelExecutionRequest):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.cancel_execution(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  execution.CancelExecutionRequest,
+  dict,
+])
+def test_cancel_execution_rest_call_success(request_type):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.cancel_execution(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_cancel_execution_rest_interceptors(null_interceptor):
+    transport = transports.ExecutionsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ExecutionsRestInterceptor(),
+        )
+    client = ExecutionsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.ExecutionsRestInterceptor, "post_cancel_execution") as post, \
+        mock.patch.object(transports.ExecutionsRestInterceptor, "pre_cancel_execution") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = execution.CancelExecutionRequest.pb(execution.CancelExecutionRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = execution.CancelExecutionRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.cancel_execution(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.delete_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.DeleteOperationRequest,
+    dict,
+])
+def test_delete_operation_rest(request_type):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = None
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = '{}'
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.delete_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+
+def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.get_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.GetOperationRequest,
+    dict,
+])
+def test_get_operation_rest(request_type):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.get_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+
+def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.list_operations(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.ListOperationsRequest,
+    dict,
+])
+def test_list_operations_rest(request_type):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.ListOperationsResponse()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.list_operations(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+
+def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.wait_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.WaitOperationRequest,
+    dict,
+])
+def test_wait_operation_rest(request_type):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.wait_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_initialize_client_w_rest():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_execution_empty_call_rest():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_execution),
+            '__call__') as call:
+        client.get_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.GetExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_executions_empty_call_rest():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_executions),
+            '__call__') as call:
+        client.list_executions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.ListExecutionsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_delete_execution_empty_call_rest():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_execution),
+            '__call__') as call:
+        client.delete_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.DeleteExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_cancel_execution_empty_call_rest():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.cancel_execution),
+            '__call__') as call:
+        client.cancel_execution(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = execution.CancelExecutionRequest()
+
+        assert args[0] == request_msg
+
+
+def test_executions_rest_lro_client():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    transport = client.transport
+
+    # Ensure that we have an api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+operations_v1.AbstractOperationsClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.ExecutionsGrpcTransport,
+    )
+
+def test_executions_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.ExecutionsTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_executions_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.run_v2.services.executions.transports.ExecutionsTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.ExecutionsTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'get_execution',
+        'list_executions',
+        'delete_execution',
+        'cancel_execution',
+        'get_operation',
+        'wait_operation',
+        'delete_operation',
+        'list_operations',
+    )
+    for method in methods:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, method)(request=object())
+
+    with pytest.raises(NotImplementedError):
+        transport.close()
+
+    # Additionally, the LRO client (a property) should
+    # also raise NotImplementedError
+    with pytest.raises(NotImplementedError):
+        transport.operations_client
+
+    # Catch all for all remaining methods and properties
+    remainder = [
+        'kind',
+    ]
+    for r in remainder:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, r)()
+
+
+def test_executions_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.executions.transports.ExecutionsTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ExecutionsTransport(
+            credentials_file="credentials.json",
+            quota_project_id="octopus",
+        )
+        load_creds.assert_called_once_with("credentials.json",
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id="octopus",
+        )
+
+
+def test_executions_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.executions.transports.ExecutionsTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ExecutionsTransport()
+        adc.assert_called_once()
+
+
+def test_executions_auth_adc():
+    # 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)
+        ExecutionsClient()
+        adc.assert_called_once_with(
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id=None,
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.ExecutionsGrpcTransport,
+        transports.ExecutionsGrpcAsyncIOTransport,
+    ],
+)
+def test_executions_transport_auth_adc(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", scopes=["1", "2"])
+        adc.assert_called_once_with(
+            scopes=["1", "2"],
+            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
+            quota_project_id="octopus",
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.ExecutionsGrpcTransport,
+        transports.ExecutionsGrpcAsyncIOTransport,
+        transports.ExecutionsRestTransport,
+    ],
+)
+def test_executions_transport_auth_gdch_credentials(transport_class):
+    host = 'https://language.com'
+    api_audience_tests = [None, 'https://language2.com']
+    api_audience_expect = [host, 'https://language2.com']
+    for t, e in zip(api_audience_tests, api_audience_expect):
+        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
+            gdch_mock = mock.MagicMock()
+            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
+            adc.return_value = (gdch_mock, None)
+            transport_class(host=host, api_audience=t)
+            gdch_mock.with_gdch_audience.assert_called_once_with(
+                e
+            )
+
+
+@pytest.mark.parametrize(
+    "transport_class,grpc_helpers",
+    [
+        (transports.ExecutionsGrpcTransport, grpc_helpers),
+        (transports.ExecutionsGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_executions_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=creds,
+            credentials_file=None,
+            quota_project_id="octopus",
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=["1", "2"],
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.ExecutionsGrpcTransport, transports.ExecutionsGrpcAsyncIOTransport])
+def test_executions_grpc_transport_client_cert_source_for_mtls(
+    transport_class
+):
+    cred = ga_credentials.AnonymousCredentials()
+
+    # Check ssl_channel_credentials is used if provided.
+    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
+        mock_ssl_channel_creds = mock.Mock()
+        transport_class(
+            host="squid.clam.whelk",
+            credentials=cred,
+            ssl_channel_credentials=mock_ssl_channel_creds
+        )
+        mock_create_channel.assert_called_once_with(
+            "squid.clam.whelk:443",
+            credentials=cred,
+            credentials_file=None,
+            scopes=None,
+            ssl_credentials=mock_ssl_channel_creds,
+            quota_project_id=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
+    # is used.
+    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
+        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
+            transport_class(
+                credentials=cred,
+                client_cert_source_for_mtls=client_cert_source_callback
+            )
+            expected_cert, expected_key = client_cert_source_callback()
+            mock_ssl_cred.assert_called_once_with(
+                certificate_chain=expected_cert,
+                private_key=expected_key
+            )
+
+def test_executions_http_transport_client_cert_source_for_mtls():
+    cred = ga_credentials.AnonymousCredentials()
+    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
+        transports.ExecutionsRestTransport (
+            credentials=cred,
+            client_cert_source_for_mtls=client_cert_source_callback
+        )
+        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
+
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_executions_host_no_port(transport_name):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_executions_host_with_port(transport_name):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_executions_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = ExecutionsClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = ExecutionsClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.get_execution._session
+    session2 = client2.transport.get_execution._session
+    assert session1 != session2
+    session1 = client1.transport.list_executions._session
+    session2 = client2.transport.list_executions._session
+    assert session1 != session2
+    session1 = client1.transport.delete_execution._session
+    session2 = client2.transport.delete_execution._session
+    assert session1 != session2
+    session1 = client1.transport.cancel_execution._session
+    session2 = client2.transport.cancel_execution._session
+    assert session1 != session2
+def test_executions_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ExecutionsGrpcTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+def test_executions_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ExecutionsGrpcAsyncIOTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.ExecutionsGrpcTransport, transports.ExecutionsGrpcAsyncIOTransport])
+def test_executions_transport_channel_mtls_with_client_cert_source(
+    transport_class
+):
+    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_ssl_cred = mock.Mock()
+            grpc_ssl_channel_cred.return_value = mock_ssl_cred
+
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+
+            cred = ga_credentials.AnonymousCredentials()
+            with pytest.warns(DeprecationWarning):
+                with mock.patch.object(google.auth, 'default') as adc:
+                    adc.return_value = (cred, None)
+                    transport = transport_class(
+                        host="squid.clam.whelk",
+                        api_mtls_endpoint="mtls.squid.clam.whelk",
+                        client_cert_source=client_cert_source_callback,
+                    )
+                    adc.assert_called_once()
+
+            grpc_ssl_channel_cred.assert_called_once_with(
+                certificate_chain=b"cert bytes", private_key=b"key bytes"
+            )
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+            assert transport._ssl_channel_credentials == mock_ssl_cred
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.ExecutionsGrpcTransport, transports.ExecutionsGrpcAsyncIOTransport])
+def test_executions_transport_channel_mtls_with_adc(
+    transport_class
+):
+    mock_ssl_cred = mock.Mock()
+    with mock.patch.multiple(
+        "google.auth.transport.grpc.SslCredentials",
+        __init__=mock.Mock(return_value=None),
+        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
+    ):
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+            mock_cred = mock.Mock()
+
+            with pytest.warns(DeprecationWarning):
+                transport = transport_class(
+                    host="squid.clam.whelk",
+                    credentials=mock_cred,
+                    api_mtls_endpoint="mtls.squid.clam.whelk",
+                    client_cert_source=None,
+                )
+
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=mock_cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+
+
+def test_executions_grpc_lro_client():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+    transport = client.transport
+
+    # Ensure that we have a api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+        operations_v1.OperationsClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+
+def test_executions_grpc_lro_async_client():
+    client = ExecutionsAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc_asyncio',
+    )
+    transport = client.transport
+
+    # Ensure that we have a api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+        operations_v1.OperationsAsyncClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+
+def test_connector_path():
+    project = "squid"
+    location = "clam"
+    connector = "whelk"
+    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+    actual = ExecutionsClient.connector_path(project, location, connector)
+    assert expected == actual
+
+
+def test_parse_connector_path():
+    expected = {
+        "project": "octopus",
+        "location": "oyster",
+        "connector": "nudibranch",
+    }
+    path = ExecutionsClient.connector_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_connector_path(path)
+    assert expected == actual
+
+def test_crypto_key_path():
+    project = "cuttlefish"
+    location = "mussel"
+    key_ring = "winkle"
+    crypto_key = "nautilus"
+    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+    actual = ExecutionsClient.crypto_key_path(project, location, key_ring, crypto_key)
+    assert expected == actual
+
+
+def test_parse_crypto_key_path():
+    expected = {
+        "project": "scallop",
+        "location": "abalone",
+        "key_ring": "squid",
+        "crypto_key": "clam",
+    }
+    path = ExecutionsClient.crypto_key_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_crypto_key_path(path)
+    assert expected == actual
+
+def test_execution_path():
+    project = "whelk"
+    location = "octopus"
+    job = "oyster"
+    execution = "nudibranch"
+    expected = "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
+    actual = ExecutionsClient.execution_path(project, location, job, execution)
+    assert expected == actual
+
+
+def test_parse_execution_path():
+    expected = {
+        "project": "cuttlefish",
+        "location": "mussel",
+        "job": "winkle",
+        "execution": "nautilus",
+    }
+    path = ExecutionsClient.execution_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_execution_path(path)
+    assert expected == actual
+
+def test_job_path():
+    project = "scallop"
+    location = "abalone"
+    job = "squid"
+    expected = "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
+    actual = ExecutionsClient.job_path(project, location, job)
+    assert expected == actual
+
+
+def test_parse_job_path():
+    expected = {
+        "project": "clam",
+        "location": "whelk",
+        "job": "octopus",
+    }
+    path = ExecutionsClient.job_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_job_path(path)
+    assert expected == actual
+
+def test_secret_path():
+    project = "oyster"
+    secret = "nudibranch"
+    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+    actual = ExecutionsClient.secret_path(project, secret)
+    assert expected == actual
+
+
+def test_parse_secret_path():
+    expected = {
+        "project": "cuttlefish",
+        "secret": "mussel",
+    }
+    path = ExecutionsClient.secret_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_secret_path(path)
+    assert expected == actual
+
+def test_secret_version_path():
+    project = "winkle"
+    secret = "nautilus"
+    version = "scallop"
+    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+    actual = ExecutionsClient.secret_version_path(project, secret, version)
+    assert expected == actual
+
+
+def test_parse_secret_version_path():
+    expected = {
+        "project": "abalone",
+        "secret": "squid",
+        "version": "clam",
+    }
+    path = ExecutionsClient.secret_version_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_secret_version_path(path)
+    assert expected == actual
+
+def test_common_billing_account_path():
+    billing_account = "whelk"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = ExecutionsClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "octopus",
+    }
+    path = ExecutionsClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "oyster"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = ExecutionsClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "nudibranch",
+    }
+    path = ExecutionsClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "cuttlefish"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = ExecutionsClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "mussel",
+    }
+    path = ExecutionsClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "winkle"
+    expected = "projects/{project}".format(project=project, )
+    actual = ExecutionsClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "nautilus",
+    }
+    path = ExecutionsClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_common_project_path(path)
+    assert expected == actual
+
+def test_common_location_path():
+    project = "scallop"
+    location = "abalone"
+    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
+    actual = ExecutionsClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "squid",
+        "location": "clam",
+    }
+    path = ExecutionsClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ExecutionsClient.parse_common_location_path(path)
+    assert expected == actual
+
+
+def test_client_with_default_client_info():
+    client_info = gapic_v1.client_info.ClientInfo()
+
+    with mock.patch.object(transports.ExecutionsTransport, '_prep_wrapped_messages') as prep:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.ExecutionsTransport, '_prep_wrapped_messages') as prep:
+        transport_class = ExecutionsClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+
+def test_delete_operation(transport: str = "grpc"):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+        response = client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+@pytest.mark.asyncio
+async def test_delete_operation_async(transport: str = "grpc_asyncio"):
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+def test_delete_operation_field_headers():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value =  None
+
+        client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_delete_operation_field_headers_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_delete_operation_from_dict():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+
+        response = client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_delete_operation_from_dict_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_wait_operation(transport: str = "grpc"):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_wait_operation(transport: str = "grpc_asyncio"):
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_wait_operation_field_headers():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_wait_operation_field_headers_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_wait_operation_from_dict():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_wait_operation_from_dict_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_get_operation(transport: str = "grpc"):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_get_operation_async(transport: str = "grpc_asyncio"):
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_get_operation_field_headers():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_get_operation_field_headers_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_get_operation_from_dict():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_get_operation_from_dict_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_list_operations(transport: str = "grpc"):
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+        response = client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+@pytest.mark.asyncio
+async def test_list_operations_async(transport: str = "grpc_asyncio"):
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+def test_list_operations_field_headers():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_list_operations_field_headers_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_list_operations_from_dict():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        response = client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_list_operations_from_dict_async():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_transport_close_grpc():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+@pytest.mark.asyncio
+async def test_transport_close_grpc_asyncio():
+    client = ExecutionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        async with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_transport_close_rest():
+    client = ExecutionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_client_ctx():
+    transports = [
+        'rest',
+        'grpc',
+    ]
+    for transport in transports:
+        client = ExecutionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        # Test client calls underlying transport.
+        with mock.patch.object(type(client.transport), "close") as close:
+            close.assert_not_called()
+            with client:
+                pass
+            close.assert_called()
+
+@pytest.mark.parametrize("client_class,transport_class", [
+    (ExecutionsClient, transports.ExecutionsGrpcTransport),
+    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport),
+])
+def test_api_key_credentials(client_class, transport_class):
+    with mock.patch.object(
+        google.auth._default, "get_api_key_credentials", create=True
+    ) as get_api_key_credentials:
+        mock_cred = mock.Mock()
+        get_api_key_credentials.return_value = mock_cred
+        options = client_options.ClientOptions()
+        options.api_key = "api_key"
+        with mock.patch.object(transport_class, "__init__") as patched:
+            patched.return_value = None
+            client = client_class(client_options=options)
+            patched.assert_called_once_with(
+                credentials=mock_cred,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_jobs.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_jobs.py
new file mode 100644
index 000000000000..2856430a0a97
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_jobs.py
@@ -0,0 +1,8448 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 os
+# try/except added for compatibility with python < 3.8
+try:
+    from unittest import mock
+    from unittest.mock import AsyncMock  # pragma: NO COVER
+except ImportError:  # pragma: NO COVER
+    import mock
+
+import grpc
+from grpc.experimental import aio
+from collections.abc import Iterable, AsyncIterable
+from google.protobuf import json_format
+import json
+import math
+import pytest
+from google.api_core import api_core_version
+from proto.marshal.rules.dates import DurationRule, TimestampRule
+from proto.marshal.rules import wrappers
+from requests import Response
+from requests import Request, PreparedRequest
+from requests.sessions import Session
+from google.protobuf import json_format
+
+try:
+    from google.auth.aio import credentials as ga_credentials_async
+    HAS_GOOGLE_AUTH_AIO = True
+except ImportError: # pragma: NO COVER
+    HAS_GOOGLE_AUTH_AIO = False
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import client_options
+from google.api_core import exceptions as core_exceptions
+from google.api_core import future
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers
+from google.api_core import grpc_helpers_async
+from google.api_core import operation
+from google.api_core import operation_async  # type: ignore
+from google.api_core import operations_v1
+from google.api_core import path_template
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.location import locations_pb2
+from google.cloud.run_v2.services.jobs import JobsAsyncClient
+from google.cloud.run_v2.services.jobs import JobsClient
+from google.cloud.run_v2.services.jobs import pagers
+from google.cloud.run_v2.services.jobs import transports
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import execution
+from google.cloud.run_v2.types import execution_template
+from google.cloud.run_v2.types import job
+from google.cloud.run_v2.types import job as gcr_job
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import task_template
+from google.cloud.run_v2.types import vendor_settings
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import options_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from google.oauth2 import service_account
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import field_mask_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from google.type import expr_pb2  # type: ignore
+import google.auth
+
+
+async def mock_async_gen(data, chunk_size=1):
+    for i in range(0, len(data)):  # pragma: NO COVER
+        chunk = data[i : i + chunk_size]
+        yield chunk.encode("utf-8")
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
+# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
+def async_anonymous_credentials():
+    if HAS_GOOGLE_AUTH_AIO:
+        return ga_credentials_async.AnonymousCredentials()
+    return ga_credentials.AnonymousCredentials()
+
+# If default endpoint is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint(client):
+    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
+
+# If default endpoint template is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint template so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint_template(client):
+    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
+
+
+def test__get_default_mtls_endpoint():
+    api_endpoint = "example.googleapis.com"
+    api_mtls_endpoint = "example.mtls.googleapis.com"
+    sandbox_endpoint = "example.sandbox.googleapis.com"
+    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
+    non_googleapi = "api.example.com"
+
+    assert JobsClient._get_default_mtls_endpoint(None) is None
+    assert JobsClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert JobsClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert JobsClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert JobsClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert JobsClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+def test__read_environment_variables():
+    assert JobsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        assert JobsClient._read_environment_variables() == (True, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        assert JobsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            JobsClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        assert JobsClient._read_environment_variables() == (False, "never", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        assert JobsClient._read_environment_variables() == (False, "always", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
+        assert JobsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            JobsClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
+        assert JobsClient._read_environment_variables() == (False, "auto", "foo.com")
+
+def test__get_client_cert_source():
+    mock_provided_cert_source = mock.Mock()
+    mock_default_cert_source = mock.Mock()
+
+    assert JobsClient._get_client_cert_source(None, False) is None
+    assert JobsClient._get_client_cert_source(mock_provided_cert_source, False) is None
+    assert JobsClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
+
+    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
+            assert JobsClient._get_client_cert_source(None, True) is mock_default_cert_source
+            assert JobsClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
+
+@mock.patch.object(JobsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsClient))
+@mock.patch.object(JobsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsAsyncClient))
+def test__get_api_endpoint():
+    api_override = "foo.com"
+    mock_client_cert_source = mock.Mock()
+    default_universe = JobsClient._DEFAULT_UNIVERSE
+    default_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    assert JobsClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
+    assert JobsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == JobsClient.DEFAULT_MTLS_ENDPOINT
+    assert JobsClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
+    assert JobsClient._get_api_endpoint(None, None, default_universe, "always") == JobsClient.DEFAULT_MTLS_ENDPOINT
+    assert JobsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == JobsClient.DEFAULT_MTLS_ENDPOINT
+    assert JobsClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
+    assert JobsClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
+
+    with pytest.raises(MutualTLSChannelError) as excinfo:
+        JobsClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
+    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
+
+
+def test__get_universe_domain():
+    client_universe_domain = "foo.com"
+    universe_domain_env = "bar.com"
+
+    assert JobsClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
+    assert JobsClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
+    assert JobsClient._get_universe_domain(None, None) == JobsClient._DEFAULT_UNIVERSE
+
+    with pytest.raises(ValueError) as excinfo:
+        JobsClient._get_universe_domain("", None)
+    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (JobsClient, "grpc"),
+    (JobsAsyncClient, "grpc_asyncio"),
+    (JobsClient, "rest"),
+])
+def test_jobs_client_from_service_account_info(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
+        factory.return_value = creds
+        info = {"valid": True}
+        client = client_class.from_service_account_info(info, transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.JobsGrpcTransport, "grpc"),
+    (transports.JobsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.JobsRestTransport, "rest"),
+])
+def test_jobs_client_service_account_always_use_jwt(transport_class, transport_name):
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=True)
+        use_jwt.assert_called_once_with(True)
+
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=False)
+        use_jwt.assert_not_called()
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (JobsClient, "grpc"),
+    (JobsAsyncClient, "grpc_asyncio"),
+    (JobsClient, "rest"),
+])
+def test_jobs_client_from_service_account_file(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
+        factory.return_value = creds
+        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+def test_jobs_client_get_transport_class():
+    transport = JobsClient.get_transport_class()
+    available_transports = [
+        transports.JobsGrpcTransport,
+        transports.JobsRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = JobsClient.get_transport_class("grpc")
+    assert transport == transports.JobsGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (JobsClient, transports.JobsGrpcTransport, "grpc"),
+    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (JobsClient, transports.JobsRestTransport, "rest"),
+])
+@mock.patch.object(JobsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsClient))
+@mock.patch.object(JobsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsAsyncClient))
+def test_jobs_client_client_options(client_class, transport_class, transport_name):
+    # Check that if channel is provided we won't create a new one.
+    with mock.patch.object(JobsClient, 'get_transport_class') as gtc:
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+        client = client_class(transport=transport)
+        gtc.assert_not_called()
+
+    # Check that if channel is provided via str we will create a new one.
+    with mock.patch.object(JobsClient, 'get_transport_class') as gtc:
+        client = client_class(transport=transport_name)
+        gtc.assert_called()
+
+    # Check the case api_endpoint is provided.
+    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(transport=transport_name, client_options=options)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "never".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "always".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client.DEFAULT_MTLS_ENDPOINT,
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    # Check the case quota_project_id is provided
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id="octopus",
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+    # Check the case api_endpoint is provided
+    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
+    with mock.patch.object(transport_class, '__init__') as patched:
+        patched.return_value = None
+        client = client_class(client_options=options, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience="https://language.googleapis.com"
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
+    (JobsClient, transports.JobsGrpcTransport, "grpc", "true"),
+    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (JobsClient, transports.JobsGrpcTransport, "grpc", "false"),
+    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (JobsClient, transports.JobsRestTransport, "rest", "true"),
+    (JobsClient, transports.JobsRestTransport, "rest", "false"),
+])
+@mock.patch.object(JobsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsClient))
+@mock.patch.object(JobsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_jobs_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
+    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
+    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
+
+    # Check the case client_cert_source is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
+        with mock.patch.object(transport_class, '__init__') as patched:
+            patched.return_value = None
+            client = client_class(client_options=options, transport=transport_name)
+
+            if use_client_cert_env == "false":
+                expected_client_cert_source = None
+                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+            else:
+                expected_client_cert_source = client_cert_source_callback
+                expected_host = client.DEFAULT_MTLS_ENDPOINT
+
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=expected_host,
+                scopes=None,
+                client_cert_source_for_mtls=expected_client_cert_source,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case ADC client cert is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
+                    if use_client_cert_env == "false":
+                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+                        expected_client_cert_source = None
+                    else:
+                        expected_host = client.DEFAULT_MTLS_ENDPOINT
+                        expected_client_cert_source = client_cert_source_callback
+
+                    patched.return_value = None
+                    client = client_class(transport=transport_name)
+                    patched.assert_called_once_with(
+                        credentials=None,
+                        credentials_file=None,
+                        host=expected_host,
+                        scopes=None,
+                        client_cert_source_for_mtls=expected_client_cert_source,
+                        quota_project_id=None,
+                        client_info=transports.base.DEFAULT_CLIENT_INFO,
+                        always_use_jwt_access=True,
+                        api_audience=None,
+                    )
+
+    # Check the case client_cert_source and ADC client cert are not provided.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
+                patched.return_value = None
+                client = client_class(transport=transport_name)
+                patched.assert_called_once_with(
+                    credentials=None,
+                    credentials_file=None,
+                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                    scopes=None,
+                    client_cert_source_for_mtls=None,
+                    quota_project_id=None,
+                    client_info=transports.base.DEFAULT_CLIENT_INFO,
+                    always_use_jwt_access=True,
+                    api_audience=None,
+                )
+
+
+@pytest.mark.parametrize("client_class", [
+    JobsClient, JobsAsyncClient
+])
+@mock.patch.object(JobsClient, "DEFAULT_ENDPOINT", modify_default_endpoint(JobsClient))
+@mock.patch.object(JobsAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(JobsAsyncClient))
+def test_jobs_client_get_mtls_endpoint_and_cert_source(client_class):
+    mock_client_cert_source = mock.Mock()
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source == mock_client_cert_source
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        mock_client_cert_source = mock.Mock()
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
+            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+            assert api_endpoint == client_class.DEFAULT_ENDPOINT
+            assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
+                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+                assert cert_source == mock_client_cert_source
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+@pytest.mark.parametrize("client_class", [
+    JobsClient, JobsAsyncClient
+])
+@mock.patch.object(JobsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsClient))
+@mock.patch.object(JobsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsAsyncClient))
+def test_jobs_client_client_api_endpoint(client_class):
+    mock_client_cert_source = client_cert_source_callback
+    api_override = "foo.com"
+    default_universe = JobsClient._DEFAULT_UNIVERSE
+    default_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
+    # use ClientOptions.api_endpoint as the api endpoint regardless.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
+            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
+            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+            assert client.api_endpoint == api_override
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
+    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+
+    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
+    # and ClientOptions.universe_domain="bar.com",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
+    options = client_options.ClientOptions()
+    universe_exists = hasattr(options, "universe_domain")
+    if universe_exists:
+        options = client_options.ClientOptions(universe_domain=mock_universe)
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    else:
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
+    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
+
+    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    options = client_options.ClientOptions()
+    if hasattr(options, "universe_domain"):
+        delattr(options, "universe_domain")
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (JobsClient, transports.JobsGrpcTransport, "grpc"),
+    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (JobsClient, transports.JobsRestTransport, "rest"),
+])
+def test_jobs_client_client_options_scopes(client_class, transport_class, transport_name):
+    # Check the case scopes are provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=["1", "2"],
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (JobsClient, transports.JobsGrpcTransport, "grpc", grpc_helpers),
+    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (JobsClient, transports.JobsRestTransport, "rest", None),
+])
+def test_jobs_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+def test_jobs_client_client_options_from_dict():
+    with mock.patch('google.cloud.run_v2.services.jobs.transports.JobsGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = JobsClient(
+            client_options={'api_endpoint': 'squid.clam.whelk'}
+        )
+        grpc_transport.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (JobsClient, transports.JobsGrpcTransport, "grpc", grpc_helpers),
+    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_jobs_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # test that the credentials from file are saved and used as the credentials.
+    with mock.patch.object(
+        google.auth, "load_credentials_from_file", autospec=True
+    ) as load_creds, mock.patch.object(
+        google.auth, "default", autospec=True
+    ) as adc, mock.patch.object(
+        grpc_helpers, "create_channel"
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        file_creds = ga_credentials.AnonymousCredentials()
+        load_creds.return_value = (file_creds, None)
+        adc.return_value = (creds, None)
+        client = client_class(client_options=options, transport=transport_name)
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=file_creds,
+            credentials_file=None,
+            quota_project_id=None,
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=None,
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  gcr_job.CreateJobRequest,
+  dict,
+])
+def test_create_job(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.create_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = gcr_job.CreateJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_create_job_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = gcr_job.CreateJobRequest(
+        parent='parent_value',
+        job_id='job_id_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.create_job(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == gcr_job.CreateJobRequest(
+            parent='parent_value',
+            job_id='job_id_value',
+        )
+
+def test_create_job_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.create_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.create_job] = mock_rpc
+        request = {}
+        client.create_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.create_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_create_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.create_job in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.create_job] = mock_rpc
+
+        request = {}
+        await client.create_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.create_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_create_job_async(transport: str = 'grpc_asyncio', request_type=gcr_job.CreateJobRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.create_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = gcr_job.CreateJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_create_job_async_from_dict():
+    await test_create_job_async(request_type=dict)
+
+
+def test_create_job_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.create_job(
+            parent='parent_value',
+            job=gcr_job.Job(name='name_value'),
+            job_id='job_id_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+        arg = args[0].job
+        mock_val = gcr_job.Job(name='name_value')
+        assert arg == mock_val
+        arg = args[0].job_id
+        mock_val = 'job_id_value'
+        assert arg == mock_val
+
+
+def test_create_job_flattened_error():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.create_job(
+            gcr_job.CreateJobRequest(),
+            parent='parent_value',
+            job=gcr_job.Job(name='name_value'),
+            job_id='job_id_value',
+        )
+
+@pytest.mark.asyncio
+async def test_create_job_flattened_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.create_job(
+            parent='parent_value',
+            job=gcr_job.Job(name='name_value'),
+            job_id='job_id_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+        arg = args[0].job
+        mock_val = gcr_job.Job(name='name_value')
+        assert arg == mock_val
+        arg = args[0].job_id
+        mock_val = 'job_id_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_create_job_flattened_error_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.create_job(
+            gcr_job.CreateJobRequest(),
+            parent='parent_value',
+            job=gcr_job.Job(name='name_value'),
+            job_id='job_id_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  job.GetJobRequest,
+  dict,
+])
+def test_get_job(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = job.Job(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            creator='creator_value',
+            last_modifier='last_modifier_value',
+            client='client_value',
+            client_version='client_version_value',
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            observed_generation=2021,
+            execution_count=1628,
+            reconciling=True,
+            satisfies_pzs=True,
+            etag='etag_value',
+            start_execution_token='start_execution_token_value',
+        )
+        response = client.get_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = job.GetJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, job.Job)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.creator == 'creator_value'
+    assert response.last_modifier == 'last_modifier_value'
+    assert response.client == 'client_value'
+    assert response.client_version == 'client_version_value'
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.observed_generation == 2021
+    assert response.execution_count == 1628
+    assert response.reconciling is True
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+def test_get_job_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = job.GetJobRequest(
+        name='name_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.get_job(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == job.GetJobRequest(
+            name='name_value',
+        )
+
+def test_get_job_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_job] = mock_rpc
+        request = {}
+        client.get_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.get_job in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.get_job] = mock_rpc
+
+        request = {}
+        await client.get_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.get_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_job_async(transport: str = 'grpc_asyncio', request_type=job.GetJobRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(job.Job(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            creator='creator_value',
+            last_modifier='last_modifier_value',
+            client='client_value',
+            client_version='client_version_value',
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            observed_generation=2021,
+            execution_count=1628,
+            reconciling=True,
+            satisfies_pzs=True,
+            etag='etag_value',
+        ))
+        response = await client.get_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = job.GetJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, job.Job)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.creator == 'creator_value'
+    assert response.last_modifier == 'last_modifier_value'
+    assert response.client == 'client_value'
+    assert response.client_version == 'client_version_value'
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.observed_generation == 2021
+    assert response.execution_count == 1628
+    assert response.reconciling is True
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.asyncio
+async def test_get_job_async_from_dict():
+    await test_get_job_async(request_type=dict)
+
+
+def test_get_job_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = job.Job()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.get_job(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_get_job_flattened_error():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_job(
+            job.GetJobRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_get_job_flattened_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = job.Job()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.Job())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.get_job(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_get_job_flattened_error_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.get_job(
+            job.GetJobRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  job.ListJobsRequest,
+  dict,
+])
+def test_list_jobs(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = job.ListJobsResponse(
+            next_page_token='next_page_token_value',
+        )
+        response = client.list_jobs(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = job.ListJobsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListJobsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_jobs_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = job.ListJobsRequest(
+        parent='parent_value',
+        page_token='page_token_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.list_jobs(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == job.ListJobsRequest(
+            parent='parent_value',
+            page_token='page_token_value',
+        )
+
+def test_list_jobs_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_jobs in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_jobs] = mock_rpc
+        request = {}
+        client.list_jobs(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_jobs(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_jobs_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.list_jobs in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.list_jobs] = mock_rpc
+
+        request = {}
+        await client.list_jobs(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.list_jobs(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_jobs_async(transport: str = 'grpc_asyncio', request_type=job.ListJobsRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(job.ListJobsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        response = await client.list_jobs(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = job.ListJobsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListJobsAsyncPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.asyncio
+async def test_list_jobs_async_from_dict():
+    await test_list_jobs_async(request_type=dict)
+
+
+def test_list_jobs_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = job.ListJobsResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.list_jobs(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+
+def test_list_jobs_flattened_error():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_jobs(
+            job.ListJobsRequest(),
+            parent='parent_value',
+        )
+
+@pytest.mark.asyncio
+async def test_list_jobs_flattened_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = job.ListJobsResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.ListJobsResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.list_jobs(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_list_jobs_flattened_error_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.list_jobs(
+            job.ListJobsRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_jobs_pager(transport_name: str = "grpc"):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                    job.Job(),
+                ],
+                next_page_token='abc',
+            ),
+            job.ListJobsResponse(
+                jobs=[],
+                next_page_token='def',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                ],
+                next_page_token='ghi',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                ],
+            ),
+            RuntimeError,
+        )
+
+        expected_metadata = ()
+        retry = retries.Retry()
+        timeout = 5
+        pager = client.list_jobs(request={}, retry=retry, timeout=timeout)
+
+        assert pager._metadata == expected_metadata
+        assert pager._retry == retry
+        assert pager._timeout == timeout
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, job.Job)
+                   for i in results)
+def test_list_jobs_pages(transport_name: str = "grpc"):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                    job.Job(),
+                ],
+                next_page_token='abc',
+            ),
+            job.ListJobsResponse(
+                jobs=[],
+                next_page_token='def',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                ],
+                next_page_token='ghi',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = list(client.list_jobs(request={}).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.asyncio
+async def test_list_jobs_async_pager():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                    job.Job(),
+                ],
+                next_page_token='abc',
+            ),
+            job.ListJobsResponse(
+                jobs=[],
+                next_page_token='def',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                ],
+                next_page_token='ghi',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                ],
+            ),
+            RuntimeError,
+        )
+        async_pager = await client.list_jobs(request={},)
+        assert async_pager.next_page_token == 'abc'
+        responses = []
+        async for response in async_pager: # pragma: no branch
+            responses.append(response)
+
+        assert len(responses) == 6
+        assert all(isinstance(i, job.Job)
+                for i in responses)
+
+
+@pytest.mark.asyncio
+async def test_list_jobs_async_pages():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                    job.Job(),
+                ],
+                next_page_token='abc',
+            ),
+            job.ListJobsResponse(
+                jobs=[],
+                next_page_token='def',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                ],
+                next_page_token='ghi',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = []
+        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
+        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
+        async for page_ in ( # pragma: no branch
+            await client.list_jobs(request={})
+        ).pages:
+            pages.append(page_)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.parametrize("request_type", [
+  gcr_job.UpdateJobRequest,
+  dict,
+])
+def test_update_job(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.update_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = gcr_job.UpdateJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_update_job_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = gcr_job.UpdateJobRequest(
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.update_job(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == gcr_job.UpdateJobRequest(
+        )
+
+def test_update_job_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.update_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.update_job] = mock_rpc
+        request = {}
+        client.update_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.update_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_update_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.update_job in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.update_job] = mock_rpc
+
+        request = {}
+        await client.update_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.update_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_update_job_async(transport: str = 'grpc_asyncio', request_type=gcr_job.UpdateJobRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.update_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = gcr_job.UpdateJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_update_job_async_from_dict():
+    await test_update_job_async(request_type=dict)
+
+
+def test_update_job_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.update_job(
+            job=gcr_job.Job(name='name_value'),
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].job
+        mock_val = gcr_job.Job(name='name_value')
+        assert arg == mock_val
+
+
+def test_update_job_flattened_error():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.update_job(
+            gcr_job.UpdateJobRequest(),
+            job=gcr_job.Job(name='name_value'),
+        )
+
+@pytest.mark.asyncio
+async def test_update_job_flattened_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.update_job(
+            job=gcr_job.Job(name='name_value'),
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].job
+        mock_val = gcr_job.Job(name='name_value')
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_update_job_flattened_error_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.update_job(
+            gcr_job.UpdateJobRequest(),
+            job=gcr_job.Job(name='name_value'),
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  job.DeleteJobRequest,
+  dict,
+])
+def test_delete_job(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.delete_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = job.DeleteJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_delete_job_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = job.DeleteJobRequest(
+        name='name_value',
+        etag='etag_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.delete_job(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == job.DeleteJobRequest(
+            name='name_value',
+            etag='etag_value',
+        )
+
+def test_delete_job_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.delete_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.delete_job] = mock_rpc
+        request = {}
+        client.delete_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.delete_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_delete_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.delete_job in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.delete_job] = mock_rpc
+
+        request = {}
+        await client.delete_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.delete_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_delete_job_async(transport: str = 'grpc_asyncio', request_type=job.DeleteJobRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.delete_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = job.DeleteJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_delete_job_async_from_dict():
+    await test_delete_job_async(request_type=dict)
+
+
+def test_delete_job_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.delete_job(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_delete_job_flattened_error():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.delete_job(
+            job.DeleteJobRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_delete_job_flattened_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.delete_job(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_delete_job_flattened_error_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.delete_job(
+            job.DeleteJobRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  job.RunJobRequest,
+  dict,
+])
+def test_run_job(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.run_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = job.RunJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_run_job_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = job.RunJobRequest(
+        name='name_value',
+        etag='etag_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.run_job(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == job.RunJobRequest(
+            name='name_value',
+            etag='etag_value',
+        )
+
+def test_run_job_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.run_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.run_job] = mock_rpc
+        request = {}
+        client.run_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.run_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_run_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.run_job in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.run_job] = mock_rpc
+
+        request = {}
+        await client.run_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.run_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_run_job_async(transport: str = 'grpc_asyncio', request_type=job.RunJobRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.run_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = job.RunJobRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_run_job_async_from_dict():
+    await test_run_job_async(request_type=dict)
+
+
+def test_run_job_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.run_job(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_run_job_flattened_error():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.run_job(
+            job.RunJobRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_run_job_flattened_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.run_job(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_run_job_flattened_error_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.run_job(
+            job.RunJobRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.GetIamPolicyRequest,
+  dict,
+])
+def test_get_iam_policy(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        )
+        response = client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.GetIamPolicyRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+def test_get_iam_policy_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = iam_policy_pb2.GetIamPolicyRequest(
+        resource='resource_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.get_iam_policy(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == iam_policy_pb2.GetIamPolicyRequest(
+            resource='resource_value',
+        )
+
+def test_get_iam_policy_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_iam_policy in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc
+        request = {}
+        client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_iam_policy_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.get_iam_policy in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.get_iam_policy] = mock_rpc
+
+        request = {}
+        await client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.get_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_iam_policy_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.GetIamPolicyRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        ))
+        response = await client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.GetIamPolicyRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+@pytest.mark.asyncio
+async def test_get_iam_policy_async_from_dict():
+    await test_get_iam_policy_async(request_type=dict)
+
+def test_get_iam_policy_field_headers():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.GetIamPolicyRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        call.return_value = policy_pb2.Policy()
+        client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_get_iam_policy_field_headers_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.GetIamPolicyRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy())
+        await client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+def test_get_iam_policy_from_dict_foreign():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = policy_pb2.Policy()
+        response = client.get_iam_policy(request={
+            'resource': 'resource_value',
+            'options': options_pb2.GetPolicyOptions(requested_policy_version=2598),
+            }
+        )
+        call.assert_called()
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.SetIamPolicyRequest,
+  dict,
+])
+def test_set_iam_policy(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        )
+        response = client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.SetIamPolicyRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+def test_set_iam_policy_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = iam_policy_pb2.SetIamPolicyRequest(
+        resource='resource_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.set_iam_policy(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == iam_policy_pb2.SetIamPolicyRequest(
+            resource='resource_value',
+        )
+
+def test_set_iam_policy_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.set_iam_policy in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc
+        request = {}
+        client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.set_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_set_iam_policy_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.set_iam_policy in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.set_iam_policy] = mock_rpc
+
+        request = {}
+        await client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.set_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_set_iam_policy_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.SetIamPolicyRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        ))
+        response = await client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.SetIamPolicyRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+@pytest.mark.asyncio
+async def test_set_iam_policy_async_from_dict():
+    await test_set_iam_policy_async(request_type=dict)
+
+def test_set_iam_policy_field_headers():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.SetIamPolicyRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        call.return_value = policy_pb2.Policy()
+        client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_set_iam_policy_field_headers_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.SetIamPolicyRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy())
+        await client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+def test_set_iam_policy_from_dict_foreign():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = policy_pb2.Policy()
+        response = client.set_iam_policy(request={
+            'resource': 'resource_value',
+            'policy': policy_pb2.Policy(version=774),
+            'update_mask': field_mask_pb2.FieldMask(paths=['paths_value']),
+            }
+        )
+        call.assert_called()
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.TestIamPermissionsRequest,
+  dict,
+])
+def test_test_iam_permissions(request_type, transport: str = 'grpc'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = iam_policy_pb2.TestIamPermissionsResponse(
+            permissions=['permissions_value'],
+        )
+        response = client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.TestIamPermissionsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
+    assert response.permissions == ['permissions_value']
+
+
+def test_test_iam_permissions_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = iam_policy_pb2.TestIamPermissionsRequest(
+        resource='resource_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.test_iam_permissions(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == iam_policy_pb2.TestIamPermissionsRequest(
+            resource='resource_value',
+        )
+
+def test_test_iam_permissions_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.test_iam_permissions in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.test_iam_permissions] = mock_rpc
+        request = {}
+        client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.test_iam_permissions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_test_iam_permissions_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = JobsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.test_iam_permissions in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.test_iam_permissions] = mock_rpc
+
+        request = {}
+        await client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.test_iam_permissions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_test_iam_permissions_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.TestIamPermissionsRequest):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse(
+            permissions=['permissions_value'],
+        ))
+        response = await client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.TestIamPermissionsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
+    assert response.permissions == ['permissions_value']
+
+
+@pytest.mark.asyncio
+async def test_test_iam_permissions_async_from_dict():
+    await test_test_iam_permissions_async(request_type=dict)
+
+def test_test_iam_permissions_field_headers():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.TestIamPermissionsRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
+        client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_test_iam_permissions_field_headers_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.TestIamPermissionsRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse())
+        await client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+def test_test_iam_permissions_from_dict_foreign():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
+        response = client.test_iam_permissions(request={
+            'resource': 'resource_value',
+            'permissions': ['permissions_value'],
+            }
+        )
+        call.assert_called()
+
+
+def test_create_job_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.create_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.create_job] = mock_rpc
+
+        request = {}
+        client.create_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.create_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_create_job_rest_required_fields(request_type=gcr_job.CreateJobRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request_init["parent"] = ""
+    request_init["job_id"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+    assert "jobId" not in jsonified_request
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).create_job._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+    assert "jobId" in jsonified_request
+    assert jsonified_request["jobId"] == request_init["job_id"]
+
+    jsonified_request["parent"] = 'parent_value'
+    jsonified_request["jobId"] = 'job_id_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).create_job._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("job_id", "validate_only", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "parent" in jsonified_request
+    assert jsonified_request["parent"] == 'parent_value'
+    assert "jobId" in jsonified_request
+    assert jsonified_request["jobId"] == 'job_id_value'
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.create_job(request)
+
+            expected_params = [
+                (
+                    "jobId",
+                    "",
+                ),
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_create_job_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.create_job._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("jobId", "validateOnly", )) & set(("parent", "job", "jobId", )))
+
+
+def test_create_job_rest_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'parent': 'projects/sample1/locations/sample2'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            parent='parent_value',
+            job=gcr_job.Job(name='name_value'),
+            job_id='job_id_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.create_job(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{parent=projects/*/locations/*}/jobs" % client.transport._host, args[1])
+
+
+def test_create_job_rest_flattened_error(transport: str = 'rest'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.create_job(
+            gcr_job.CreateJobRequest(),
+            parent='parent_value',
+            job=gcr_job.Job(name='name_value'),
+            job_id='job_id_value',
+        )
+
+
+def test_get_job_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_job] = mock_rpc
+
+        request = {}
+        client.get_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_get_job_rest_required_fields(request_type=job.GetJobRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_job._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_job._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = job.Job()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = job.Job.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.get_job(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_get_job_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.get_job._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("name", )))
+
+
+def test_get_job_rest_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = job.Job()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = job.Job.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.get_job(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*}" % client.transport._host, args[1])
+
+
+def test_get_job_rest_flattened_error(transport: str = 'rest'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_job(
+            job.GetJobRequest(),
+            name='name_value',
+        )
+
+
+def test_list_jobs_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_jobs in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_jobs] = mock_rpc
+
+        request = {}
+        client.list_jobs(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_jobs(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_list_jobs_rest_required_fields(request_type=job.ListJobsRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request_init["parent"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_jobs._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["parent"] = 'parent_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_jobs._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "parent" in jsonified_request
+    assert jsonified_request["parent"] == 'parent_value'
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = job.ListJobsResponse()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = job.ListJobsResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.list_jobs(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_list_jobs_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.list_jobs._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
+
+
+def test_list_jobs_rest_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = job.ListJobsResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'parent': 'projects/sample1/locations/sample2'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            parent='parent_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = job.ListJobsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.list_jobs(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{parent=projects/*/locations/*}/jobs" % client.transport._host, args[1])
+
+
+def test_list_jobs_rest_flattened_error(transport: str = 'rest'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_jobs(
+            job.ListJobsRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_jobs_rest_pager(transport: str = 'rest'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # TODO(kbandes): remove this mock unless there's a good reason for it.
+        #with mock.patch.object(path_template, 'transcode') as transcode:
+        # Set the response as a series of pages
+        response = (
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                    job.Job(),
+                ],
+                next_page_token='abc',
+            ),
+            job.ListJobsResponse(
+                jobs=[],
+                next_page_token='def',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                ],
+                next_page_token='ghi',
+            ),
+            job.ListJobsResponse(
+                jobs=[
+                    job.Job(),
+                    job.Job(),
+                ],
+            ),
+        )
+        # Two responses for two calls
+        response = response + response
+
+        # Wrap the values into proper Response objs
+        response = tuple(job.ListJobsResponse.to_json(x) for x in response)
+        return_values = tuple(Response() for i in response)
+        for return_val, response_val in zip(return_values, response):
+            return_val._content = response_val.encode('UTF-8')
+            return_val.status_code = 200
+        req.side_effect = return_values
+
+        sample_request = {'parent': 'projects/sample1/locations/sample2'}
+
+        pager = client.list_jobs(request=sample_request)
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, job.Job)
+                for i in results)
+
+        pages = list(client.list_jobs(request=sample_request).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+
+def test_update_job_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.update_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.update_job] = mock_rpc
+
+        request = {}
+        client.update_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.update_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_update_job_rest_required_fields(request_type=gcr_job.UpdateJobRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_job._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_job._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("allow_missing", "validate_only", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "patch",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.update_job(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_update_job_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.update_job._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("allowMissing", "validateOnly", )) & set(("job", )))
+
+
+def test_update_job_rest_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'job': {'name': 'projects/sample1/locations/sample2/jobs/sample3'}}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            job=gcr_job.Job(name='name_value'),
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.update_job(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{job.name=projects/*/locations/*/jobs/*}" % client.transport._host, args[1])
+
+
+def test_update_job_rest_flattened_error(transport: str = 'rest'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.update_job(
+            gcr_job.UpdateJobRequest(),
+            job=gcr_job.Job(name='name_value'),
+        )
+
+
+def test_delete_job_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.delete_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.delete_job] = mock_rpc
+
+        request = {}
+        client.delete_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.delete_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_delete_job_rest_required_fields(request_type=job.DeleteJobRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_job._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_job._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("etag", "validate_only", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "delete",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.delete_job(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_delete_job_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.delete_job._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("etag", "validateOnly", )) & set(("name", )))
+
+
+def test_delete_job_rest_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.delete_job(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*}" % client.transport._host, args[1])
+
+
+def test_delete_job_rest_flattened_error(transport: str = 'rest'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.delete_job(
+            job.DeleteJobRequest(),
+            name='name_value',
+        )
+
+
+def test_run_job_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.run_job in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.run_job] = mock_rpc
+
+        request = {}
+        client.run_job(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.run_job(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_run_job_rest_required_fields(request_type=job.RunJobRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).run_job._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).run_job._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.run_job(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_run_job_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.run_job._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("name", )))
+
+
+def test_run_job_rest_flattened():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.run_job(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*}:run" % client.transport._host, args[1])
+
+
+def test_run_job_rest_flattened_error(transport: str = 'rest'):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.run_job(
+            job.RunJobRequest(),
+            name='name_value',
+        )
+
+
+def test_get_iam_policy_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_iam_policy in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc
+
+        request = {}
+        client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_get_iam_policy_rest_required_fields(request_type=iam_policy_pb2.GetIamPolicyRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request_init["resource"] = ""
+    request = request_type(**request_init)
+    pb_request = request
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_iam_policy._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["resource"] = 'resource_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_iam_policy._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("options", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "resource" in jsonified_request
+    assert jsonified_request["resource"] == 'resource_value'
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = policy_pb2.Policy()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.get_iam_policy(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_get_iam_policy_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.get_iam_policy._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("options", )) & set(("resource", )))
+
+
+def test_set_iam_policy_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.set_iam_policy in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc
+
+        request = {}
+        client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.set_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_set_iam_policy_rest_required_fields(request_type=iam_policy_pb2.SetIamPolicyRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request_init["resource"] = ""
+    request = request_type(**request_init)
+    pb_request = request
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).set_iam_policy._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["resource"] = 'resource_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).set_iam_policy._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "resource" in jsonified_request
+    assert jsonified_request["resource"] == 'resource_value'
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = policy_pb2.Policy()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.set_iam_policy(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_set_iam_policy_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.set_iam_policy._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("resource", "policy", )))
+
+
+def test_test_iam_permissions_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.test_iam_permissions in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.test_iam_permissions] = mock_rpc
+
+        request = {}
+        client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.test_iam_permissions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_test_iam_permissions_rest_required_fields(request_type=iam_policy_pb2.TestIamPermissionsRequest):
+    transport_class = transports.JobsRestTransport
+
+    request_init = {}
+    request_init["resource"] = ""
+    request_init["permissions"] = ""
+    request = request_type(**request_init)
+    pb_request = request
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).test_iam_permissions._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["resource"] = 'resource_value'
+    jsonified_request["permissions"] = 'permissions_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).test_iam_permissions._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "resource" in jsonified_request
+    assert jsonified_request["resource"] == 'resource_value'
+    assert "permissions" in jsonified_request
+    assert jsonified_request["permissions"] == 'permissions_value'
+
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = iam_policy_pb2.TestIamPermissionsResponse()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.test_iam_permissions(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_test_iam_permissions_rest_unset_required_fields():
+    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.test_iam_permissions._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("resource", "permissions", )))
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.JobsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.JobsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = JobsClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.JobsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = JobsClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = JobsClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.JobsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = JobsClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.JobsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = JobsClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.JobsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.JobsGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.JobsGrpcTransport,
+    transports.JobsGrpcAsyncIOTransport,
+    transports.JobsRestTransport,
+])
+def test_transport_adc(transport_class):
+    # Test default credentials are used if not provided.
+    with mock.patch.object(google.auth, 'default') as adc:
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport_class()
+        adc.assert_called_once()
+
+def test_transport_kind_grpc():
+    transport = JobsClient.get_transport_class("grpc")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "grpc"
+
+
+def test_initialize_client_w_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_create_job_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.create_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_job.CreateJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_job_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        call.return_value = job.Job()
+        client.get_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.GetJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_jobs_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        call.return_value = job.ListJobsResponse()
+        client.list_jobs(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.ListJobsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_update_job_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.update_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_job.UpdateJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_delete_job_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.delete_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.DeleteJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_run_job_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.run_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.RunJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_iam_policy_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        call.return_value = policy_pb2.Policy()
+        client.get_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.GetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_set_iam_policy_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        call.return_value = policy_pb2.Policy()
+        client.set_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.SetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_test_iam_permissions_empty_call_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
+        client.test_iam_permissions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
+
+        assert args[0] == request_msg
+
+
+def test_create_job_routing_parameters_request_1_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.create_job(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_job.CreateJobRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_get_job_routing_parameters_request_1_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        call.return_value = job.Job()
+        client.get_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.GetJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_list_jobs_routing_parameters_request_1_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        call.return_value = job.ListJobsResponse()
+        client.list_jobs(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.ListJobsRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_update_job_routing_parameters_request_1_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.update_job(request={"job": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_job.UpdateJobRequest(**{"job": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_delete_job_routing_parameters_request_1_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.delete_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.DeleteJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_run_job_routing_parameters_request_1_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.run_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.RunJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_transport_kind_grpc_asyncio():
+    transport = JobsAsyncClient.get_transport_class("grpc_asyncio")(
+        credentials=async_anonymous_credentials()
+    )
+    assert transport.kind == "grpc_asyncio"
+
+
+def test_initialize_client_w_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_create_job_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.create_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_job.CreateJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_get_job_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.Job(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            creator='creator_value',
+            last_modifier='last_modifier_value',
+            client='client_value',
+            client_version='client_version_value',
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            observed_generation=2021,
+            execution_count=1628,
+            reconciling=True,
+            satisfies_pzs=True,
+            etag='etag_value',
+        ))
+        await client.get_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.GetJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_list_jobs_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.ListJobsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        await client.list_jobs(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.ListJobsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_update_job_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.update_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_job.UpdateJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_delete_job_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.delete_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.DeleteJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_run_job_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.run_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.RunJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_get_iam_policy_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        ))
+        await client.get_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.GetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_set_iam_policy_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        ))
+        await client.set_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.SetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_test_iam_permissions_empty_call_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse(
+            permissions=['permissions_value'],
+        ))
+        await client.test_iam_permissions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
+
+        assert args[0] == request_msg
+
+
+@pytest.mark.asyncio
+async def test_create_job_routing_parameters_request_1_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.create_job(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_job.CreateJobRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_get_job_routing_parameters_request_1_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.Job(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            creator='creator_value',
+            last_modifier='last_modifier_value',
+            client='client_value',
+            client_version='client_version_value',
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            observed_generation=2021,
+            execution_count=1628,
+            reconciling=True,
+            satisfies_pzs=True,
+            etag='etag_value',
+        ))
+        await client.get_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.GetJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_list_jobs_routing_parameters_request_1_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.ListJobsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        await client.list_jobs(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.ListJobsRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_update_job_routing_parameters_request_1_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.update_job(request={"job": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_job.UpdateJobRequest(**{"job": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_delete_job_routing_parameters_request_1_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.delete_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.DeleteJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_run_job_routing_parameters_request_1_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.run_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.RunJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_transport_kind_rest():
+    transport = JobsClient.get_transport_class("rest")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "rest"
+
+
+def test_create_job_rest_bad_request(request_type=gcr_job.CreateJobRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.create_job(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  gcr_job.CreateJobRequest,
+  dict,
+])
+def test_create_job_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request_init["job"] = {'name': 'name_value', 'uid': 'uid_value', 'generation': 1068, 'labels': {}, 'annotations': {}, 'create_time': {'seconds': 751, 'nanos': 543}, 'update_time': {}, 'delete_time': {}, 'expire_time': {}, 'creator': 'creator_value', 'last_modifier': 'last_modifier_value', 'client': 'client_value', 'client_version': 'client_version_value', 'launch_stage': 6, 'binary_authorization': {'use_default': True, 'policy': 'policy_value', 'breakglass_justification': 'breakglass_justification_value'}, 'template': {'labels': {}, 'annotations': {}, 'parallelism': 1174, 'task_count': 1083, 'template': {'containers': [{'name': 'name_value', 'image': 'image_value', 'command': ['command_value1', 'command_value2'], 'args': ['args_value1', 'args_value2'], 'env': [{'name': 'name_value', 'value': 'value_value', 'value_source': {'secret_key_ref': {'secret': 'secret_value', 'version': 'version_value'}}}], 'resources': {'limits': {}, 'cpu_idle': True, 'startup_cpu_boost': True}, 'ports': [{'name': 'name_value', 'container_port': 1511}], 'volume_mounts': [{'name': 'name_value', 'mount_path': 'mount_path_value'}], 'working_dir': 'working_dir_value', 'liveness_probe': {'initial_delay_seconds': 2214, 'timeout_seconds': 1621, 'period_seconds': 1489, 'failure_threshold': 1812, 'http_get': {'path': 'path_value', 'http_headers': [{'name': 'name_value', 'value': 'value_value'}], 'port': 453}, 'tcp_socket': {'port': 453}, 'grpc': {'port': 453, 'service': 'service_value'}}, 'startup_probe': {}, 'depends_on': ['depends_on_value1', 'depends_on_value2']}], 'volumes': [{'name': 'name_value', 'secret': {'secret': 'secret_value', 'items': [{'path': 'path_value', 'version': 'version_value', 'mode': 421}], 'default_mode': 1257}, 'cloud_sql_instance': {'instances': ['instances_value1', 'instances_value2']}, 'empty_dir': {'medium': 1, 'size_limit': 'size_limit_value'}, 'nfs': {'server': 'server_value', 'path': 'path_value', 'read_only': True}, 'gcs': {'bucket': 'bucket_value', 'read_only': True, 'mount_options': ['mount_options_value1', 'mount_options_value2']}}], 'max_retries': 1187, 'timeout': {'seconds': 751, 'nanos': 543}, 'service_account': 'service_account_value', 'execution_environment': 1, 'encryption_key': 'encryption_key_value', 'vpc_access': {'connector': 'connector_value', 'egress': 1, 'network_interfaces': [{'network': 'network_value', 'subnetwork': 'subnetwork_value', 'tags': ['tags_value1', 'tags_value2']}]}}}, 'observed_generation': 2021, 'terminal_condition': {'type_': 'type__value', 'state': 1, 'message': 'message_value', 'last_transition_time': {}, 'severity': 1, 'reason': 1, 'revision_reason': 1, 'execution_reason': 1}, 'conditions': {}, 'execution_count': 1628, 'latest_created_execution': {'name': 'name_value', 'create_time': {}, 'completion_time': {}, 'delete_time': {}, 'completion_status': 1}, 'reconciling': True, 'satisfies_pzs': True, 'start_execution_token': 'start_execution_token_value', 'run_execution_token': 'run_execution_token_value', 'etag': 'etag_value'}
+    # The version of a generated dependency at test runtime may differ from the version used during generation.
+    # Delete any fields which are not present in the current runtime dependency
+    # See https://github.com/googleapis/gapic-generator-python/issues/1748
+
+    # Determine if the message type is proto-plus or protobuf
+    test_field = gcr_job.CreateJobRequest.meta.fields["job"]
+
+    def get_message_fields(field):
+        # Given a field which is a message (composite type), return a list with
+        # all the fields of the message.
+        # If the field is not a composite type, return an empty list.
+        message_fields = []
+
+        if hasattr(field, "message") and field.message:
+            is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR")
+
+            if is_field_type_proto_plus_type:
+                message_fields = field.message.meta.fields.values()
+            # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types
+            else: # pragma: NO COVER
+                message_fields = field.message.DESCRIPTOR.fields
+        return message_fields
+
+    runtime_nested_fields = [
+        (field.name, nested_field.name)
+        for field in get_message_fields(test_field)
+        for nested_field in get_message_fields(field)
+    ]
+
+    subfields_not_in_runtime = []
+
+    # For each item in the sample request, create a list of sub fields which are not present at runtime
+    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
+    for field, value in request_init["job"].items(): # pragma: NO COVER
+        result = None
+        is_repeated = False
+        # For repeated fields
+        if isinstance(value, list) and len(value):
+            is_repeated = True
+            result = value[0]
+        # For fields where the type is another message
+        if isinstance(value, dict):
+            result = value
+
+        if result and hasattr(result, "keys"):
+            for subfield in result.keys():
+                if (field, subfield) not in runtime_nested_fields:
+                    subfields_not_in_runtime.append(
+                        {"field": field, "subfield": subfield, "is_repeated": is_repeated}
+                    )
+
+    # Remove fields from the sample request which are not present in the runtime version of the dependency
+    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
+    for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER
+        field = subfield_to_delete.get("field")
+        field_repeated = subfield_to_delete.get("is_repeated")
+        subfield = subfield_to_delete.get("subfield")
+        if subfield:
+            if field_repeated:
+                for i in range(0, len(request_init["job"][field])):
+                    del request_init["job"][field][i][subfield]
+            else:
+                del request_init["job"][field][subfield]
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.create_job(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_create_job_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.JobsRestInterceptor, "post_create_job") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_create_job") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = gcr_job.CreateJobRequest.pb(gcr_job.CreateJobRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = gcr_job.CreateJobRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.create_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_get_job_rest_bad_request(request_type=job.GetJobRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.get_job(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  job.GetJobRequest,
+  dict,
+])
+def test_get_job_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = job.Job(
+              name='name_value',
+              uid='uid_value',
+              generation=1068,
+              creator='creator_value',
+              last_modifier='last_modifier_value',
+              client='client_value',
+              client_version='client_version_value',
+              launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+              observed_generation=2021,
+              execution_count=1628,
+              reconciling=True,
+              satisfies_pzs=True,
+              etag='etag_value',
+            start_execution_token='start_execution_token_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = job.Job.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.get_job(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, job.Job)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.creator == 'creator_value'
+    assert response.last_modifier == 'last_modifier_value'
+    assert response.client == 'client_value'
+    assert response.client_version == 'client_version_value'
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.observed_generation == 2021
+    assert response.execution_count == 1628
+    assert response.reconciling is True
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_get_job_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.JobsRestInterceptor, "post_get_job") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_get_job") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = job.GetJobRequest.pb(job.GetJobRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = job.Job.to_json(job.Job())
+        req.return_value.content = return_value
+
+        request = job.GetJobRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = job.Job()
+
+        client.get_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_list_jobs_rest_bad_request(request_type=job.ListJobsRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.list_jobs(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  job.ListJobsRequest,
+  dict,
+])
+def test_list_jobs_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = job.ListJobsResponse(
+              next_page_token='next_page_token_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = job.ListJobsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.list_jobs(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListJobsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_list_jobs_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.JobsRestInterceptor, "post_list_jobs") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_list_jobs") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = job.ListJobsRequest.pb(job.ListJobsRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = job.ListJobsResponse.to_json(job.ListJobsResponse())
+        req.return_value.content = return_value
+
+        request = job.ListJobsRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = job.ListJobsResponse()
+
+        client.list_jobs(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_update_job_rest_bad_request(request_type=gcr_job.UpdateJobRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'job': {'name': 'projects/sample1/locations/sample2/jobs/sample3'}}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.update_job(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  gcr_job.UpdateJobRequest,
+  dict,
+])
+def test_update_job_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'job': {'name': 'projects/sample1/locations/sample2/jobs/sample3'}}
+    request_init["job"] = {'name': 'projects/sample1/locations/sample2/jobs/sample3', 'uid': 'uid_value', 'generation': 1068, 'labels': {}, 'annotations': {}, 'create_time': {'seconds': 751, 'nanos': 543}, 'update_time': {}, 'delete_time': {}, 'expire_time': {}, 'creator': 'creator_value', 'last_modifier': 'last_modifier_value', 'client': 'client_value', 'client_version': 'client_version_value', 'launch_stage': 6, 'binary_authorization': {'use_default': True, 'policy': 'policy_value', 'breakglass_justification': 'breakglass_justification_value'}, 'template': {'labels': {}, 'annotations': {}, 'parallelism': 1174, 'task_count': 1083, 'template': {'containers': [{'name': 'name_value', 'image': 'image_value', 'command': ['command_value1', 'command_value2'], 'args': ['args_value1', 'args_value2'], 'env': [{'name': 'name_value', 'value': 'value_value', 'value_source': {'secret_key_ref': {'secret': 'secret_value', 'version': 'version_value'}}}], 'resources': {'limits': {}, 'cpu_idle': True, 'startup_cpu_boost': True}, 'ports': [{'name': 'name_value', 'container_port': 1511}], 'volume_mounts': [{'name': 'name_value', 'mount_path': 'mount_path_value'}], 'working_dir': 'working_dir_value', 'liveness_probe': {'initial_delay_seconds': 2214, 'timeout_seconds': 1621, 'period_seconds': 1489, 'failure_threshold': 1812, 'http_get': {'path': 'path_value', 'http_headers': [{'name': 'name_value', 'value': 'value_value'}], 'port': 453}, 'tcp_socket': {'port': 453}, 'grpc': {'port': 453, 'service': 'service_value'}}, 'startup_probe': {}, 'depends_on': ['depends_on_value1', 'depends_on_value2']}], 'volumes': [{'name': 'name_value', 'secret': {'secret': 'secret_value', 'items': [{'path': 'path_value', 'version': 'version_value', 'mode': 421}], 'default_mode': 1257}, 'cloud_sql_instance': {'instances': ['instances_value1', 'instances_value2']}, 'empty_dir': {'medium': 1, 'size_limit': 'size_limit_value'}, 'nfs': {'server': 'server_value', 'path': 'path_value', 'read_only': True}, 'gcs': {'bucket': 'bucket_value', 'read_only': True, 'mount_options': ['mount_options_value1', 'mount_options_value2']}}], 'max_retries': 1187, 'timeout': {'seconds': 751, 'nanos': 543}, 'service_account': 'service_account_value', 'execution_environment': 1, 'encryption_key': 'encryption_key_value', 'vpc_access': {'connector': 'connector_value', 'egress': 1, 'network_interfaces': [{'network': 'network_value', 'subnetwork': 'subnetwork_value', 'tags': ['tags_value1', 'tags_value2']}]}}}, 'observed_generation': 2021, 'terminal_condition': {'type_': 'type__value', 'state': 1, 'message': 'message_value', 'last_transition_time': {}, 'severity': 1, 'reason': 1, 'revision_reason': 1, 'execution_reason': 1}, 'conditions': {}, 'execution_count': 1628, 'latest_created_execution': {'name': 'name_value', 'create_time': {}, 'completion_time': {}, 'delete_time': {}, 'completion_status': 1}, 'reconciling': True, 'satisfies_pzs': True, 'start_execution_token': 'start_execution_token_value', 'run_execution_token': 'run_execution_token_value', 'etag': 'etag_value'}
+    # The version of a generated dependency at test runtime may differ from the version used during generation.
+    # Delete any fields which are not present in the current runtime dependency
+    # See https://github.com/googleapis/gapic-generator-python/issues/1748
+
+    # Determine if the message type is proto-plus or protobuf
+    test_field = gcr_job.UpdateJobRequest.meta.fields["job"]
+
+    def get_message_fields(field):
+        # Given a field which is a message (composite type), return a list with
+        # all the fields of the message.
+        # If the field is not a composite type, return an empty list.
+        message_fields = []
+
+        if hasattr(field, "message") and field.message:
+            is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR")
+
+            if is_field_type_proto_plus_type:
+                message_fields = field.message.meta.fields.values()
+            # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types
+            else: # pragma: NO COVER
+                message_fields = field.message.DESCRIPTOR.fields
+        return message_fields
+
+    runtime_nested_fields = [
+        (field.name, nested_field.name)
+        for field in get_message_fields(test_field)
+        for nested_field in get_message_fields(field)
+    ]
+
+    subfields_not_in_runtime = []
+
+    # For each item in the sample request, create a list of sub fields which are not present at runtime
+    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
+    for field, value in request_init["job"].items(): # pragma: NO COVER
+        result = None
+        is_repeated = False
+        # For repeated fields
+        if isinstance(value, list) and len(value):
+            is_repeated = True
+            result = value[0]
+        # For fields where the type is another message
+        if isinstance(value, dict):
+            result = value
+
+        if result and hasattr(result, "keys"):
+            for subfield in result.keys():
+                if (field, subfield) not in runtime_nested_fields:
+                    subfields_not_in_runtime.append(
+                        {"field": field, "subfield": subfield, "is_repeated": is_repeated}
+                    )
+
+    # Remove fields from the sample request which are not present in the runtime version of the dependency
+    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
+    for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER
+        field = subfield_to_delete.get("field")
+        field_repeated = subfield_to_delete.get("is_repeated")
+        subfield = subfield_to_delete.get("subfield")
+        if subfield:
+            if field_repeated:
+                for i in range(0, len(request_init["job"][field])):
+                    del request_init["job"][field][i][subfield]
+            else:
+                del request_init["job"][field][subfield]
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.update_job(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_update_job_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.JobsRestInterceptor, "post_update_job") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_update_job") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = gcr_job.UpdateJobRequest.pb(gcr_job.UpdateJobRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = gcr_job.UpdateJobRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.update_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_job_rest_bad_request(request_type=job.DeleteJobRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.delete_job(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  job.DeleteJobRequest,
+  dict,
+])
+def test_delete_job_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.delete_job(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_delete_job_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.JobsRestInterceptor, "post_delete_job") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_delete_job") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = job.DeleteJobRequest.pb(job.DeleteJobRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = job.DeleteJobRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.delete_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_run_job_rest_bad_request(request_type=job.RunJobRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.run_job(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  job.RunJobRequest,
+  dict,
+])
+def test_run_job_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.run_job(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_run_job_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.JobsRestInterceptor, "post_run_job") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_run_job") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = job.RunJobRequest.pb(job.RunJobRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = job.RunJobRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.run_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_get_iam_policy_rest_bad_request(request_type=iam_policy_pb2.GetIamPolicyRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.get_iam_policy(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.GetIamPolicyRequest,
+  dict,
+])
+def test_get_iam_policy_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = policy_pb2.Policy(
+              version=774,
+              etag=b'etag_blob',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.get_iam_policy(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_get_iam_policy_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.JobsRestInterceptor, "post_get_iam_policy") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_get_iam_policy") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = iam_policy_pb2.GetIamPolicyRequest()
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(policy_pb2.Policy())
+        req.return_value.content = return_value
+
+        request = iam_policy_pb2.GetIamPolicyRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = policy_pb2.Policy()
+
+        client.get_iam_policy(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_set_iam_policy_rest_bad_request(request_type=iam_policy_pb2.SetIamPolicyRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.set_iam_policy(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.SetIamPolicyRequest,
+  dict,
+])
+def test_set_iam_policy_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = policy_pb2.Policy(
+              version=774,
+              etag=b'etag_blob',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.set_iam_policy(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_set_iam_policy_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.JobsRestInterceptor, "post_set_iam_policy") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_set_iam_policy") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = iam_policy_pb2.SetIamPolicyRequest()
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(policy_pb2.Policy())
+        req.return_value.content = return_value
+
+        request = iam_policy_pb2.SetIamPolicyRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = policy_pb2.Policy()
+
+        client.set_iam_policy(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_test_iam_permissions_rest_bad_request(request_type=iam_policy_pb2.TestIamPermissionsRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.test_iam_permissions(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.TestIamPermissionsRequest,
+  dict,
+])
+def test_test_iam_permissions_rest_call_success(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = iam_policy_pb2.TestIamPermissionsResponse(
+              permissions=['permissions_value'],
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.test_iam_permissions(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
+    assert response.permissions == ['permissions_value']
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_test_iam_permissions_rest_interceptors(null_interceptor):
+    transport = transports.JobsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
+        )
+    client = JobsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.JobsRestInterceptor, "post_test_iam_permissions") as post, \
+        mock.patch.object(transports.JobsRestInterceptor, "pre_test_iam_permissions") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = iam_policy_pb2.TestIamPermissionsRequest()
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(iam_policy_pb2.TestIamPermissionsResponse())
+        req.return_value.content = return_value
+
+        request = iam_policy_pb2.TestIamPermissionsRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = iam_policy_pb2.TestIamPermissionsResponse()
+
+        client.test_iam_permissions(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.delete_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.DeleteOperationRequest,
+    dict,
+])
+def test_delete_operation_rest(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = None
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = '{}'
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.delete_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+
+def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.get_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.GetOperationRequest,
+    dict,
+])
+def test_get_operation_rest(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.get_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+
+def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.list_operations(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.ListOperationsRequest,
+    dict,
+])
+def test_list_operations_rest(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.ListOperationsResponse()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.list_operations(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+
+def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.wait_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.WaitOperationRequest,
+    dict,
+])
+def test_wait_operation_rest(request_type):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.wait_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_initialize_client_w_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_create_job_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        client.create_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_job.CreateJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_job_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        client.get_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.GetJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_jobs_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        client.list_jobs(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.ListJobsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_update_job_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        client.update_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_job.UpdateJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_delete_job_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        client.delete_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.DeleteJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_run_job_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        client.run_job(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = job.RunJobRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_iam_policy_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        client.get_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.GetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_set_iam_policy_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        client.set_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.SetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_test_iam_permissions_empty_call_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        client.test_iam_permissions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
+
+        assert args[0] == request_msg
+
+
+def test_create_job_routing_parameters_request_1_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_job),
+            '__call__') as call:
+        client.create_job(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_job.CreateJobRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_get_job_routing_parameters_request_1_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_job),
+            '__call__') as call:
+        client.get_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.GetJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_list_jobs_routing_parameters_request_1_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_jobs),
+            '__call__') as call:
+        client.list_jobs(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.ListJobsRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_update_job_routing_parameters_request_1_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_job),
+            '__call__') as call:
+        client.update_job(request={"job": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_job.UpdateJobRequest(**{"job": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_delete_job_routing_parameters_request_1_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_job),
+            '__call__') as call:
+        client.delete_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.DeleteJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_run_job_routing_parameters_request_1_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.run_job),
+            '__call__') as call:
+        client.run_job(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = job.RunJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_jobs_rest_lro_client():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    transport = client.transport
+
+    # Ensure that we have an api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+operations_v1.AbstractOperationsClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.JobsGrpcTransport,
+    )
+
+def test_jobs_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.JobsTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_jobs_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.run_v2.services.jobs.transports.JobsTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.JobsTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'create_job',
+        'get_job',
+        'list_jobs',
+        'update_job',
+        'delete_job',
+        'run_job',
+        'get_iam_policy',
+        'set_iam_policy',
+        'test_iam_permissions',
+        'get_operation',
+        'wait_operation',
+        'delete_operation',
+        'list_operations',
+    )
+    for method in methods:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, method)(request=object())
+
+    with pytest.raises(NotImplementedError):
+        transport.close()
+
+    # Additionally, the LRO client (a property) should
+    # also raise NotImplementedError
+    with pytest.raises(NotImplementedError):
+        transport.operations_client
+
+    # Catch all for all remaining methods and properties
+    remainder = [
+        'kind',
+    ]
+    for r in remainder:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, r)()
+
+
+def test_jobs_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.jobs.transports.JobsTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.JobsTransport(
+            credentials_file="credentials.json",
+            quota_project_id="octopus",
+        )
+        load_creds.assert_called_once_with("credentials.json",
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id="octopus",
+        )
+
+
+def test_jobs_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.jobs.transports.JobsTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.JobsTransport()
+        adc.assert_called_once()
+
+
+def test_jobs_auth_adc():
+    # 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)
+        JobsClient()
+        adc.assert_called_once_with(
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id=None,
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.JobsGrpcTransport,
+        transports.JobsGrpcAsyncIOTransport,
+    ],
+)
+def test_jobs_transport_auth_adc(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", scopes=["1", "2"])
+        adc.assert_called_once_with(
+            scopes=["1", "2"],
+            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
+            quota_project_id="octopus",
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.JobsGrpcTransport,
+        transports.JobsGrpcAsyncIOTransport,
+        transports.JobsRestTransport,
+    ],
+)
+def test_jobs_transport_auth_gdch_credentials(transport_class):
+    host = 'https://language.com'
+    api_audience_tests = [None, 'https://language2.com']
+    api_audience_expect = [host, 'https://language2.com']
+    for t, e in zip(api_audience_tests, api_audience_expect):
+        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
+            gdch_mock = mock.MagicMock()
+            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
+            adc.return_value = (gdch_mock, None)
+            transport_class(host=host, api_audience=t)
+            gdch_mock.with_gdch_audience.assert_called_once_with(
+                e
+            )
+
+
+@pytest.mark.parametrize(
+    "transport_class,grpc_helpers",
+    [
+        (transports.JobsGrpcTransport, grpc_helpers),
+        (transports.JobsGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_jobs_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=creds,
+            credentials_file=None,
+            quota_project_id="octopus",
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=["1", "2"],
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.JobsGrpcTransport, transports.JobsGrpcAsyncIOTransport])
+def test_jobs_grpc_transport_client_cert_source_for_mtls(
+    transport_class
+):
+    cred = ga_credentials.AnonymousCredentials()
+
+    # Check ssl_channel_credentials is used if provided.
+    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
+        mock_ssl_channel_creds = mock.Mock()
+        transport_class(
+            host="squid.clam.whelk",
+            credentials=cred,
+            ssl_channel_credentials=mock_ssl_channel_creds
+        )
+        mock_create_channel.assert_called_once_with(
+            "squid.clam.whelk:443",
+            credentials=cred,
+            credentials_file=None,
+            scopes=None,
+            ssl_credentials=mock_ssl_channel_creds,
+            quota_project_id=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
+    # is used.
+    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
+        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
+            transport_class(
+                credentials=cred,
+                client_cert_source_for_mtls=client_cert_source_callback
+            )
+            expected_cert, expected_key = client_cert_source_callback()
+            mock_ssl_cred.assert_called_once_with(
+                certificate_chain=expected_cert,
+                private_key=expected_key
+            )
+
+def test_jobs_http_transport_client_cert_source_for_mtls():
+    cred = ga_credentials.AnonymousCredentials()
+    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
+        transports.JobsRestTransport (
+            credentials=cred,
+            client_cert_source_for_mtls=client_cert_source_callback
+        )
+        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
+
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_jobs_host_no_port(transport_name):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_jobs_host_with_port(transport_name):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_jobs_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = JobsClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = JobsClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.create_job._session
+    session2 = client2.transport.create_job._session
+    assert session1 != session2
+    session1 = client1.transport.get_job._session
+    session2 = client2.transport.get_job._session
+    assert session1 != session2
+    session1 = client1.transport.list_jobs._session
+    session2 = client2.transport.list_jobs._session
+    assert session1 != session2
+    session1 = client1.transport.update_job._session
+    session2 = client2.transport.update_job._session
+    assert session1 != session2
+    session1 = client1.transport.delete_job._session
+    session2 = client2.transport.delete_job._session
+    assert session1 != session2
+    session1 = client1.transport.run_job._session
+    session2 = client2.transport.run_job._session
+    assert session1 != session2
+    session1 = client1.transport.get_iam_policy._session
+    session2 = client2.transport.get_iam_policy._session
+    assert session1 != session2
+    session1 = client1.transport.set_iam_policy._session
+    session2 = client2.transport.set_iam_policy._session
+    assert session1 != session2
+    session1 = client1.transport.test_iam_permissions._session
+    session2 = client2.transport.test_iam_permissions._session
+    assert session1 != session2
+def test_jobs_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.JobsGrpcTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+def test_jobs_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.JobsGrpcAsyncIOTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.JobsGrpcTransport, transports.JobsGrpcAsyncIOTransport])
+def test_jobs_transport_channel_mtls_with_client_cert_source(
+    transport_class
+):
+    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_ssl_cred = mock.Mock()
+            grpc_ssl_channel_cred.return_value = mock_ssl_cred
+
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+
+            cred = ga_credentials.AnonymousCredentials()
+            with pytest.warns(DeprecationWarning):
+                with mock.patch.object(google.auth, 'default') as adc:
+                    adc.return_value = (cred, None)
+                    transport = transport_class(
+                        host="squid.clam.whelk",
+                        api_mtls_endpoint="mtls.squid.clam.whelk",
+                        client_cert_source=client_cert_source_callback,
+                    )
+                    adc.assert_called_once()
+
+            grpc_ssl_channel_cred.assert_called_once_with(
+                certificate_chain=b"cert bytes", private_key=b"key bytes"
+            )
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+            assert transport._ssl_channel_credentials == mock_ssl_cred
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.JobsGrpcTransport, transports.JobsGrpcAsyncIOTransport])
+def test_jobs_transport_channel_mtls_with_adc(
+    transport_class
+):
+    mock_ssl_cred = mock.Mock()
+    with mock.patch.multiple(
+        "google.auth.transport.grpc.SslCredentials",
+        __init__=mock.Mock(return_value=None),
+        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
+    ):
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+            mock_cred = mock.Mock()
+
+            with pytest.warns(DeprecationWarning):
+                transport = transport_class(
+                    host="squid.clam.whelk",
+                    credentials=mock_cred,
+                    api_mtls_endpoint="mtls.squid.clam.whelk",
+                    client_cert_source=None,
+                )
+
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=mock_cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+
+
+def test_jobs_grpc_lro_client():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+    transport = client.transport
+
+    # Ensure that we have a api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+        operations_v1.OperationsClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+
+def test_jobs_grpc_lro_async_client():
+    client = JobsAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc_asyncio',
+    )
+    transport = client.transport
+
+    # Ensure that we have a api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+        operations_v1.OperationsAsyncClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+
+def test_connector_path():
+    project = "squid"
+    location = "clam"
+    connector = "whelk"
+    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+    actual = JobsClient.connector_path(project, location, connector)
+    assert expected == actual
+
+
+def test_parse_connector_path():
+    expected = {
+        "project": "octopus",
+        "location": "oyster",
+        "connector": "nudibranch",
+    }
+    path = JobsClient.connector_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_connector_path(path)
+    assert expected == actual
+
+def test_crypto_key_path():
+    project = "cuttlefish"
+    location = "mussel"
+    key_ring = "winkle"
+    crypto_key = "nautilus"
+    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+    actual = JobsClient.crypto_key_path(project, location, key_ring, crypto_key)
+    assert expected == actual
+
+
+def test_parse_crypto_key_path():
+    expected = {
+        "project": "scallop",
+        "location": "abalone",
+        "key_ring": "squid",
+        "crypto_key": "clam",
+    }
+    path = JobsClient.crypto_key_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_crypto_key_path(path)
+    assert expected == actual
+
+def test_execution_path():
+    project = "whelk"
+    location = "octopus"
+    job = "oyster"
+    execution = "nudibranch"
+    expected = "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
+    actual = JobsClient.execution_path(project, location, job, execution)
+    assert expected == actual
+
+
+def test_parse_execution_path():
+    expected = {
+        "project": "cuttlefish",
+        "location": "mussel",
+        "job": "winkle",
+        "execution": "nautilus",
+    }
+    path = JobsClient.execution_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_execution_path(path)
+    assert expected == actual
+
+def test_job_path():
+    project = "scallop"
+    location = "abalone"
+    job = "squid"
+    expected = "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
+    actual = JobsClient.job_path(project, location, job)
+    assert expected == actual
+
+
+def test_parse_job_path():
+    expected = {
+        "project": "clam",
+        "location": "whelk",
+        "job": "octopus",
+    }
+    path = JobsClient.job_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_job_path(path)
+    assert expected == actual
+
+def test_policy_path():
+    project = "oyster"
+    expected = "projects/{project}/policy".format(project=project, )
+    actual = JobsClient.policy_path(project)
+    assert expected == actual
+
+
+def test_parse_policy_path():
+    expected = {
+        "project": "nudibranch",
+    }
+    path = JobsClient.policy_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_policy_path(path)
+    assert expected == actual
+
+def test_secret_path():
+    project = "cuttlefish"
+    secret = "mussel"
+    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+    actual = JobsClient.secret_path(project, secret)
+    assert expected == actual
+
+
+def test_parse_secret_path():
+    expected = {
+        "project": "winkle",
+        "secret": "nautilus",
+    }
+    path = JobsClient.secret_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_secret_path(path)
+    assert expected == actual
+
+def test_secret_version_path():
+    project = "scallop"
+    secret = "abalone"
+    version = "squid"
+    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+    actual = JobsClient.secret_version_path(project, secret, version)
+    assert expected == actual
+
+
+def test_parse_secret_version_path():
+    expected = {
+        "project": "clam",
+        "secret": "whelk",
+        "version": "octopus",
+    }
+    path = JobsClient.secret_version_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_secret_version_path(path)
+    assert expected == actual
+
+def test_common_billing_account_path():
+    billing_account = "oyster"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = JobsClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "nudibranch",
+    }
+    path = JobsClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "cuttlefish"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = JobsClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "mussel",
+    }
+    path = JobsClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "winkle"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = JobsClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "nautilus",
+    }
+    path = JobsClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "scallop"
+    expected = "projects/{project}".format(project=project, )
+    actual = JobsClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "abalone",
+    }
+    path = JobsClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_common_project_path(path)
+    assert expected == actual
+
+def test_common_location_path():
+    project = "squid"
+    location = "clam"
+    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
+    actual = JobsClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "whelk",
+        "location": "octopus",
+    }
+    path = JobsClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = JobsClient.parse_common_location_path(path)
+    assert expected == actual
+
+
+def test_client_with_default_client_info():
+    client_info = gapic_v1.client_info.ClientInfo()
+
+    with mock.patch.object(transports.JobsTransport, '_prep_wrapped_messages') as prep:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.JobsTransport, '_prep_wrapped_messages') as prep:
+        transport_class = JobsClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+
+def test_delete_operation(transport: str = "grpc"):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+        response = client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+@pytest.mark.asyncio
+async def test_delete_operation_async(transport: str = "grpc_asyncio"):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+def test_delete_operation_field_headers():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value =  None
+
+        client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_delete_operation_field_headers_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_delete_operation_from_dict():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+
+        response = client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_delete_operation_from_dict_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_wait_operation(transport: str = "grpc"):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_wait_operation(transport: str = "grpc_asyncio"):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_wait_operation_field_headers():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_wait_operation_field_headers_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_wait_operation_from_dict():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_wait_operation_from_dict_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_get_operation(transport: str = "grpc"):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_get_operation_async(transport: str = "grpc_asyncio"):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_get_operation_field_headers():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_get_operation_field_headers_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_get_operation_from_dict():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_get_operation_from_dict_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_list_operations(transport: str = "grpc"):
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+        response = client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+@pytest.mark.asyncio
+async def test_list_operations_async(transport: str = "grpc_asyncio"):
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+def test_list_operations_field_headers():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_list_operations_field_headers_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_list_operations_from_dict():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        response = client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_list_operations_from_dict_async():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_transport_close_grpc():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+@pytest.mark.asyncio
+async def test_transport_close_grpc_asyncio():
+    client = JobsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        async with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_transport_close_rest():
+    client = JobsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_client_ctx():
+    transports = [
+        'rest',
+        'grpc',
+    ]
+    for transport in transports:
+        client = JobsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        # Test client calls underlying transport.
+        with mock.patch.object(type(client.transport), "close") as close:
+            close.assert_not_called()
+            with client:
+                pass
+            close.assert_called()
+
+@pytest.mark.parametrize("client_class,transport_class", [
+    (JobsClient, transports.JobsGrpcTransport),
+    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport),
+])
+def test_api_key_credentials(client_class, transport_class):
+    with mock.patch.object(
+        google.auth._default, "get_api_key_credentials", create=True
+    ) as get_api_key_credentials:
+        mock_cred = mock.Mock()
+        get_api_key_credentials.return_value = mock_cred
+        options = client_options.ClientOptions()
+        options.api_key = "api_key"
+        with mock.patch.object(transport_class, "__init__") as patched:
+            patched.return_value = None
+            client = client_class(client_options=options)
+            patched.assert_called_once_with(
+                credentials=mock_cred,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_revisions.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_revisions.py
new file mode 100644
index 000000000000..358eb310ca98
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_revisions.py
@@ -0,0 +1,4715 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 os
+# try/except added for compatibility with python < 3.8
+try:
+    from unittest import mock
+    from unittest.mock import AsyncMock  # pragma: NO COVER
+except ImportError:  # pragma: NO COVER
+    import mock
+
+import grpc
+from grpc.experimental import aio
+from collections.abc import Iterable, AsyncIterable
+from google.protobuf import json_format
+import json
+import math
+import pytest
+from google.api_core import api_core_version
+from proto.marshal.rules.dates import DurationRule, TimestampRule
+from proto.marshal.rules import wrappers
+from requests import Response
+from requests import Request, PreparedRequest
+from requests.sessions import Session
+from google.protobuf import json_format
+
+try:
+    from google.auth.aio import credentials as ga_credentials_async
+    HAS_GOOGLE_AUTH_AIO = True
+except ImportError: # pragma: NO COVER
+    HAS_GOOGLE_AUTH_AIO = False
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import client_options
+from google.api_core import exceptions as core_exceptions
+from google.api_core import future
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers
+from google.api_core import grpc_helpers_async
+from google.api_core import operation
+from google.api_core import operation_async  # type: ignore
+from google.api_core import operations_v1
+from google.api_core import path_template
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.location import locations_pb2
+from google.cloud.run_v2.services.revisions import RevisionsAsyncClient
+from google.cloud.run_v2.services.revisions import RevisionsClient
+from google.cloud.run_v2.services.revisions import pagers
+from google.cloud.run_v2.services.revisions import transports
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import revision
+from google.cloud.run_v2.types import status
+from google.cloud.run_v2.types import vendor_settings
+from google.longrunning import operations_pb2 # type: ignore
+from google.oauth2 import service_account
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+import google.auth
+
+
+async def mock_async_gen(data, chunk_size=1):
+    for i in range(0, len(data)):  # pragma: NO COVER
+        chunk = data[i : i + chunk_size]
+        yield chunk.encode("utf-8")
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
+# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
+def async_anonymous_credentials():
+    if HAS_GOOGLE_AUTH_AIO:
+        return ga_credentials_async.AnonymousCredentials()
+    return ga_credentials.AnonymousCredentials()
+
+# If default endpoint is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint(client):
+    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
+
+# If default endpoint template is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint template so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint_template(client):
+    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
+
+
+def test__get_default_mtls_endpoint():
+    api_endpoint = "example.googleapis.com"
+    api_mtls_endpoint = "example.mtls.googleapis.com"
+    sandbox_endpoint = "example.sandbox.googleapis.com"
+    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
+    non_googleapi = "api.example.com"
+
+    assert RevisionsClient._get_default_mtls_endpoint(None) is None
+    assert RevisionsClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert RevisionsClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert RevisionsClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert RevisionsClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert RevisionsClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+def test__read_environment_variables():
+    assert RevisionsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        assert RevisionsClient._read_environment_variables() == (True, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        assert RevisionsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            RevisionsClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        assert RevisionsClient._read_environment_variables() == (False, "never", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        assert RevisionsClient._read_environment_variables() == (False, "always", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
+        assert RevisionsClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            RevisionsClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
+        assert RevisionsClient._read_environment_variables() == (False, "auto", "foo.com")
+
+def test__get_client_cert_source():
+    mock_provided_cert_source = mock.Mock()
+    mock_default_cert_source = mock.Mock()
+
+    assert RevisionsClient._get_client_cert_source(None, False) is None
+    assert RevisionsClient._get_client_cert_source(mock_provided_cert_source, False) is None
+    assert RevisionsClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
+
+    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
+            assert RevisionsClient._get_client_cert_source(None, True) is mock_default_cert_source
+            assert RevisionsClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
+
+@mock.patch.object(RevisionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsClient))
+@mock.patch.object(RevisionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsAsyncClient))
+def test__get_api_endpoint():
+    api_override = "foo.com"
+    mock_client_cert_source = mock.Mock()
+    default_universe = RevisionsClient._DEFAULT_UNIVERSE
+    default_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    assert RevisionsClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
+    assert RevisionsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == RevisionsClient.DEFAULT_MTLS_ENDPOINT
+    assert RevisionsClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
+    assert RevisionsClient._get_api_endpoint(None, None, default_universe, "always") == RevisionsClient.DEFAULT_MTLS_ENDPOINT
+    assert RevisionsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == RevisionsClient.DEFAULT_MTLS_ENDPOINT
+    assert RevisionsClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
+    assert RevisionsClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
+
+    with pytest.raises(MutualTLSChannelError) as excinfo:
+        RevisionsClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
+    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
+
+
+def test__get_universe_domain():
+    client_universe_domain = "foo.com"
+    universe_domain_env = "bar.com"
+
+    assert RevisionsClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
+    assert RevisionsClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
+    assert RevisionsClient._get_universe_domain(None, None) == RevisionsClient._DEFAULT_UNIVERSE
+
+    with pytest.raises(ValueError) as excinfo:
+        RevisionsClient._get_universe_domain("", None)
+    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (RevisionsClient, "grpc"),
+    (RevisionsAsyncClient, "grpc_asyncio"),
+    (RevisionsClient, "rest"),
+])
+def test_revisions_client_from_service_account_info(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
+        factory.return_value = creds
+        info = {"valid": True}
+        client = client_class.from_service_account_info(info, transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.RevisionsGrpcTransport, "grpc"),
+    (transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.RevisionsRestTransport, "rest"),
+])
+def test_revisions_client_service_account_always_use_jwt(transport_class, transport_name):
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=True)
+        use_jwt.assert_called_once_with(True)
+
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=False)
+        use_jwt.assert_not_called()
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (RevisionsClient, "grpc"),
+    (RevisionsAsyncClient, "grpc_asyncio"),
+    (RevisionsClient, "rest"),
+])
+def test_revisions_client_from_service_account_file(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
+        factory.return_value = creds
+        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+def test_revisions_client_get_transport_class():
+    transport = RevisionsClient.get_transport_class()
+    available_transports = [
+        transports.RevisionsGrpcTransport,
+        transports.RevisionsRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = RevisionsClient.get_transport_class("grpc")
+    assert transport == transports.RevisionsGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc"),
+    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (RevisionsClient, transports.RevisionsRestTransport, "rest"),
+])
+@mock.patch.object(RevisionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsClient))
+@mock.patch.object(RevisionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsAsyncClient))
+def test_revisions_client_client_options(client_class, transport_class, transport_name):
+    # Check that if channel is provided we won't create a new one.
+    with mock.patch.object(RevisionsClient, 'get_transport_class') as gtc:
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+        client = client_class(transport=transport)
+        gtc.assert_not_called()
+
+    # Check that if channel is provided via str we will create a new one.
+    with mock.patch.object(RevisionsClient, 'get_transport_class') as gtc:
+        client = client_class(transport=transport_name)
+        gtc.assert_called()
+
+    # Check the case api_endpoint is provided.
+    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(transport=transport_name, client_options=options)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "never".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "always".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client.DEFAULT_MTLS_ENDPOINT,
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    # Check the case quota_project_id is provided
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id="octopus",
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+    # Check the case api_endpoint is provided
+    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
+    with mock.patch.object(transport_class, '__init__') as patched:
+        patched.return_value = None
+        client = client_class(client_options=options, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience="https://language.googleapis.com"
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
+    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc", "true"),
+    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc", "false"),
+    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (RevisionsClient, transports.RevisionsRestTransport, "rest", "true"),
+    (RevisionsClient, transports.RevisionsRestTransport, "rest", "false"),
+])
+@mock.patch.object(RevisionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsClient))
+@mock.patch.object(RevisionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_revisions_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
+    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
+    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
+
+    # Check the case client_cert_source is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
+        with mock.patch.object(transport_class, '__init__') as patched:
+            patched.return_value = None
+            client = client_class(client_options=options, transport=transport_name)
+
+            if use_client_cert_env == "false":
+                expected_client_cert_source = None
+                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+            else:
+                expected_client_cert_source = client_cert_source_callback
+                expected_host = client.DEFAULT_MTLS_ENDPOINT
+
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=expected_host,
+                scopes=None,
+                client_cert_source_for_mtls=expected_client_cert_source,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case ADC client cert is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
+                    if use_client_cert_env == "false":
+                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+                        expected_client_cert_source = None
+                    else:
+                        expected_host = client.DEFAULT_MTLS_ENDPOINT
+                        expected_client_cert_source = client_cert_source_callback
+
+                    patched.return_value = None
+                    client = client_class(transport=transport_name)
+                    patched.assert_called_once_with(
+                        credentials=None,
+                        credentials_file=None,
+                        host=expected_host,
+                        scopes=None,
+                        client_cert_source_for_mtls=expected_client_cert_source,
+                        quota_project_id=None,
+                        client_info=transports.base.DEFAULT_CLIENT_INFO,
+                        always_use_jwt_access=True,
+                        api_audience=None,
+                    )
+
+    # Check the case client_cert_source and ADC client cert are not provided.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
+                patched.return_value = None
+                client = client_class(transport=transport_name)
+                patched.assert_called_once_with(
+                    credentials=None,
+                    credentials_file=None,
+                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                    scopes=None,
+                    client_cert_source_for_mtls=None,
+                    quota_project_id=None,
+                    client_info=transports.base.DEFAULT_CLIENT_INFO,
+                    always_use_jwt_access=True,
+                    api_audience=None,
+                )
+
+
+@pytest.mark.parametrize("client_class", [
+    RevisionsClient, RevisionsAsyncClient
+])
+@mock.patch.object(RevisionsClient, "DEFAULT_ENDPOINT", modify_default_endpoint(RevisionsClient))
+@mock.patch.object(RevisionsAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(RevisionsAsyncClient))
+def test_revisions_client_get_mtls_endpoint_and_cert_source(client_class):
+    mock_client_cert_source = mock.Mock()
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source == mock_client_cert_source
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        mock_client_cert_source = mock.Mock()
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
+            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+            assert api_endpoint == client_class.DEFAULT_ENDPOINT
+            assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
+                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+                assert cert_source == mock_client_cert_source
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+@pytest.mark.parametrize("client_class", [
+    RevisionsClient, RevisionsAsyncClient
+])
+@mock.patch.object(RevisionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsClient))
+@mock.patch.object(RevisionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsAsyncClient))
+def test_revisions_client_client_api_endpoint(client_class):
+    mock_client_cert_source = client_cert_source_callback
+    api_override = "foo.com"
+    default_universe = RevisionsClient._DEFAULT_UNIVERSE
+    default_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
+    # use ClientOptions.api_endpoint as the api endpoint regardless.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
+            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
+            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+            assert client.api_endpoint == api_override
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
+    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+
+    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
+    # and ClientOptions.universe_domain="bar.com",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
+    options = client_options.ClientOptions()
+    universe_exists = hasattr(options, "universe_domain")
+    if universe_exists:
+        options = client_options.ClientOptions(universe_domain=mock_universe)
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    else:
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
+    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
+
+    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    options = client_options.ClientOptions()
+    if hasattr(options, "universe_domain"):
+        delattr(options, "universe_domain")
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc"),
+    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio"),
+    (RevisionsClient, transports.RevisionsRestTransport, "rest"),
+])
+def test_revisions_client_client_options_scopes(client_class, transport_class, transport_name):
+    # Check the case scopes are provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=["1", "2"],
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc", grpc_helpers),
+    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (RevisionsClient, transports.RevisionsRestTransport, "rest", None),
+])
+def test_revisions_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+def test_revisions_client_client_options_from_dict():
+    with mock.patch('google.cloud.run_v2.services.revisions.transports.RevisionsGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = RevisionsClient(
+            client_options={'api_endpoint': 'squid.clam.whelk'}
+        )
+        grpc_transport.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc", grpc_helpers),
+    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_revisions_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # test that the credentials from file are saved and used as the credentials.
+    with mock.patch.object(
+        google.auth, "load_credentials_from_file", autospec=True
+    ) as load_creds, mock.patch.object(
+        google.auth, "default", autospec=True
+    ) as adc, mock.patch.object(
+        grpc_helpers, "create_channel"
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        file_creds = ga_credentials.AnonymousCredentials()
+        load_creds.return_value = (file_creds, None)
+        adc.return_value = (creds, None)
+        client = client_class(client_options=options, transport=transport_name)
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=file_creds,
+            credentials_file=None,
+            quota_project_id=None,
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=None,
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  revision.GetRevisionRequest,
+  dict,
+])
+def test_get_revision(request_type, transport: str = 'grpc'):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = revision.Revision(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            service='service_value',
+            max_instance_request_concurrency=3436,
+            service_account='service_account_value',
+            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+            encryption_key='encryption_key_value',
+            encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
+            reconciling=True,
+            observed_generation=2021,
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            session_affinity=True,
+            etag='etag_value',
+        )
+        response = client.get_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = revision.GetRevisionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, revision.Revision)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.service == 'service_value'
+    assert response.max_instance_request_concurrency == 3436
+    assert response.service_account == 'service_account_value'
+    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
+    assert response.encryption_key == 'encryption_key_value'
+    assert response.encryption_key_revocation_action == vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.session_affinity is True
+    assert response.etag == 'etag_value'
+
+
+def test_get_revision_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = revision.GetRevisionRequest(
+        name='name_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.get_revision(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == revision.GetRevisionRequest(
+            name='name_value',
+        )
+
+def test_get_revision_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_revision in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_revision] = mock_rpc
+        request = {}
+        client.get_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_revision(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_revision_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = RevisionsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.get_revision in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.get_revision] = mock_rpc
+
+        request = {}
+        await client.get_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.get_revision(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_revision_async(transport: str = 'grpc_asyncio', request_type=revision.GetRevisionRequest):
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(revision.Revision(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            service='service_value',
+            max_instance_request_concurrency=3436,
+            service_account='service_account_value',
+            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+            encryption_key='encryption_key_value',
+            encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
+            reconciling=True,
+            observed_generation=2021,
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            session_affinity=True,
+            etag='etag_value',
+        ))
+        response = await client.get_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = revision.GetRevisionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, revision.Revision)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.service == 'service_value'
+    assert response.max_instance_request_concurrency == 3436
+    assert response.service_account == 'service_account_value'
+    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
+    assert response.encryption_key == 'encryption_key_value'
+    assert response.encryption_key_revocation_action == vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.session_affinity is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.asyncio
+async def test_get_revision_async_from_dict():
+    await test_get_revision_async(request_type=dict)
+
+
+def test_get_revision_flattened():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = revision.Revision()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.get_revision(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_get_revision_flattened_error():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_revision(
+            revision.GetRevisionRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_get_revision_flattened_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = revision.Revision()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.Revision())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.get_revision(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_get_revision_flattened_error_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.get_revision(
+            revision.GetRevisionRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  revision.ListRevisionsRequest,
+  dict,
+])
+def test_list_revisions(request_type, transport: str = 'grpc'):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = revision.ListRevisionsResponse(
+            next_page_token='next_page_token_value',
+        )
+        response = client.list_revisions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = revision.ListRevisionsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListRevisionsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_revisions_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = revision.ListRevisionsRequest(
+        parent='parent_value',
+        page_token='page_token_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.list_revisions(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == revision.ListRevisionsRequest(
+            parent='parent_value',
+            page_token='page_token_value',
+        )
+
+def test_list_revisions_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_revisions in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_revisions] = mock_rpc
+        request = {}
+        client.list_revisions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_revisions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_revisions_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = RevisionsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.list_revisions in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.list_revisions] = mock_rpc
+
+        request = {}
+        await client.list_revisions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.list_revisions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_revisions_async(transport: str = 'grpc_asyncio', request_type=revision.ListRevisionsRequest):
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(revision.ListRevisionsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        response = await client.list_revisions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = revision.ListRevisionsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListRevisionsAsyncPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.asyncio
+async def test_list_revisions_async_from_dict():
+    await test_list_revisions_async(request_type=dict)
+
+
+def test_list_revisions_flattened():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = revision.ListRevisionsResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.list_revisions(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+
+def test_list_revisions_flattened_error():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_revisions(
+            revision.ListRevisionsRequest(),
+            parent='parent_value',
+        )
+
+@pytest.mark.asyncio
+async def test_list_revisions_flattened_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = revision.ListRevisionsResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.ListRevisionsResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.list_revisions(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_list_revisions_flattened_error_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.list_revisions(
+            revision.ListRevisionsRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_revisions_pager(transport_name: str = "grpc"):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+                next_page_token='abc',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[],
+                next_page_token='def',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                ],
+                next_page_token='ghi',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+            ),
+            RuntimeError,
+        )
+
+        expected_metadata = ()
+        retry = retries.Retry()
+        timeout = 5
+        pager = client.list_revisions(request={}, retry=retry, timeout=timeout)
+
+        assert pager._metadata == expected_metadata
+        assert pager._retry == retry
+        assert pager._timeout == timeout
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, revision.Revision)
+                   for i in results)
+def test_list_revisions_pages(transport_name: str = "grpc"):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+                next_page_token='abc',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[],
+                next_page_token='def',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                ],
+                next_page_token='ghi',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = list(client.list_revisions(request={}).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.asyncio
+async def test_list_revisions_async_pager():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+                next_page_token='abc',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[],
+                next_page_token='def',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                ],
+                next_page_token='ghi',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+            ),
+            RuntimeError,
+        )
+        async_pager = await client.list_revisions(request={},)
+        assert async_pager.next_page_token == 'abc'
+        responses = []
+        async for response in async_pager: # pragma: no branch
+            responses.append(response)
+
+        assert len(responses) == 6
+        assert all(isinstance(i, revision.Revision)
+                for i in responses)
+
+
+@pytest.mark.asyncio
+async def test_list_revisions_async_pages():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+                next_page_token='abc',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[],
+                next_page_token='def',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                ],
+                next_page_token='ghi',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = []
+        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
+        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
+        async for page_ in ( # pragma: no branch
+            await client.list_revisions(request={})
+        ).pages:
+            pages.append(page_)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.parametrize("request_type", [
+  revision.DeleteRevisionRequest,
+  dict,
+])
+def test_delete_revision(request_type, transport: str = 'grpc'):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.delete_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = revision.DeleteRevisionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_delete_revision_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = revision.DeleteRevisionRequest(
+        name='name_value',
+        etag='etag_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.delete_revision(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == revision.DeleteRevisionRequest(
+            name='name_value',
+            etag='etag_value',
+        )
+
+def test_delete_revision_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.delete_revision in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.delete_revision] = mock_rpc
+        request = {}
+        client.delete_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.delete_revision(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_delete_revision_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = RevisionsAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.delete_revision in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.delete_revision] = mock_rpc
+
+        request = {}
+        await client.delete_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.delete_revision(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_delete_revision_async(transport: str = 'grpc_asyncio', request_type=revision.DeleteRevisionRequest):
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.delete_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = revision.DeleteRevisionRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_delete_revision_async_from_dict():
+    await test_delete_revision_async(request_type=dict)
+
+
+def test_delete_revision_flattened():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.delete_revision(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_delete_revision_flattened_error():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.delete_revision(
+            revision.DeleteRevisionRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_delete_revision_flattened_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.delete_revision(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_delete_revision_flattened_error_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.delete_revision(
+            revision.DeleteRevisionRequest(),
+            name='name_value',
+        )
+
+
+def test_get_revision_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_revision in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_revision] = mock_rpc
+
+        request = {}
+        client.get_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_revision(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_get_revision_rest_required_fields(request_type=revision.GetRevisionRequest):
+    transport_class = transports.RevisionsRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_revision._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_revision._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = revision.Revision()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = revision.Revision.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.get_revision(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_get_revision_rest_unset_required_fields():
+    transport = transports.RevisionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.get_revision._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("name", )))
+
+
+def test_get_revision_rest_flattened():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = revision.Revision()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = revision.Revision.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.get_revision(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/services/*/revisions/*}" % client.transport._host, args[1])
+
+
+def test_get_revision_rest_flattened_error(transport: str = 'rest'):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_revision(
+            revision.GetRevisionRequest(),
+            name='name_value',
+        )
+
+
+def test_list_revisions_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_revisions in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_revisions] = mock_rpc
+
+        request = {}
+        client.list_revisions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_revisions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_list_revisions_rest_required_fields(request_type=revision.ListRevisionsRequest):
+    transport_class = transports.RevisionsRestTransport
+
+    request_init = {}
+    request_init["parent"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_revisions._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["parent"] = 'parent_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_revisions._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "parent" in jsonified_request
+    assert jsonified_request["parent"] == 'parent_value'
+
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = revision.ListRevisionsResponse()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = revision.ListRevisionsResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.list_revisions(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_list_revisions_rest_unset_required_fields():
+    transport = transports.RevisionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.list_revisions._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
+
+
+def test_list_revisions_rest_flattened():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = revision.ListRevisionsResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'parent': 'projects/sample1/locations/sample2/services/sample3'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            parent='parent_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = revision.ListRevisionsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.list_revisions(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{parent=projects/*/locations/*/services/*}/revisions" % client.transport._host, args[1])
+
+
+def test_list_revisions_rest_flattened_error(transport: str = 'rest'):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_revisions(
+            revision.ListRevisionsRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_revisions_rest_pager(transport: str = 'rest'):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # TODO(kbandes): remove this mock unless there's a good reason for it.
+        #with mock.patch.object(path_template, 'transcode') as transcode:
+        # Set the response as a series of pages
+        response = (
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+                next_page_token='abc',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[],
+                next_page_token='def',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                ],
+                next_page_token='ghi',
+            ),
+            revision.ListRevisionsResponse(
+                revisions=[
+                    revision.Revision(),
+                    revision.Revision(),
+                ],
+            ),
+        )
+        # Two responses for two calls
+        response = response + response
+
+        # Wrap the values into proper Response objs
+        response = tuple(revision.ListRevisionsResponse.to_json(x) for x in response)
+        return_values = tuple(Response() for i in response)
+        for return_val, response_val in zip(return_values, response):
+            return_val._content = response_val.encode('UTF-8')
+            return_val.status_code = 200
+        req.side_effect = return_values
+
+        sample_request = {'parent': 'projects/sample1/locations/sample2/services/sample3'}
+
+        pager = client.list_revisions(request=sample_request)
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, revision.Revision)
+                for i in results)
+
+        pages = list(client.list_revisions(request=sample_request).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+
+def test_delete_revision_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.delete_revision in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.delete_revision] = mock_rpc
+
+        request = {}
+        client.delete_revision(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.delete_revision(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_delete_revision_rest_required_fields(request_type=revision.DeleteRevisionRequest):
+    transport_class = transports.RevisionsRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_revision._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_revision._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("etag", "validate_only", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "delete",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.delete_revision(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_delete_revision_rest_unset_required_fields():
+    transport = transports.RevisionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.delete_revision._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("etag", "validateOnly", )) & set(("name", )))
+
+
+def test_delete_revision_rest_flattened():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.delete_revision(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/services/*/revisions/*}" % client.transport._host, args[1])
+
+
+def test_delete_revision_rest_flattened_error(transport: str = 'rest'):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.delete_revision(
+            revision.DeleteRevisionRequest(),
+            name='name_value',
+        )
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.RevisionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.RevisionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = RevisionsClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.RevisionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = RevisionsClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = RevisionsClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.RevisionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = RevisionsClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.RevisionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = RevisionsClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.RevisionsGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.RevisionsGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.RevisionsGrpcTransport,
+    transports.RevisionsGrpcAsyncIOTransport,
+    transports.RevisionsRestTransport,
+])
+def test_transport_adc(transport_class):
+    # Test default credentials are used if not provided.
+    with mock.patch.object(google.auth, 'default') as adc:
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport_class()
+        adc.assert_called_once()
+
+def test_transport_kind_grpc():
+    transport = RevisionsClient.get_transport_class("grpc")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "grpc"
+
+
+def test_initialize_client_w_grpc():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_revision_empty_call_grpc():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        call.return_value = revision.Revision()
+        client.get_revision(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.GetRevisionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_revisions_empty_call_grpc():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        call.return_value = revision.ListRevisionsResponse()
+        client.list_revisions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.ListRevisionsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_delete_revision_empty_call_grpc():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.delete_revision(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.DeleteRevisionRequest()
+
+        assert args[0] == request_msg
+
+
+def test_get_revision_routing_parameters_request_1_grpc():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        call.return_value = revision.Revision()
+        client.get_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.GetRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_list_revisions_routing_parameters_request_1_grpc():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        call.return_value = revision.ListRevisionsResponse()
+        client.list_revisions(request={"parent": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.ListRevisionsRequest(**{"parent": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_delete_revision_routing_parameters_request_1_grpc():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.delete_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.DeleteRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_transport_kind_grpc_asyncio():
+    transport = RevisionsAsyncClient.get_transport_class("grpc_asyncio")(
+        credentials=async_anonymous_credentials()
+    )
+    assert transport.kind == "grpc_asyncio"
+
+
+def test_initialize_client_w_grpc_asyncio():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_get_revision_empty_call_grpc_asyncio():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.Revision(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            service='service_value',
+            max_instance_request_concurrency=3436,
+            service_account='service_account_value',
+            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+            encryption_key='encryption_key_value',
+            encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
+            reconciling=True,
+            observed_generation=2021,
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            session_affinity=True,
+            etag='etag_value',
+        ))
+        await client.get_revision(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.GetRevisionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_list_revisions_empty_call_grpc_asyncio():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.ListRevisionsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        await client.list_revisions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.ListRevisionsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_delete_revision_empty_call_grpc_asyncio():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.delete_revision(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.DeleteRevisionRequest()
+
+        assert args[0] == request_msg
+
+
+@pytest.mark.asyncio
+async def test_get_revision_routing_parameters_request_1_grpc_asyncio():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.Revision(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            service='service_value',
+            max_instance_request_concurrency=3436,
+            service_account='service_account_value',
+            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+            encryption_key='encryption_key_value',
+            encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
+            reconciling=True,
+            observed_generation=2021,
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            session_affinity=True,
+            etag='etag_value',
+        ))
+        await client.get_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.GetRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_list_revisions_routing_parameters_request_1_grpc_asyncio():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.ListRevisionsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        await client.list_revisions(request={"parent": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.ListRevisionsRequest(**{"parent": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_delete_revision_routing_parameters_request_1_grpc_asyncio():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.delete_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.DeleteRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_transport_kind_rest():
+    transport = RevisionsClient.get_transport_class("rest")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "rest"
+
+
+def test_get_revision_rest_bad_request(request_type=revision.GetRevisionRequest):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.get_revision(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  revision.GetRevisionRequest,
+  dict,
+])
+def test_get_revision_rest_call_success(request_type):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = revision.Revision(
+              name='name_value',
+              uid='uid_value',
+              generation=1068,
+              launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+              service='service_value',
+              max_instance_request_concurrency=3436,
+              service_account='service_account_value',
+              execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+              encryption_key='encryption_key_value',
+              encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
+              reconciling=True,
+              observed_generation=2021,
+              log_uri='log_uri_value',
+              satisfies_pzs=True,
+              session_affinity=True,
+              etag='etag_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = revision.Revision.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.get_revision(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, revision.Revision)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.service == 'service_value'
+    assert response.max_instance_request_concurrency == 3436
+    assert response.service_account == 'service_account_value'
+    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
+    assert response.encryption_key == 'encryption_key_value'
+    assert response.encryption_key_revocation_action == vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.session_affinity is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_get_revision_rest_interceptors(null_interceptor):
+    transport = transports.RevisionsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.RevisionsRestInterceptor(),
+        )
+    client = RevisionsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.RevisionsRestInterceptor, "post_get_revision") as post, \
+        mock.patch.object(transports.RevisionsRestInterceptor, "pre_get_revision") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = revision.GetRevisionRequest.pb(revision.GetRevisionRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = revision.Revision.to_json(revision.Revision())
+        req.return_value.content = return_value
+
+        request = revision.GetRevisionRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = revision.Revision()
+
+        client.get_revision(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_list_revisions_rest_bad_request(request_type=revision.ListRevisionsRequest):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.list_revisions(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  revision.ListRevisionsRequest,
+  dict,
+])
+def test_list_revisions_rest_call_success(request_type):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = revision.ListRevisionsResponse(
+              next_page_token='next_page_token_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = revision.ListRevisionsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.list_revisions(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListRevisionsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_list_revisions_rest_interceptors(null_interceptor):
+    transport = transports.RevisionsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.RevisionsRestInterceptor(),
+        )
+    client = RevisionsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.RevisionsRestInterceptor, "post_list_revisions") as post, \
+        mock.patch.object(transports.RevisionsRestInterceptor, "pre_list_revisions") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = revision.ListRevisionsRequest.pb(revision.ListRevisionsRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = revision.ListRevisionsResponse.to_json(revision.ListRevisionsResponse())
+        req.return_value.content = return_value
+
+        request = revision.ListRevisionsRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = revision.ListRevisionsResponse()
+
+        client.list_revisions(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_revision_rest_bad_request(request_type=revision.DeleteRevisionRequest):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.delete_revision(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  revision.DeleteRevisionRequest,
+  dict,
+])
+def test_delete_revision_rest_call_success(request_type):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.delete_revision(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_delete_revision_rest_interceptors(null_interceptor):
+    transport = transports.RevisionsRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.RevisionsRestInterceptor(),
+        )
+    client = RevisionsClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.RevisionsRestInterceptor, "post_delete_revision") as post, \
+        mock.patch.object(transports.RevisionsRestInterceptor, "pre_delete_revision") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = revision.DeleteRevisionRequest.pb(revision.DeleteRevisionRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = revision.DeleteRevisionRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.delete_revision(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.delete_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.DeleteOperationRequest,
+    dict,
+])
+def test_delete_operation_rest(request_type):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = None
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = '{}'
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.delete_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+
+def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.get_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.GetOperationRequest,
+    dict,
+])
+def test_get_operation_rest(request_type):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.get_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+
+def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.list_operations(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.ListOperationsRequest,
+    dict,
+])
+def test_list_operations_rest(request_type):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.ListOperationsResponse()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.list_operations(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+
+def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.wait_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.WaitOperationRequest,
+    dict,
+])
+def test_wait_operation_rest(request_type):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.wait_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_initialize_client_w_rest():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_revision_empty_call_rest():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        client.get_revision(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.GetRevisionRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_revisions_empty_call_rest():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        client.list_revisions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.ListRevisionsRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_delete_revision_empty_call_rest():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        client.delete_revision(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = revision.DeleteRevisionRequest()
+
+        assert args[0] == request_msg
+
+
+def test_get_revision_routing_parameters_request_1_rest():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_revision),
+            '__call__') as call:
+        client.get_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.GetRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_list_revisions_routing_parameters_request_1_rest():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_revisions),
+            '__call__') as call:
+        client.list_revisions(request={"parent": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.ListRevisionsRequest(**{"parent": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_delete_revision_routing_parameters_request_1_rest():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_revision),
+            '__call__') as call:
+        client.delete_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = revision.DeleteRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_revisions_rest_lro_client():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    transport = client.transport
+
+    # Ensure that we have an api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+operations_v1.AbstractOperationsClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.RevisionsGrpcTransport,
+    )
+
+def test_revisions_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.RevisionsTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_revisions_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.run_v2.services.revisions.transports.RevisionsTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.RevisionsTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'get_revision',
+        'list_revisions',
+        'delete_revision',
+        'get_operation',
+        'wait_operation',
+        'delete_operation',
+        'list_operations',
+    )
+    for method in methods:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, method)(request=object())
+
+    with pytest.raises(NotImplementedError):
+        transport.close()
+
+    # Additionally, the LRO client (a property) should
+    # also raise NotImplementedError
+    with pytest.raises(NotImplementedError):
+        transport.operations_client
+
+    # Catch all for all remaining methods and properties
+    remainder = [
+        'kind',
+    ]
+    for r in remainder:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, r)()
+
+
+def test_revisions_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.revisions.transports.RevisionsTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.RevisionsTransport(
+            credentials_file="credentials.json",
+            quota_project_id="octopus",
+        )
+        load_creds.assert_called_once_with("credentials.json",
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id="octopus",
+        )
+
+
+def test_revisions_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.revisions.transports.RevisionsTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.RevisionsTransport()
+        adc.assert_called_once()
+
+
+def test_revisions_auth_adc():
+    # 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)
+        RevisionsClient()
+        adc.assert_called_once_with(
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id=None,
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.RevisionsGrpcTransport,
+        transports.RevisionsGrpcAsyncIOTransport,
+    ],
+)
+def test_revisions_transport_auth_adc(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", scopes=["1", "2"])
+        adc.assert_called_once_with(
+            scopes=["1", "2"],
+            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
+            quota_project_id="octopus",
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.RevisionsGrpcTransport,
+        transports.RevisionsGrpcAsyncIOTransport,
+        transports.RevisionsRestTransport,
+    ],
+)
+def test_revisions_transport_auth_gdch_credentials(transport_class):
+    host = 'https://language.com'
+    api_audience_tests = [None, 'https://language2.com']
+    api_audience_expect = [host, 'https://language2.com']
+    for t, e in zip(api_audience_tests, api_audience_expect):
+        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
+            gdch_mock = mock.MagicMock()
+            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
+            adc.return_value = (gdch_mock, None)
+            transport_class(host=host, api_audience=t)
+            gdch_mock.with_gdch_audience.assert_called_once_with(
+                e
+            )
+
+
+@pytest.mark.parametrize(
+    "transport_class,grpc_helpers",
+    [
+        (transports.RevisionsGrpcTransport, grpc_helpers),
+        (transports.RevisionsGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_revisions_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=creds,
+            credentials_file=None,
+            quota_project_id="octopus",
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=["1", "2"],
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.RevisionsGrpcTransport, transports.RevisionsGrpcAsyncIOTransport])
+def test_revisions_grpc_transport_client_cert_source_for_mtls(
+    transport_class
+):
+    cred = ga_credentials.AnonymousCredentials()
+
+    # Check ssl_channel_credentials is used if provided.
+    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
+        mock_ssl_channel_creds = mock.Mock()
+        transport_class(
+            host="squid.clam.whelk",
+            credentials=cred,
+            ssl_channel_credentials=mock_ssl_channel_creds
+        )
+        mock_create_channel.assert_called_once_with(
+            "squid.clam.whelk:443",
+            credentials=cred,
+            credentials_file=None,
+            scopes=None,
+            ssl_credentials=mock_ssl_channel_creds,
+            quota_project_id=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
+    # is used.
+    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
+        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
+            transport_class(
+                credentials=cred,
+                client_cert_source_for_mtls=client_cert_source_callback
+            )
+            expected_cert, expected_key = client_cert_source_callback()
+            mock_ssl_cred.assert_called_once_with(
+                certificate_chain=expected_cert,
+                private_key=expected_key
+            )
+
+def test_revisions_http_transport_client_cert_source_for_mtls():
+    cred = ga_credentials.AnonymousCredentials()
+    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
+        transports.RevisionsRestTransport (
+            credentials=cred,
+            client_cert_source_for_mtls=client_cert_source_callback
+        )
+        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
+
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_revisions_host_no_port(transport_name):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_revisions_host_with_port(transport_name):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_revisions_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = RevisionsClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = RevisionsClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.get_revision._session
+    session2 = client2.transport.get_revision._session
+    assert session1 != session2
+    session1 = client1.transport.list_revisions._session
+    session2 = client2.transport.list_revisions._session
+    assert session1 != session2
+    session1 = client1.transport.delete_revision._session
+    session2 = client2.transport.delete_revision._session
+    assert session1 != session2
+def test_revisions_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.RevisionsGrpcTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+def test_revisions_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.RevisionsGrpcAsyncIOTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.RevisionsGrpcTransport, transports.RevisionsGrpcAsyncIOTransport])
+def test_revisions_transport_channel_mtls_with_client_cert_source(
+    transport_class
+):
+    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_ssl_cred = mock.Mock()
+            grpc_ssl_channel_cred.return_value = mock_ssl_cred
+
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+
+            cred = ga_credentials.AnonymousCredentials()
+            with pytest.warns(DeprecationWarning):
+                with mock.patch.object(google.auth, 'default') as adc:
+                    adc.return_value = (cred, None)
+                    transport = transport_class(
+                        host="squid.clam.whelk",
+                        api_mtls_endpoint="mtls.squid.clam.whelk",
+                        client_cert_source=client_cert_source_callback,
+                    )
+                    adc.assert_called_once()
+
+            grpc_ssl_channel_cred.assert_called_once_with(
+                certificate_chain=b"cert bytes", private_key=b"key bytes"
+            )
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+            assert transport._ssl_channel_credentials == mock_ssl_cred
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.RevisionsGrpcTransport, transports.RevisionsGrpcAsyncIOTransport])
+def test_revisions_transport_channel_mtls_with_adc(
+    transport_class
+):
+    mock_ssl_cred = mock.Mock()
+    with mock.patch.multiple(
+        "google.auth.transport.grpc.SslCredentials",
+        __init__=mock.Mock(return_value=None),
+        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
+    ):
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+            mock_cred = mock.Mock()
+
+            with pytest.warns(DeprecationWarning):
+                transport = transport_class(
+                    host="squid.clam.whelk",
+                    credentials=mock_cred,
+                    api_mtls_endpoint="mtls.squid.clam.whelk",
+                    client_cert_source=None,
+                )
+
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=mock_cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+
+
+def test_revisions_grpc_lro_client():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+    transport = client.transport
+
+    # Ensure that we have a api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+        operations_v1.OperationsClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+
+def test_revisions_grpc_lro_async_client():
+    client = RevisionsAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc_asyncio',
+    )
+    transport = client.transport
+
+    # Ensure that we have a api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+        operations_v1.OperationsAsyncClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+
+def test_connector_path():
+    project = "squid"
+    location = "clam"
+    connector = "whelk"
+    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+    actual = RevisionsClient.connector_path(project, location, connector)
+    assert expected == actual
+
+
+def test_parse_connector_path():
+    expected = {
+        "project": "octopus",
+        "location": "oyster",
+        "connector": "nudibranch",
+    }
+    path = RevisionsClient.connector_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_connector_path(path)
+    assert expected == actual
+
+def test_crypto_key_path():
+    project = "cuttlefish"
+    location = "mussel"
+    key_ring = "winkle"
+    crypto_key = "nautilus"
+    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+    actual = RevisionsClient.crypto_key_path(project, location, key_ring, crypto_key)
+    assert expected == actual
+
+
+def test_parse_crypto_key_path():
+    expected = {
+        "project": "scallop",
+        "location": "abalone",
+        "key_ring": "squid",
+        "crypto_key": "clam",
+    }
+    path = RevisionsClient.crypto_key_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_crypto_key_path(path)
+    assert expected == actual
+
+def test_mesh_path():
+    project = "whelk"
+    location = "octopus"
+    mesh = "oyster"
+    expected = "projects/{project}/locations/{location}/meshes/{mesh}".format(project=project, location=location, mesh=mesh, )
+    actual = RevisionsClient.mesh_path(project, location, mesh)
+    assert expected == actual
+
+
+def test_parse_mesh_path():
+    expected = {
+        "project": "nudibranch",
+        "location": "cuttlefish",
+        "mesh": "mussel",
+    }
+    path = RevisionsClient.mesh_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_mesh_path(path)
+    assert expected == actual
+
+def test_revision_path():
+    project = "winkle"
+    location = "nautilus"
+    service = "scallop"
+    revision = "abalone"
+    expected = "projects/{project}/locations/{location}/services/{service}/revisions/{revision}".format(project=project, location=location, service=service, revision=revision, )
+    actual = RevisionsClient.revision_path(project, location, service, revision)
+    assert expected == actual
+
+
+def test_parse_revision_path():
+    expected = {
+        "project": "squid",
+        "location": "clam",
+        "service": "whelk",
+        "revision": "octopus",
+    }
+    path = RevisionsClient.revision_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_revision_path(path)
+    assert expected == actual
+
+def test_secret_path():
+    project = "oyster"
+    secret = "nudibranch"
+    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+    actual = RevisionsClient.secret_path(project, secret)
+    assert expected == actual
+
+
+def test_parse_secret_path():
+    expected = {
+        "project": "cuttlefish",
+        "secret": "mussel",
+    }
+    path = RevisionsClient.secret_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_secret_path(path)
+    assert expected == actual
+
+def test_secret_version_path():
+    project = "winkle"
+    secret = "nautilus"
+    version = "scallop"
+    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+    actual = RevisionsClient.secret_version_path(project, secret, version)
+    assert expected == actual
+
+
+def test_parse_secret_version_path():
+    expected = {
+        "project": "abalone",
+        "secret": "squid",
+        "version": "clam",
+    }
+    path = RevisionsClient.secret_version_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_secret_version_path(path)
+    assert expected == actual
+
+def test_service_path():
+    project = "whelk"
+    location = "octopus"
+    service = "oyster"
+    expected = "projects/{project}/locations/{location}/services/{service}".format(project=project, location=location, service=service, )
+    actual = RevisionsClient.service_path(project, location, service)
+    assert expected == actual
+
+
+def test_parse_service_path():
+    expected = {
+        "project": "nudibranch",
+        "location": "cuttlefish",
+        "service": "mussel",
+    }
+    path = RevisionsClient.service_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_service_path(path)
+    assert expected == actual
+
+def test_common_billing_account_path():
+    billing_account = "winkle"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = RevisionsClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "nautilus",
+    }
+    path = RevisionsClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "scallop"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = RevisionsClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "abalone",
+    }
+    path = RevisionsClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "squid"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = RevisionsClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "clam",
+    }
+    path = RevisionsClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "whelk"
+    expected = "projects/{project}".format(project=project, )
+    actual = RevisionsClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "octopus",
+    }
+    path = RevisionsClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_common_project_path(path)
+    assert expected == actual
+
+def test_common_location_path():
+    project = "oyster"
+    location = "nudibranch"
+    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
+    actual = RevisionsClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "cuttlefish",
+        "location": "mussel",
+    }
+    path = RevisionsClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = RevisionsClient.parse_common_location_path(path)
+    assert expected == actual
+
+
+def test_client_with_default_client_info():
+    client_info = gapic_v1.client_info.ClientInfo()
+
+    with mock.patch.object(transports.RevisionsTransport, '_prep_wrapped_messages') as prep:
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.RevisionsTransport, '_prep_wrapped_messages') as prep:
+        transport_class = RevisionsClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+
+def test_delete_operation(transport: str = "grpc"):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+        response = client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+@pytest.mark.asyncio
+async def test_delete_operation_async(transport: str = "grpc_asyncio"):
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+def test_delete_operation_field_headers():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value =  None
+
+        client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_delete_operation_field_headers_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_delete_operation_from_dict():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+
+        response = client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_delete_operation_from_dict_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_wait_operation(transport: str = "grpc"):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_wait_operation(transport: str = "grpc_asyncio"):
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_wait_operation_field_headers():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_wait_operation_field_headers_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_wait_operation_from_dict():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_wait_operation_from_dict_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_get_operation(transport: str = "grpc"):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_get_operation_async(transport: str = "grpc_asyncio"):
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_get_operation_field_headers():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_get_operation_field_headers_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_get_operation_from_dict():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_get_operation_from_dict_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_list_operations(transport: str = "grpc"):
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+        response = client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+@pytest.mark.asyncio
+async def test_list_operations_async(transport: str = "grpc_asyncio"):
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+def test_list_operations_field_headers():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_list_operations_field_headers_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_list_operations_from_dict():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        response = client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_list_operations_from_dict_async():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_transport_close_grpc():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+@pytest.mark.asyncio
+async def test_transport_close_grpc_asyncio():
+    client = RevisionsAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        async with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_transport_close_rest():
+    client = RevisionsClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_client_ctx():
+    transports = [
+        'rest',
+        'grpc',
+    ]
+    for transport in transports:
+        client = RevisionsClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        # Test client calls underlying transport.
+        with mock.patch.object(type(client.transport), "close") as close:
+            close.assert_not_called()
+            with client:
+                pass
+            close.assert_called()
+
+@pytest.mark.parametrize("client_class,transport_class", [
+    (RevisionsClient, transports.RevisionsGrpcTransport),
+    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport),
+])
+def test_api_key_credentials(client_class, transport_class):
+    with mock.patch.object(
+        google.auth._default, "get_api_key_credentials", create=True
+    ) as get_api_key_credentials:
+        mock_cred = mock.Mock()
+        get_api_key_credentials.return_value = mock_cred
+        options = client_options.ClientOptions()
+        options.api_key = "api_key"
+        with mock.patch.object(transport_class, "__init__") as patched:
+            patched.return_value = None
+            client = client_class(client_options=options)
+            patched.assert_called_once_with(
+                credentials=mock_cred,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_services.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_services.py
new file mode 100644
index 000000000000..e0a8442425f5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_services.py
@@ -0,0 +1,7878 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 os
+# try/except added for compatibility with python < 3.8
+try:
+    from unittest import mock
+    from unittest.mock import AsyncMock  # pragma: NO COVER
+except ImportError:  # pragma: NO COVER
+    import mock
+
+import grpc
+from grpc.experimental import aio
+from collections.abc import Iterable, AsyncIterable
+from google.protobuf import json_format
+import json
+import math
+import pytest
+from google.api_core import api_core_version
+from proto.marshal.rules.dates import DurationRule, TimestampRule
+from proto.marshal.rules import wrappers
+from requests import Response
+from requests import Request, PreparedRequest
+from requests.sessions import Session
+from google.protobuf import json_format
+
+try:
+    from google.auth.aio import credentials as ga_credentials_async
+    HAS_GOOGLE_AUTH_AIO = True
+except ImportError: # pragma: NO COVER
+    HAS_GOOGLE_AUTH_AIO = False
+
+from google.api import launch_stage_pb2  # type: ignore
+from google.api_core import client_options
+from google.api_core import exceptions as core_exceptions
+from google.api_core import future
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers
+from google.api_core import grpc_helpers_async
+from google.api_core import operation
+from google.api_core import operation_async  # type: ignore
+from google.api_core import operations_v1
+from google.api_core import path_template
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.location import locations_pb2
+from google.cloud.run_v2.services.services import ServicesAsyncClient
+from google.cloud.run_v2.services.services import ServicesClient
+from google.cloud.run_v2.services.services import pagers
+from google.cloud.run_v2.services.services import transports
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import revision_template
+from google.cloud.run_v2.types import service
+from google.cloud.run_v2.types import service as gcr_service
+from google.cloud.run_v2.types import traffic_target
+from google.cloud.run_v2.types import vendor_settings
+from google.iam.v1 import iam_policy_pb2  # type: ignore
+from google.iam.v1 import options_pb2  # type: ignore
+from google.iam.v1 import policy_pb2  # type: ignore
+from google.longrunning import operations_pb2 # type: ignore
+from google.oauth2 import service_account
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import field_mask_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+from google.type import expr_pb2  # type: ignore
+import google.auth
+
+
+async def mock_async_gen(data, chunk_size=1):
+    for i in range(0, len(data)):  # pragma: NO COVER
+        chunk = data[i : i + chunk_size]
+        yield chunk.encode("utf-8")
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
+# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
+def async_anonymous_credentials():
+    if HAS_GOOGLE_AUTH_AIO:
+        return ga_credentials_async.AnonymousCredentials()
+    return ga_credentials.AnonymousCredentials()
+
+# If default endpoint is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint(client):
+    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
+
+# If default endpoint template is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint template so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint_template(client):
+    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
+
+
+def test__get_default_mtls_endpoint():
+    api_endpoint = "example.googleapis.com"
+    api_mtls_endpoint = "example.mtls.googleapis.com"
+    sandbox_endpoint = "example.sandbox.googleapis.com"
+    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
+    non_googleapi = "api.example.com"
+
+    assert ServicesClient._get_default_mtls_endpoint(None) is None
+    assert ServicesClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert ServicesClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert ServicesClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert ServicesClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert ServicesClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+def test__read_environment_variables():
+    assert ServicesClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        assert ServicesClient._read_environment_variables() == (True, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        assert ServicesClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            ServicesClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        assert ServicesClient._read_environment_variables() == (False, "never", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        assert ServicesClient._read_environment_variables() == (False, "always", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
+        assert ServicesClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            ServicesClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
+        assert ServicesClient._read_environment_variables() == (False, "auto", "foo.com")
+
+def test__get_client_cert_source():
+    mock_provided_cert_source = mock.Mock()
+    mock_default_cert_source = mock.Mock()
+
+    assert ServicesClient._get_client_cert_source(None, False) is None
+    assert ServicesClient._get_client_cert_source(mock_provided_cert_source, False) is None
+    assert ServicesClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
+
+    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
+            assert ServicesClient._get_client_cert_source(None, True) is mock_default_cert_source
+            assert ServicesClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
+
+@mock.patch.object(ServicesClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesClient))
+@mock.patch.object(ServicesAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesAsyncClient))
+def test__get_api_endpoint():
+    api_override = "foo.com"
+    mock_client_cert_source = mock.Mock()
+    default_universe = ServicesClient._DEFAULT_UNIVERSE
+    default_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    assert ServicesClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
+    assert ServicesClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == ServicesClient.DEFAULT_MTLS_ENDPOINT
+    assert ServicesClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
+    assert ServicesClient._get_api_endpoint(None, None, default_universe, "always") == ServicesClient.DEFAULT_MTLS_ENDPOINT
+    assert ServicesClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == ServicesClient.DEFAULT_MTLS_ENDPOINT
+    assert ServicesClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
+    assert ServicesClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
+
+    with pytest.raises(MutualTLSChannelError) as excinfo:
+        ServicesClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
+    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
+
+
+def test__get_universe_domain():
+    client_universe_domain = "foo.com"
+    universe_domain_env = "bar.com"
+
+    assert ServicesClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
+    assert ServicesClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
+    assert ServicesClient._get_universe_domain(None, None) == ServicesClient._DEFAULT_UNIVERSE
+
+    with pytest.raises(ValueError) as excinfo:
+        ServicesClient._get_universe_domain("", None)
+    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (ServicesClient, "grpc"),
+    (ServicesAsyncClient, "grpc_asyncio"),
+    (ServicesClient, "rest"),
+])
+def test_services_client_from_service_account_info(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
+        factory.return_value = creds
+        info = {"valid": True}
+        client = client_class.from_service_account_info(info, transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.ServicesGrpcTransport, "grpc"),
+    (transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.ServicesRestTransport, "rest"),
+])
+def test_services_client_service_account_always_use_jwt(transport_class, transport_name):
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=True)
+        use_jwt.assert_called_once_with(True)
+
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=False)
+        use_jwt.assert_not_called()
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (ServicesClient, "grpc"),
+    (ServicesAsyncClient, "grpc_asyncio"),
+    (ServicesClient, "rest"),
+])
+def test_services_client_from_service_account_file(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
+        factory.return_value = creds
+        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+def test_services_client_get_transport_class():
+    transport = ServicesClient.get_transport_class()
+    available_transports = [
+        transports.ServicesGrpcTransport,
+        transports.ServicesRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = ServicesClient.get_transport_class("grpc")
+    assert transport == transports.ServicesGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ServicesClient, transports.ServicesGrpcTransport, "grpc"),
+    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ServicesClient, transports.ServicesRestTransport, "rest"),
+])
+@mock.patch.object(ServicesClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesClient))
+@mock.patch.object(ServicesAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesAsyncClient))
+def test_services_client_client_options(client_class, transport_class, transport_name):
+    # Check that if channel is provided we won't create a new one.
+    with mock.patch.object(ServicesClient, 'get_transport_class') as gtc:
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+        client = client_class(transport=transport)
+        gtc.assert_not_called()
+
+    # Check that if channel is provided via str we will create a new one.
+    with mock.patch.object(ServicesClient, 'get_transport_class') as gtc:
+        client = client_class(transport=transport_name)
+        gtc.assert_called()
+
+    # Check the case api_endpoint is provided.
+    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(transport=transport_name, client_options=options)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "never".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "always".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client.DEFAULT_MTLS_ENDPOINT,
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    # Check the case quota_project_id is provided
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id="octopus",
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+    # Check the case api_endpoint is provided
+    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
+    with mock.patch.object(transport_class, '__init__') as patched:
+        patched.return_value = None
+        client = client_class(client_options=options, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience="https://language.googleapis.com"
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
+    (ServicesClient, transports.ServicesGrpcTransport, "grpc", "true"),
+    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (ServicesClient, transports.ServicesGrpcTransport, "grpc", "false"),
+    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (ServicesClient, transports.ServicesRestTransport, "rest", "true"),
+    (ServicesClient, transports.ServicesRestTransport, "rest", "false"),
+])
+@mock.patch.object(ServicesClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesClient))
+@mock.patch.object(ServicesAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_services_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
+    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
+    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
+
+    # Check the case client_cert_source is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
+        with mock.patch.object(transport_class, '__init__') as patched:
+            patched.return_value = None
+            client = client_class(client_options=options, transport=transport_name)
+
+            if use_client_cert_env == "false":
+                expected_client_cert_source = None
+                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+            else:
+                expected_client_cert_source = client_cert_source_callback
+                expected_host = client.DEFAULT_MTLS_ENDPOINT
+
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=expected_host,
+                scopes=None,
+                client_cert_source_for_mtls=expected_client_cert_source,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case ADC client cert is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
+                    if use_client_cert_env == "false":
+                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+                        expected_client_cert_source = None
+                    else:
+                        expected_host = client.DEFAULT_MTLS_ENDPOINT
+                        expected_client_cert_source = client_cert_source_callback
+
+                    patched.return_value = None
+                    client = client_class(transport=transport_name)
+                    patched.assert_called_once_with(
+                        credentials=None,
+                        credentials_file=None,
+                        host=expected_host,
+                        scopes=None,
+                        client_cert_source_for_mtls=expected_client_cert_source,
+                        quota_project_id=None,
+                        client_info=transports.base.DEFAULT_CLIENT_INFO,
+                        always_use_jwt_access=True,
+                        api_audience=None,
+                    )
+
+    # Check the case client_cert_source and ADC client cert are not provided.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
+                patched.return_value = None
+                client = client_class(transport=transport_name)
+                patched.assert_called_once_with(
+                    credentials=None,
+                    credentials_file=None,
+                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                    scopes=None,
+                    client_cert_source_for_mtls=None,
+                    quota_project_id=None,
+                    client_info=transports.base.DEFAULT_CLIENT_INFO,
+                    always_use_jwt_access=True,
+                    api_audience=None,
+                )
+
+
+@pytest.mark.parametrize("client_class", [
+    ServicesClient, ServicesAsyncClient
+])
+@mock.patch.object(ServicesClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ServicesClient))
+@mock.patch.object(ServicesAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ServicesAsyncClient))
+def test_services_client_get_mtls_endpoint_and_cert_source(client_class):
+    mock_client_cert_source = mock.Mock()
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source == mock_client_cert_source
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        mock_client_cert_source = mock.Mock()
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
+            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+            assert api_endpoint == client_class.DEFAULT_ENDPOINT
+            assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
+                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+                assert cert_source == mock_client_cert_source
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+@pytest.mark.parametrize("client_class", [
+    ServicesClient, ServicesAsyncClient
+])
+@mock.patch.object(ServicesClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesClient))
+@mock.patch.object(ServicesAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesAsyncClient))
+def test_services_client_client_api_endpoint(client_class):
+    mock_client_cert_source = client_cert_source_callback
+    api_override = "foo.com"
+    default_universe = ServicesClient._DEFAULT_UNIVERSE
+    default_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
+    # use ClientOptions.api_endpoint as the api endpoint regardless.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
+            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
+            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+            assert client.api_endpoint == api_override
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
+    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+
+    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
+    # and ClientOptions.universe_domain="bar.com",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
+    options = client_options.ClientOptions()
+    universe_exists = hasattr(options, "universe_domain")
+    if universe_exists:
+        options = client_options.ClientOptions(universe_domain=mock_universe)
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    else:
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
+    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
+
+    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    options = client_options.ClientOptions()
+    if hasattr(options, "universe_domain"):
+        delattr(options, "universe_domain")
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ServicesClient, transports.ServicesGrpcTransport, "grpc"),
+    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ServicesClient, transports.ServicesRestTransport, "rest"),
+])
+def test_services_client_client_options_scopes(client_class, transport_class, transport_name):
+    # Check the case scopes are provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=["1", "2"],
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (ServicesClient, transports.ServicesGrpcTransport, "grpc", grpc_helpers),
+    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (ServicesClient, transports.ServicesRestTransport, "rest", None),
+])
+def test_services_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+def test_services_client_client_options_from_dict():
+    with mock.patch('google.cloud.run_v2.services.services.transports.ServicesGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = ServicesClient(
+            client_options={'api_endpoint': 'squid.clam.whelk'}
+        )
+        grpc_transport.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (ServicesClient, transports.ServicesGrpcTransport, "grpc", grpc_helpers),
+    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_services_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # test that the credentials from file are saved and used as the credentials.
+    with mock.patch.object(
+        google.auth, "load_credentials_from_file", autospec=True
+    ) as load_creds, mock.patch.object(
+        google.auth, "default", autospec=True
+    ) as adc, mock.patch.object(
+        grpc_helpers, "create_channel"
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        file_creds = ga_credentials.AnonymousCredentials()
+        load_creds.return_value = (file_creds, None)
+        adc.return_value = (creds, None)
+        client = client_class(client_options=options, transport=transport_name)
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=file_creds,
+            credentials_file=None,
+            quota_project_id=None,
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=None,
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  gcr_service.CreateServiceRequest,
+  dict,
+])
+def test_create_service(request_type, transport: str = 'grpc'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.create_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = gcr_service.CreateServiceRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_create_service_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = gcr_service.CreateServiceRequest(
+        parent='parent_value',
+        service_id='service_id_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.create_service(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == gcr_service.CreateServiceRequest(
+            parent='parent_value',
+            service_id='service_id_value',
+        )
+
+def test_create_service_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.create_service in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.create_service] = mock_rpc
+        request = {}
+        client.create_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.create_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_create_service_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ServicesAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.create_service in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.create_service] = mock_rpc
+
+        request = {}
+        await client.create_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.create_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_create_service_async(transport: str = 'grpc_asyncio', request_type=gcr_service.CreateServiceRequest):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.create_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = gcr_service.CreateServiceRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_create_service_async_from_dict():
+    await test_create_service_async(request_type=dict)
+
+
+def test_create_service_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.create_service(
+            parent='parent_value',
+            service=gcr_service.Service(name='name_value'),
+            service_id='service_id_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+        arg = args[0].service
+        mock_val = gcr_service.Service(name='name_value')
+        assert arg == mock_val
+        arg = args[0].service_id
+        mock_val = 'service_id_value'
+        assert arg == mock_val
+
+
+def test_create_service_flattened_error():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.create_service(
+            gcr_service.CreateServiceRequest(),
+            parent='parent_value',
+            service=gcr_service.Service(name='name_value'),
+            service_id='service_id_value',
+        )
+
+@pytest.mark.asyncio
+async def test_create_service_flattened_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.create_service(
+            parent='parent_value',
+            service=gcr_service.Service(name='name_value'),
+            service_id='service_id_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+        arg = args[0].service
+        mock_val = gcr_service.Service(name='name_value')
+        assert arg == mock_val
+        arg = args[0].service_id
+        mock_val = 'service_id_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_create_service_flattened_error_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.create_service(
+            gcr_service.CreateServiceRequest(),
+            parent='parent_value',
+            service=gcr_service.Service(name='name_value'),
+            service_id='service_id_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  service.GetServiceRequest,
+  dict,
+])
+def test_get_service(request_type, transport: str = 'grpc'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = service.Service(
+            name='name_value',
+            description='description_value',
+            uid='uid_value',
+            generation=1068,
+            creator='creator_value',
+            last_modifier='last_modifier_value',
+            client='client_value',
+            client_version='client_version_value',
+            ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            invoker_iam_disabled=True,
+            default_uri_disabled=True,
+            urls=['urls_value'],
+            custom_audiences=['custom_audiences_value'],
+            observed_generation=2021,
+            latest_ready_revision='latest_ready_revision_value',
+            latest_created_revision='latest_created_revision_value',
+            uri='uri_value',
+            satisfies_pzs=True,
+            reconciling=True,
+            etag='etag_value',
+        )
+        response = client.get_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = service.GetServiceRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, service.Service)
+    assert response.name == 'name_value'
+    assert response.description == 'description_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.creator == 'creator_value'
+    assert response.last_modifier == 'last_modifier_value'
+    assert response.client == 'client_value'
+    assert response.client_version == 'client_version_value'
+    assert response.ingress == vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.invoker_iam_disabled is True
+    assert response.default_uri_disabled is True
+    assert response.urls == ['urls_value']
+    assert response.custom_audiences == ['custom_audiences_value']
+    assert response.observed_generation == 2021
+    assert response.latest_ready_revision == 'latest_ready_revision_value'
+    assert response.latest_created_revision == 'latest_created_revision_value'
+    assert response.uri == 'uri_value'
+    assert response.satisfies_pzs is True
+    assert response.reconciling is True
+    assert response.etag == 'etag_value'
+
+
+def test_get_service_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = service.GetServiceRequest(
+        name='name_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.get_service(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == service.GetServiceRequest(
+            name='name_value',
+        )
+
+def test_get_service_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_service in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_service] = mock_rpc
+        request = {}
+        client.get_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_service_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ServicesAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.get_service in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.get_service] = mock_rpc
+
+        request = {}
+        await client.get_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.get_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_service_async(transport: str = 'grpc_asyncio', request_type=service.GetServiceRequest):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(service.Service(
+            name='name_value',
+            description='description_value',
+            uid='uid_value',
+            generation=1068,
+            creator='creator_value',
+            last_modifier='last_modifier_value',
+            client='client_value',
+            client_version='client_version_value',
+            ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            invoker_iam_disabled=True,
+            default_uri_disabled=True,
+            urls=['urls_value'],
+            custom_audiences=['custom_audiences_value'],
+            observed_generation=2021,
+            latest_ready_revision='latest_ready_revision_value',
+            latest_created_revision='latest_created_revision_value',
+            uri='uri_value',
+            satisfies_pzs=True,
+            reconciling=True,
+            etag='etag_value',
+        ))
+        response = await client.get_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = service.GetServiceRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, service.Service)
+    assert response.name == 'name_value'
+    assert response.description == 'description_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.creator == 'creator_value'
+    assert response.last_modifier == 'last_modifier_value'
+    assert response.client == 'client_value'
+    assert response.client_version == 'client_version_value'
+    assert response.ingress == vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.invoker_iam_disabled is True
+    assert response.default_uri_disabled is True
+    assert response.urls == ['urls_value']
+    assert response.custom_audiences == ['custom_audiences_value']
+    assert response.observed_generation == 2021
+    assert response.latest_ready_revision == 'latest_ready_revision_value'
+    assert response.latest_created_revision == 'latest_created_revision_value'
+    assert response.uri == 'uri_value'
+    assert response.satisfies_pzs is True
+    assert response.reconciling is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.asyncio
+async def test_get_service_async_from_dict():
+    await test_get_service_async(request_type=dict)
+
+
+def test_get_service_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = service.Service()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.get_service(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_get_service_flattened_error():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_service(
+            service.GetServiceRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_get_service_flattened_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = service.Service()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.Service())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.get_service(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_get_service_flattened_error_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.get_service(
+            service.GetServiceRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  service.ListServicesRequest,
+  dict,
+])
+def test_list_services(request_type, transport: str = 'grpc'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = service.ListServicesResponse(
+            next_page_token='next_page_token_value',
+        )
+        response = client.list_services(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = service.ListServicesRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListServicesPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_services_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = service.ListServicesRequest(
+        parent='parent_value',
+        page_token='page_token_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.list_services(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == service.ListServicesRequest(
+            parent='parent_value',
+            page_token='page_token_value',
+        )
+
+def test_list_services_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_services in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_services] = mock_rpc
+        request = {}
+        client.list_services(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_services(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_services_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ServicesAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.list_services in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.list_services] = mock_rpc
+
+        request = {}
+        await client.list_services(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.list_services(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_services_async(transport: str = 'grpc_asyncio', request_type=service.ListServicesRequest):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(service.ListServicesResponse(
+            next_page_token='next_page_token_value',
+        ))
+        response = await client.list_services(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = service.ListServicesRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListServicesAsyncPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.asyncio
+async def test_list_services_async_from_dict():
+    await test_list_services_async(request_type=dict)
+
+
+def test_list_services_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = service.ListServicesResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.list_services(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+
+def test_list_services_flattened_error():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_services(
+            service.ListServicesRequest(),
+            parent='parent_value',
+        )
+
+@pytest.mark.asyncio
+async def test_list_services_flattened_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = service.ListServicesResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.ListServicesResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.list_services(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_list_services_flattened_error_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.list_services(
+            service.ListServicesRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_services_pager(transport_name: str = "grpc"):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                    service.Service(),
+                ],
+                next_page_token='abc',
+            ),
+            service.ListServicesResponse(
+                services=[],
+                next_page_token='def',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                ],
+                next_page_token='ghi',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                ],
+            ),
+            RuntimeError,
+        )
+
+        expected_metadata = ()
+        retry = retries.Retry()
+        timeout = 5
+        pager = client.list_services(request={}, retry=retry, timeout=timeout)
+
+        assert pager._metadata == expected_metadata
+        assert pager._retry == retry
+        assert pager._timeout == timeout
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, service.Service)
+                   for i in results)
+def test_list_services_pages(transport_name: str = "grpc"):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                    service.Service(),
+                ],
+                next_page_token='abc',
+            ),
+            service.ListServicesResponse(
+                services=[],
+                next_page_token='def',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                ],
+                next_page_token='ghi',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = list(client.list_services(request={}).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.asyncio
+async def test_list_services_async_pager():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                    service.Service(),
+                ],
+                next_page_token='abc',
+            ),
+            service.ListServicesResponse(
+                services=[],
+                next_page_token='def',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                ],
+                next_page_token='ghi',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                ],
+            ),
+            RuntimeError,
+        )
+        async_pager = await client.list_services(request={},)
+        assert async_pager.next_page_token == 'abc'
+        responses = []
+        async for response in async_pager: # pragma: no branch
+            responses.append(response)
+
+        assert len(responses) == 6
+        assert all(isinstance(i, service.Service)
+                for i in responses)
+
+
+@pytest.mark.asyncio
+async def test_list_services_async_pages():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                    service.Service(),
+                ],
+                next_page_token='abc',
+            ),
+            service.ListServicesResponse(
+                services=[],
+                next_page_token='def',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                ],
+                next_page_token='ghi',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = []
+        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
+        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
+        async for page_ in ( # pragma: no branch
+            await client.list_services(request={})
+        ).pages:
+            pages.append(page_)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.parametrize("request_type", [
+  gcr_service.UpdateServiceRequest,
+  dict,
+])
+def test_update_service(request_type, transport: str = 'grpc'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.update_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = gcr_service.UpdateServiceRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_update_service_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = gcr_service.UpdateServiceRequest(
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.update_service(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == gcr_service.UpdateServiceRequest(
+        )
+
+def test_update_service_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.update_service in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.update_service] = mock_rpc
+        request = {}
+        client.update_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.update_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_update_service_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ServicesAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.update_service in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.update_service] = mock_rpc
+
+        request = {}
+        await client.update_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.update_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_update_service_async(transport: str = 'grpc_asyncio', request_type=gcr_service.UpdateServiceRequest):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.update_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = gcr_service.UpdateServiceRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_update_service_async_from_dict():
+    await test_update_service_async(request_type=dict)
+
+
+def test_update_service_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.update_service(
+            service=gcr_service.Service(name='name_value'),
+            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].service
+        mock_val = gcr_service.Service(name='name_value')
+        assert arg == mock_val
+        arg = args[0].update_mask
+        mock_val = field_mask_pb2.FieldMask(paths=['paths_value'])
+        assert arg == mock_val
+
+
+def test_update_service_flattened_error():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.update_service(
+            gcr_service.UpdateServiceRequest(),
+            service=gcr_service.Service(name='name_value'),
+            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
+        )
+
+@pytest.mark.asyncio
+async def test_update_service_flattened_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.update_service(
+            service=gcr_service.Service(name='name_value'),
+            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].service
+        mock_val = gcr_service.Service(name='name_value')
+        assert arg == mock_val
+        arg = args[0].update_mask
+        mock_val = field_mask_pb2.FieldMask(paths=['paths_value'])
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_update_service_flattened_error_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.update_service(
+            gcr_service.UpdateServiceRequest(),
+            service=gcr_service.Service(name='name_value'),
+            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  service.DeleteServiceRequest,
+  dict,
+])
+def test_delete_service(request_type, transport: str = 'grpc'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/spam')
+        response = client.delete_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = service.DeleteServiceRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+def test_delete_service_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = service.DeleteServiceRequest(
+        name='name_value',
+        etag='etag_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.delete_service(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == service.DeleteServiceRequest(
+            name='name_value',
+            etag='etag_value',
+        )
+
+def test_delete_service_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.delete_service in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.delete_service] = mock_rpc
+        request = {}
+        client.delete_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.delete_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_delete_service_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ServicesAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.delete_service in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.delete_service] = mock_rpc
+
+        request = {}
+        await client.delete_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods call wrapper_fn to build a cached
+        # client._transport.operations_client instance on first rpc call.
+        # Subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        await client.delete_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_delete_service_async(transport: str = 'grpc_asyncio', request_type=service.DeleteServiceRequest):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        response = await client.delete_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = service.DeleteServiceRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, future.Future)
+
+
+@pytest.mark.asyncio
+async def test_delete_service_async_from_dict():
+    await test_delete_service_async(request_type=dict)
+
+
+def test_delete_service_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.delete_service(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_delete_service_flattened_error():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.delete_service(
+            service.DeleteServiceRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_delete_service_flattened_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation(name='operations/op')
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.delete_service(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_delete_service_flattened_error_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.delete_service(
+            service.DeleteServiceRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.GetIamPolicyRequest,
+  dict,
+])
+def test_get_iam_policy(request_type, transport: str = 'grpc'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        )
+        response = client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.GetIamPolicyRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+def test_get_iam_policy_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = iam_policy_pb2.GetIamPolicyRequest(
+        resource='resource_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.get_iam_policy(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == iam_policy_pb2.GetIamPolicyRequest(
+            resource='resource_value',
+        )
+
+def test_get_iam_policy_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_iam_policy in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc
+        request = {}
+        client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_iam_policy_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ServicesAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.get_iam_policy in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.get_iam_policy] = mock_rpc
+
+        request = {}
+        await client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.get_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_iam_policy_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.GetIamPolicyRequest):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        ))
+        response = await client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.GetIamPolicyRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+@pytest.mark.asyncio
+async def test_get_iam_policy_async_from_dict():
+    await test_get_iam_policy_async(request_type=dict)
+
+def test_get_iam_policy_field_headers():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.GetIamPolicyRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        call.return_value = policy_pb2.Policy()
+        client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_get_iam_policy_field_headers_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.GetIamPolicyRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy())
+        await client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+def test_get_iam_policy_from_dict_foreign():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = policy_pb2.Policy()
+        response = client.get_iam_policy(request={
+            'resource': 'resource_value',
+            'options': options_pb2.GetPolicyOptions(requested_policy_version=2598),
+            }
+        )
+        call.assert_called()
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.SetIamPolicyRequest,
+  dict,
+])
+def test_set_iam_policy(request_type, transport: str = 'grpc'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        )
+        response = client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.SetIamPolicyRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+def test_set_iam_policy_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = iam_policy_pb2.SetIamPolicyRequest(
+        resource='resource_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.set_iam_policy(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == iam_policy_pb2.SetIamPolicyRequest(
+            resource='resource_value',
+        )
+
+def test_set_iam_policy_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.set_iam_policy in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc
+        request = {}
+        client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.set_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_set_iam_policy_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ServicesAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.set_iam_policy in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.set_iam_policy] = mock_rpc
+
+        request = {}
+        await client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.set_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_set_iam_policy_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.SetIamPolicyRequest):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        ))
+        response = await client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.SetIamPolicyRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+@pytest.mark.asyncio
+async def test_set_iam_policy_async_from_dict():
+    await test_set_iam_policy_async(request_type=dict)
+
+def test_set_iam_policy_field_headers():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.SetIamPolicyRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        call.return_value = policy_pb2.Policy()
+        client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_set_iam_policy_field_headers_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.SetIamPolicyRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy())
+        await client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+def test_set_iam_policy_from_dict_foreign():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = policy_pb2.Policy()
+        response = client.set_iam_policy(request={
+            'resource': 'resource_value',
+            'policy': policy_pb2.Policy(version=774),
+            'update_mask': field_mask_pb2.FieldMask(paths=['paths_value']),
+            }
+        )
+        call.assert_called()
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.TestIamPermissionsRequest,
+  dict,
+])
+def test_test_iam_permissions(request_type, transport: str = 'grpc'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = iam_policy_pb2.TestIamPermissionsResponse(
+            permissions=['permissions_value'],
+        )
+        response = client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.TestIamPermissionsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
+    assert response.permissions == ['permissions_value']
+
+
+def test_test_iam_permissions_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = iam_policy_pb2.TestIamPermissionsRequest(
+        resource='resource_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.test_iam_permissions(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == iam_policy_pb2.TestIamPermissionsRequest(
+            resource='resource_value',
+        )
+
+def test_test_iam_permissions_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.test_iam_permissions in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.test_iam_permissions] = mock_rpc
+        request = {}
+        client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.test_iam_permissions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_test_iam_permissions_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = ServicesAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.test_iam_permissions in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.test_iam_permissions] = mock_rpc
+
+        request = {}
+        await client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.test_iam_permissions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_test_iam_permissions_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.TestIamPermissionsRequest):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse(
+            permissions=['permissions_value'],
+        ))
+        response = await client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = iam_policy_pb2.TestIamPermissionsRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
+    assert response.permissions == ['permissions_value']
+
+
+@pytest.mark.asyncio
+async def test_test_iam_permissions_async_from_dict():
+    await test_test_iam_permissions_async(request_type=dict)
+
+def test_test_iam_permissions_field_headers():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.TestIamPermissionsRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
+        client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_test_iam_permissions_field_headers_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = iam_policy_pb2.TestIamPermissionsRequest()
+
+    request.resource = 'resource_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse())
+        await client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'resource=resource_value',
+    ) in kw['metadata']
+
+def test_test_iam_permissions_from_dict_foreign():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
+        response = client.test_iam_permissions(request={
+            'resource': 'resource_value',
+            'permissions': ['permissions_value'],
+            }
+        )
+        call.assert_called()
+
+
+def test_create_service_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.create_service in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.create_service] = mock_rpc
+
+        request = {}
+        client.create_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.create_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_create_service_rest_required_fields(request_type=gcr_service.CreateServiceRequest):
+    transport_class = transports.ServicesRestTransport
+
+    request_init = {}
+    request_init["parent"] = ""
+    request_init["service_id"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+    assert "serviceId" not in jsonified_request
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).create_service._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+    assert "serviceId" in jsonified_request
+    assert jsonified_request["serviceId"] == request_init["service_id"]
+
+    jsonified_request["parent"] = 'parent_value'
+    jsonified_request["serviceId"] = 'service_id_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).create_service._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("service_id", "validate_only", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "parent" in jsonified_request
+    assert jsonified_request["parent"] == 'parent_value'
+    assert "serviceId" in jsonified_request
+    assert jsonified_request["serviceId"] == 'service_id_value'
+
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.create_service(request)
+
+            expected_params = [
+                (
+                    "serviceId",
+                    "",
+                ),
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_create_service_rest_unset_required_fields():
+    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.create_service._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("serviceId", "validateOnly", )) & set(("parent", "service", "serviceId", )))
+
+
+def test_create_service_rest_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'parent': 'projects/sample1/locations/sample2'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            parent='parent_value',
+            service=gcr_service.Service(name='name_value'),
+            service_id='service_id_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.create_service(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{parent=projects/*/locations/*}/services" % client.transport._host, args[1])
+
+
+def test_create_service_rest_flattened_error(transport: str = 'rest'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.create_service(
+            gcr_service.CreateServiceRequest(),
+            parent='parent_value',
+            service=gcr_service.Service(name='name_value'),
+            service_id='service_id_value',
+        )
+
+
+def test_get_service_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_service in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_service] = mock_rpc
+
+        request = {}
+        client.get_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_get_service_rest_required_fields(request_type=service.GetServiceRequest):
+    transport_class = transports.ServicesRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_service._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_service._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = service.Service()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = service.Service.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.get_service(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_get_service_rest_unset_required_fields():
+    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.get_service._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("name", )))
+
+
+def test_get_service_rest_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = service.Service()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/services/sample3'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = service.Service.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.get_service(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/services/*}" % client.transport._host, args[1])
+
+
+def test_get_service_rest_flattened_error(transport: str = 'rest'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_service(
+            service.GetServiceRequest(),
+            name='name_value',
+        )
+
+
+def test_list_services_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_services in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_services] = mock_rpc
+
+        request = {}
+        client.list_services(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_services(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_list_services_rest_required_fields(request_type=service.ListServicesRequest):
+    transport_class = transports.ServicesRestTransport
+
+    request_init = {}
+    request_init["parent"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_services._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["parent"] = 'parent_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_services._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "parent" in jsonified_request
+    assert jsonified_request["parent"] == 'parent_value'
+
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = service.ListServicesResponse()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = service.ListServicesResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.list_services(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_list_services_rest_unset_required_fields():
+    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.list_services._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
+
+
+def test_list_services_rest_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = service.ListServicesResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'parent': 'projects/sample1/locations/sample2'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            parent='parent_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = service.ListServicesResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.list_services(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{parent=projects/*/locations/*}/services" % client.transport._host, args[1])
+
+
+def test_list_services_rest_flattened_error(transport: str = 'rest'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_services(
+            service.ListServicesRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_services_rest_pager(transport: str = 'rest'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # TODO(kbandes): remove this mock unless there's a good reason for it.
+        #with mock.patch.object(path_template, 'transcode') as transcode:
+        # Set the response as a series of pages
+        response = (
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                    service.Service(),
+                ],
+                next_page_token='abc',
+            ),
+            service.ListServicesResponse(
+                services=[],
+                next_page_token='def',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                ],
+                next_page_token='ghi',
+            ),
+            service.ListServicesResponse(
+                services=[
+                    service.Service(),
+                    service.Service(),
+                ],
+            ),
+        )
+        # Two responses for two calls
+        response = response + response
+
+        # Wrap the values into proper Response objs
+        response = tuple(service.ListServicesResponse.to_json(x) for x in response)
+        return_values = tuple(Response() for i in response)
+        for return_val, response_val in zip(return_values, response):
+            return_val._content = response_val.encode('UTF-8')
+            return_val.status_code = 200
+        req.side_effect = return_values
+
+        sample_request = {'parent': 'projects/sample1/locations/sample2'}
+
+        pager = client.list_services(request=sample_request)
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, service.Service)
+                for i in results)
+
+        pages = list(client.list_services(request=sample_request).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+
+def test_update_service_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.update_service in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.update_service] = mock_rpc
+
+        request = {}
+        client.update_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.update_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_update_service_rest_required_fields(request_type=gcr_service.UpdateServiceRequest):
+    transport_class = transports.ServicesRestTransport
+
+    request_init = {}
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_service._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_service._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("allow_missing", "update_mask", "validate_only", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "patch",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.update_service(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_update_service_rest_unset_required_fields():
+    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.update_service._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("allowMissing", "updateMask", "validateOnly", )) & set(("service", )))
+
+
+def test_update_service_rest_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'service': {'name': 'projects/sample1/locations/sample2/services/sample3'}}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            service=gcr_service.Service(name='name_value'),
+            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.update_service(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{service.name=projects/*/locations/*/services/*}" % client.transport._host, args[1])
+
+
+def test_update_service_rest_flattened_error(transport: str = 'rest'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.update_service(
+            gcr_service.UpdateServiceRequest(),
+            service=gcr_service.Service(name='name_value'),
+            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
+        )
+
+
+def test_delete_service_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.delete_service in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.delete_service] = mock_rpc
+
+        request = {}
+        client.delete_service(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        # Operation methods build a cached wrapper on first rpc call
+        # subsequent calls should use the cached wrapper
+        wrapper_fn.reset_mock()
+
+        client.delete_service(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_delete_service_rest_required_fields(request_type=service.DeleteServiceRequest):
+    transport_class = transports.ServicesRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_service._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_service._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("etag", "validate_only", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = operations_pb2.Operation(name='operations/spam')
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "delete",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.delete_service(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_delete_service_rest_unset_required_fields():
+    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.delete_service._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("etag", "validateOnly", )) & set(("name", )))
+
+
+def test_delete_service_rest_flattened():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/services/sample3'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.delete_service(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/services/*}" % client.transport._host, args[1])
+
+
+def test_delete_service_rest_flattened_error(transport: str = 'rest'):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.delete_service(
+            service.DeleteServiceRequest(),
+            name='name_value',
+        )
+
+
+def test_get_iam_policy_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_iam_policy in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc
+
+        request = {}
+        client.get_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_get_iam_policy_rest_required_fields(request_type=iam_policy_pb2.GetIamPolicyRequest):
+    transport_class = transports.ServicesRestTransport
+
+    request_init = {}
+    request_init["resource"] = ""
+    request = request_type(**request_init)
+    pb_request = request
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_iam_policy._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["resource"] = 'resource_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_iam_policy._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("options", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "resource" in jsonified_request
+    assert jsonified_request["resource"] == 'resource_value'
+
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = policy_pb2.Policy()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.get_iam_policy(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_get_iam_policy_rest_unset_required_fields():
+    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.get_iam_policy._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("options", )) & set(("resource", )))
+
+
+def test_set_iam_policy_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.set_iam_policy in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc
+
+        request = {}
+        client.set_iam_policy(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.set_iam_policy(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_set_iam_policy_rest_required_fields(request_type=iam_policy_pb2.SetIamPolicyRequest):
+    transport_class = transports.ServicesRestTransport
+
+    request_init = {}
+    request_init["resource"] = ""
+    request = request_type(**request_init)
+    pb_request = request
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).set_iam_policy._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["resource"] = 'resource_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).set_iam_policy._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "resource" in jsonified_request
+    assert jsonified_request["resource"] == 'resource_value'
+
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = policy_pb2.Policy()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.set_iam_policy(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_set_iam_policy_rest_unset_required_fields():
+    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.set_iam_policy._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("resource", "policy", )))
+
+
+def test_test_iam_permissions_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.test_iam_permissions in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.test_iam_permissions] = mock_rpc
+
+        request = {}
+        client.test_iam_permissions(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.test_iam_permissions(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_test_iam_permissions_rest_required_fields(request_type=iam_policy_pb2.TestIamPermissionsRequest):
+    transport_class = transports.ServicesRestTransport
+
+    request_init = {}
+    request_init["resource"] = ""
+    request_init["permissions"] = ""
+    request = request_type(**request_init)
+    pb_request = request
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).test_iam_permissions._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["resource"] = 'resource_value'
+    jsonified_request["permissions"] = 'permissions_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).test_iam_permissions._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "resource" in jsonified_request
+    assert jsonified_request["resource"] == 'resource_value'
+    assert "permissions" in jsonified_request
+    assert jsonified_request["permissions"] == 'permissions_value'
+
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = iam_policy_pb2.TestIamPermissionsResponse()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "post",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.test_iam_permissions(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_test_iam_permissions_rest_unset_required_fields():
+    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.test_iam_permissions._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("resource", "permissions", )))
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.ServicesGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.ServicesGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ServicesClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.ServicesGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ServicesClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ServicesClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.ServicesGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ServicesClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ServicesGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = ServicesClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ServicesGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.ServicesGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.ServicesGrpcTransport,
+    transports.ServicesGrpcAsyncIOTransport,
+    transports.ServicesRestTransport,
+])
+def test_transport_adc(transport_class):
+    # Test default credentials are used if not provided.
+    with mock.patch.object(google.auth, 'default') as adc:
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport_class()
+        adc.assert_called_once()
+
+def test_transport_kind_grpc():
+    transport = ServicesClient.get_transport_class("grpc")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "grpc"
+
+
+def test_initialize_client_w_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_create_service_empty_call_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.create_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_service.CreateServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_service_empty_call_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        call.return_value = service.Service()
+        client.get_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.GetServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_services_empty_call_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        call.return_value = service.ListServicesResponse()
+        client.list_services(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.ListServicesRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_update_service_empty_call_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.update_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_service.UpdateServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_delete_service_empty_call_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.delete_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.DeleteServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_iam_policy_empty_call_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        call.return_value = policy_pb2.Policy()
+        client.get_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.GetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_set_iam_policy_empty_call_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        call.return_value = policy_pb2.Policy()
+        client.set_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.SetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_test_iam_permissions_empty_call_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
+        client.test_iam_permissions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
+
+        assert args[0] == request_msg
+
+
+def test_create_service_routing_parameters_request_1_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.create_service(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_service.CreateServiceRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_get_service_routing_parameters_request_1_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        call.return_value = service.Service()
+        client.get_service(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.GetServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_list_services_routing_parameters_request_1_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        call.return_value = service.ListServicesResponse()
+        client.list_services(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.ListServicesRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_update_service_routing_parameters_request_1_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.update_service(request={"service": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_service.UpdateServiceRequest(**{"service": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_delete_service_routing_parameters_request_1_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        call.return_value = operations_pb2.Operation(name='operations/op')
+        client.delete_service(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.DeleteServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_transport_kind_grpc_asyncio():
+    transport = ServicesAsyncClient.get_transport_class("grpc_asyncio")(
+        credentials=async_anonymous_credentials()
+    )
+    assert transport.kind == "grpc_asyncio"
+
+
+def test_initialize_client_w_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_create_service_empty_call_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.create_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_service.CreateServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_get_service_empty_call_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.Service(
+            name='name_value',
+            description='description_value',
+            uid='uid_value',
+            generation=1068,
+            creator='creator_value',
+            last_modifier='last_modifier_value',
+            client='client_value',
+            client_version='client_version_value',
+            ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            invoker_iam_disabled=True,
+            default_uri_disabled=True,
+            urls=['urls_value'],
+            custom_audiences=['custom_audiences_value'],
+            observed_generation=2021,
+            latest_ready_revision='latest_ready_revision_value',
+            latest_created_revision='latest_created_revision_value',
+            uri='uri_value',
+            satisfies_pzs=True,
+            reconciling=True,
+            etag='etag_value',
+        ))
+        await client.get_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.GetServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_list_services_empty_call_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.ListServicesResponse(
+            next_page_token='next_page_token_value',
+        ))
+        await client.list_services(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.ListServicesRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_update_service_empty_call_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.update_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_service.UpdateServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_delete_service_empty_call_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.delete_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.DeleteServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_get_iam_policy_empty_call_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        ))
+        await client.get_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.GetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_set_iam_policy_empty_call_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
+            version=774,
+            etag=b'etag_blob',
+        ))
+        await client.set_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.SetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_test_iam_permissions_empty_call_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse(
+            permissions=['permissions_value'],
+        ))
+        await client.test_iam_permissions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
+
+        assert args[0] == request_msg
+
+
+@pytest.mark.asyncio
+async def test_create_service_routing_parameters_request_1_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.create_service(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_service.CreateServiceRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_get_service_routing_parameters_request_1_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.Service(
+            name='name_value',
+            description='description_value',
+            uid='uid_value',
+            generation=1068,
+            creator='creator_value',
+            last_modifier='last_modifier_value',
+            client='client_value',
+            client_version='client_version_value',
+            ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
+            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+            invoker_iam_disabled=True,
+            default_uri_disabled=True,
+            urls=['urls_value'],
+            custom_audiences=['custom_audiences_value'],
+            observed_generation=2021,
+            latest_ready_revision='latest_ready_revision_value',
+            latest_created_revision='latest_created_revision_value',
+            uri='uri_value',
+            satisfies_pzs=True,
+            reconciling=True,
+            etag='etag_value',
+        ))
+        await client.get_service(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.GetServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_list_services_routing_parameters_request_1_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.ListServicesResponse(
+            next_page_token='next_page_token_value',
+        ))
+        await client.list_services(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.ListServicesRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_update_service_routing_parameters_request_1_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.update_service(request={"service": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_service.UpdateServiceRequest(**{"service": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+@pytest.mark.asyncio
+async def test_delete_service_routing_parameters_request_1_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation(name='operations/spam')
+        )
+        await client.delete_service(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.DeleteServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_transport_kind_rest():
+    transport = ServicesClient.get_transport_class("rest")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "rest"
+
+
+def test_create_service_rest_bad_request(request_type=gcr_service.CreateServiceRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.create_service(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  gcr_service.CreateServiceRequest,
+  dict,
+])
+def test_create_service_rest_call_success(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request_init["service"] = {'name': 'name_value', 'description': 'description_value', 'uid': 'uid_value', 'generation': 1068, 'labels': {}, 'annotations': {}, 'create_time': {'seconds': 751, 'nanos': 543}, 'update_time': {}, 'delete_time': {}, 'expire_time': {}, 'creator': 'creator_value', 'last_modifier': 'last_modifier_value', 'client': 'client_value', 'client_version': 'client_version_value', 'ingress': 1, 'launch_stage': 6, 'binary_authorization': {'use_default': True, 'policy': 'policy_value', 'breakglass_justification': 'breakglass_justification_value'}, 'template': {'revision': 'revision_value', 'labels': {}, 'annotations': {}, 'scaling': {'min_instance_count': 1920, 'max_instance_count': 1922}, 'vpc_access': {'connector': 'connector_value', 'egress': 1, 'network_interfaces': [{'network': 'network_value', 'subnetwork': 'subnetwork_value', 'tags': ['tags_value1', 'tags_value2']}]}, 'timeout': {'seconds': 751, 'nanos': 543}, 'service_account': 'service_account_value', 'containers': [{'name': 'name_value', 'image': 'image_value', 'command': ['command_value1', 'command_value2'], 'args': ['args_value1', 'args_value2'], 'env': [{'name': 'name_value', 'value': 'value_value', 'value_source': {'secret_key_ref': {'secret': 'secret_value', 'version': 'version_value'}}}], 'resources': {'limits': {}, 'cpu_idle': True, 'startup_cpu_boost': True}, 'ports': [{'name': 'name_value', 'container_port': 1511}], 'volume_mounts': [{'name': 'name_value', 'mount_path': 'mount_path_value'}], 'working_dir': 'working_dir_value', 'liveness_probe': {'initial_delay_seconds': 2214, 'timeout_seconds': 1621, 'period_seconds': 1489, 'failure_threshold': 1812, 'http_get': {'path': 'path_value', 'http_headers': [{'name': 'name_value', 'value': 'value_value'}], 'port': 453}, 'tcp_socket': {'port': 453}, 'grpc': {'port': 453, 'service': 'service_value'}}, 'startup_probe': {}, 'depends_on': ['depends_on_value1', 'depends_on_value2']}], 'volumes': [{'name': 'name_value', 'secret': {'secret': 'secret_value', 'items': [{'path': 'path_value', 'version': 'version_value', 'mode': 421}], 'default_mode': 1257}, 'cloud_sql_instance': {'instances': ['instances_value1', 'instances_value2']}, 'empty_dir': {'medium': 1, 'size_limit': 'size_limit_value'}, 'nfs': {'server': 'server_value', 'path': 'path_value', 'read_only': True}, 'gcs': {'bucket': 'bucket_value', 'read_only': True, 'mount_options': ['mount_options_value1', 'mount_options_value2']}}], 'execution_environment': 1, 'encryption_key': 'encryption_key_value', 'max_instance_request_concurrency': 3436, 'service_mesh': {'mesh': 'mesh_value'}, 'encryption_key_revocation_action': 1, 'encryption_key_shutdown_duration': {}, 'session_affinity': True, 'health_check_disabled': True, 'node_selector': {'accelerator': 'accelerator_value'}}, 'traffic': [{'type_': 1, 'revision': 'revision_value', 'percent': 753, 'tag': 'tag_value'}], 'scaling': {'min_instance_count': 1920, 'scaling_mode': 1, 'manual_instance_count': 2234}, 'invoker_iam_disabled': True, 'default_uri_disabled': True, 'urls': ['urls_value1', 'urls_value2'], 'custom_audiences': ['custom_audiences_value1', 'custom_audiences_value2'], 'observed_generation': 2021, 'terminal_condition': {'type_': 'type__value', 'state': 1, 'message': 'message_value', 'last_transition_time': {}, 'severity': 1, 'reason': 1, 'revision_reason': 1, 'execution_reason': 1}, 'conditions': {}, 'latest_ready_revision': 'latest_ready_revision_value', 'latest_created_revision': 'latest_created_revision_value', 'traffic_statuses': [{'type_': 1, 'revision': 'revision_value', 'percent': 753, 'tag': 'tag_value', 'uri': 'uri_value'}], 'uri': 'uri_value', 'satisfies_pzs': True, 'reconciling': True, 'etag': 'etag_value'}
+    # The version of a generated dependency at test runtime may differ from the version used during generation.
+    # Delete any fields which are not present in the current runtime dependency
+    # See https://github.com/googleapis/gapic-generator-python/issues/1748
+
+    # Determine if the message type is proto-plus or protobuf
+    test_field = gcr_service.CreateServiceRequest.meta.fields["service"]
+
+    def get_message_fields(field):
+        # Given a field which is a message (composite type), return a list with
+        # all the fields of the message.
+        # If the field is not a composite type, return an empty list.
+        message_fields = []
+
+        if hasattr(field, "message") and field.message:
+            is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR")
+
+            if is_field_type_proto_plus_type:
+                message_fields = field.message.meta.fields.values()
+            # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types
+            else: # pragma: NO COVER
+                message_fields = field.message.DESCRIPTOR.fields
+        return message_fields
+
+    runtime_nested_fields = [
+        (field.name, nested_field.name)
+        for field in get_message_fields(test_field)
+        for nested_field in get_message_fields(field)
+    ]
+
+    subfields_not_in_runtime = []
+
+    # For each item in the sample request, create a list of sub fields which are not present at runtime
+    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
+    for field, value in request_init["service"].items(): # pragma: NO COVER
+        result = None
+        is_repeated = False
+        # For repeated fields
+        if isinstance(value, list) and len(value):
+            is_repeated = True
+            result = value[0]
+        # For fields where the type is another message
+        if isinstance(value, dict):
+            result = value
+
+        if result and hasattr(result, "keys"):
+            for subfield in result.keys():
+                if (field, subfield) not in runtime_nested_fields:
+                    subfields_not_in_runtime.append(
+                        {"field": field, "subfield": subfield, "is_repeated": is_repeated}
+                    )
+
+    # Remove fields from the sample request which are not present in the runtime version of the dependency
+    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
+    for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER
+        field = subfield_to_delete.get("field")
+        field_repeated = subfield_to_delete.get("is_repeated")
+        subfield = subfield_to_delete.get("subfield")
+        if subfield:
+            if field_repeated:
+                for i in range(0, len(request_init["service"][field])):
+                    del request_init["service"][field][i][subfield]
+            else:
+                del request_init["service"][field][subfield]
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.create_service(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_create_service_rest_interceptors(null_interceptor):
+    transport = transports.ServicesRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
+        )
+    client = ServicesClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.ServicesRestInterceptor, "post_create_service") as post, \
+        mock.patch.object(transports.ServicesRestInterceptor, "pre_create_service") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = gcr_service.CreateServiceRequest.pb(gcr_service.CreateServiceRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = gcr_service.CreateServiceRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.create_service(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_get_service_rest_bad_request(request_type=service.GetServiceRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.get_service(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  service.GetServiceRequest,
+  dict,
+])
+def test_get_service_rest_call_success(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = service.Service(
+              name='name_value',
+              description='description_value',
+              uid='uid_value',
+              generation=1068,
+              creator='creator_value',
+              last_modifier='last_modifier_value',
+              client='client_value',
+              client_version='client_version_value',
+              ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
+              launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
+              invoker_iam_disabled=True,
+              default_uri_disabled=True,
+              urls=['urls_value'],
+              custom_audiences=['custom_audiences_value'],
+              observed_generation=2021,
+              latest_ready_revision='latest_ready_revision_value',
+              latest_created_revision='latest_created_revision_value',
+              uri='uri_value',
+              satisfies_pzs=True,
+              reconciling=True,
+              etag='etag_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = service.Service.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.get_service(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, service.Service)
+    assert response.name == 'name_value'
+    assert response.description == 'description_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.creator == 'creator_value'
+    assert response.last_modifier == 'last_modifier_value'
+    assert response.client == 'client_value'
+    assert response.client_version == 'client_version_value'
+    assert response.ingress == vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL
+    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
+    assert response.invoker_iam_disabled is True
+    assert response.default_uri_disabled is True
+    assert response.urls == ['urls_value']
+    assert response.custom_audiences == ['custom_audiences_value']
+    assert response.observed_generation == 2021
+    assert response.latest_ready_revision == 'latest_ready_revision_value'
+    assert response.latest_created_revision == 'latest_created_revision_value'
+    assert response.uri == 'uri_value'
+    assert response.satisfies_pzs is True
+    assert response.reconciling is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_get_service_rest_interceptors(null_interceptor):
+    transport = transports.ServicesRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
+        )
+    client = ServicesClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.ServicesRestInterceptor, "post_get_service") as post, \
+        mock.patch.object(transports.ServicesRestInterceptor, "pre_get_service") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = service.GetServiceRequest.pb(service.GetServiceRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = service.Service.to_json(service.Service())
+        req.return_value.content = return_value
+
+        request = service.GetServiceRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = service.Service()
+
+        client.get_service(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_list_services_rest_bad_request(request_type=service.ListServicesRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.list_services(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  service.ListServicesRequest,
+  dict,
+])
+def test_list_services_rest_call_success(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = service.ListServicesResponse(
+              next_page_token='next_page_token_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = service.ListServicesResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.list_services(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListServicesPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_list_services_rest_interceptors(null_interceptor):
+    transport = transports.ServicesRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
+        )
+    client = ServicesClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.ServicesRestInterceptor, "post_list_services") as post, \
+        mock.patch.object(transports.ServicesRestInterceptor, "pre_list_services") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = service.ListServicesRequest.pb(service.ListServicesRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = service.ListServicesResponse.to_json(service.ListServicesResponse())
+        req.return_value.content = return_value
+
+        request = service.ListServicesRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = service.ListServicesResponse()
+
+        client.list_services(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_update_service_rest_bad_request(request_type=gcr_service.UpdateServiceRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'service': {'name': 'projects/sample1/locations/sample2/services/sample3'}}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.update_service(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  gcr_service.UpdateServiceRequest,
+  dict,
+])
+def test_update_service_rest_call_success(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'service': {'name': 'projects/sample1/locations/sample2/services/sample3'}}
+    request_init["service"] = {'name': 'projects/sample1/locations/sample2/services/sample3', 'description': 'description_value', 'uid': 'uid_value', 'generation': 1068, 'labels': {}, 'annotations': {}, 'create_time': {'seconds': 751, 'nanos': 543}, 'update_time': {}, 'delete_time': {}, 'expire_time': {}, 'creator': 'creator_value', 'last_modifier': 'last_modifier_value', 'client': 'client_value', 'client_version': 'client_version_value', 'ingress': 1, 'launch_stage': 6, 'binary_authorization': {'use_default': True, 'policy': 'policy_value', 'breakglass_justification': 'breakglass_justification_value'}, 'template': {'revision': 'revision_value', 'labels': {}, 'annotations': {}, 'scaling': {'min_instance_count': 1920, 'max_instance_count': 1922}, 'vpc_access': {'connector': 'connector_value', 'egress': 1, 'network_interfaces': [{'network': 'network_value', 'subnetwork': 'subnetwork_value', 'tags': ['tags_value1', 'tags_value2']}]}, 'timeout': {'seconds': 751, 'nanos': 543}, 'service_account': 'service_account_value', 'containers': [{'name': 'name_value', 'image': 'image_value', 'command': ['command_value1', 'command_value2'], 'args': ['args_value1', 'args_value2'], 'env': [{'name': 'name_value', 'value': 'value_value', 'value_source': {'secret_key_ref': {'secret': 'secret_value', 'version': 'version_value'}}}], 'resources': {'limits': {}, 'cpu_idle': True, 'startup_cpu_boost': True}, 'ports': [{'name': 'name_value', 'container_port': 1511}], 'volume_mounts': [{'name': 'name_value', 'mount_path': 'mount_path_value'}], 'working_dir': 'working_dir_value', 'liveness_probe': {'initial_delay_seconds': 2214, 'timeout_seconds': 1621, 'period_seconds': 1489, 'failure_threshold': 1812, 'http_get': {'path': 'path_value', 'http_headers': [{'name': 'name_value', 'value': 'value_value'}], 'port': 453}, 'tcp_socket': {'port': 453}, 'grpc': {'port': 453, 'service': 'service_value'}}, 'startup_probe': {}, 'depends_on': ['depends_on_value1', 'depends_on_value2']}], 'volumes': [{'name': 'name_value', 'secret': {'secret': 'secret_value', 'items': [{'path': 'path_value', 'version': 'version_value', 'mode': 421}], 'default_mode': 1257}, 'cloud_sql_instance': {'instances': ['instances_value1', 'instances_value2']}, 'empty_dir': {'medium': 1, 'size_limit': 'size_limit_value'}, 'nfs': {'server': 'server_value', 'path': 'path_value', 'read_only': True}, 'gcs': {'bucket': 'bucket_value', 'read_only': True, 'mount_options': ['mount_options_value1', 'mount_options_value2']}}], 'execution_environment': 1, 'encryption_key': 'encryption_key_value', 'max_instance_request_concurrency': 3436, 'service_mesh': {'mesh': 'mesh_value'}, 'encryption_key_revocation_action': 1, 'encryption_key_shutdown_duration': {}, 'session_affinity': True, 'health_check_disabled': True, 'node_selector': {'accelerator': 'accelerator_value'}}, 'traffic': [{'type_': 1, 'revision': 'revision_value', 'percent': 753, 'tag': 'tag_value'}], 'scaling': {'min_instance_count': 1920, 'scaling_mode': 1, 'manual_instance_count': 2234}, 'invoker_iam_disabled': True, 'default_uri_disabled': True, 'urls': ['urls_value1', 'urls_value2'], 'custom_audiences': ['custom_audiences_value1', 'custom_audiences_value2'], 'observed_generation': 2021, 'terminal_condition': {'type_': 'type__value', 'state': 1, 'message': 'message_value', 'last_transition_time': {}, 'severity': 1, 'reason': 1, 'revision_reason': 1, 'execution_reason': 1}, 'conditions': {}, 'latest_ready_revision': 'latest_ready_revision_value', 'latest_created_revision': 'latest_created_revision_value', 'traffic_statuses': [{'type_': 1, 'revision': 'revision_value', 'percent': 753, 'tag': 'tag_value', 'uri': 'uri_value'}], 'uri': 'uri_value', 'satisfies_pzs': True, 'reconciling': True, 'etag': 'etag_value'}
+    # The version of a generated dependency at test runtime may differ from the version used during generation.
+    # Delete any fields which are not present in the current runtime dependency
+    # See https://github.com/googleapis/gapic-generator-python/issues/1748
+
+    # Determine if the message type is proto-plus or protobuf
+    test_field = gcr_service.UpdateServiceRequest.meta.fields["service"]
+
+    def get_message_fields(field):
+        # Given a field which is a message (composite type), return a list with
+        # all the fields of the message.
+        # If the field is not a composite type, return an empty list.
+        message_fields = []
+
+        if hasattr(field, "message") and field.message:
+            is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR")
+
+            if is_field_type_proto_plus_type:
+                message_fields = field.message.meta.fields.values()
+            # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types
+            else: # pragma: NO COVER
+                message_fields = field.message.DESCRIPTOR.fields
+        return message_fields
+
+    runtime_nested_fields = [
+        (field.name, nested_field.name)
+        for field in get_message_fields(test_field)
+        for nested_field in get_message_fields(field)
+    ]
+
+    subfields_not_in_runtime = []
+
+    # For each item in the sample request, create a list of sub fields which are not present at runtime
+    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
+    for field, value in request_init["service"].items(): # pragma: NO COVER
+        result = None
+        is_repeated = False
+        # For repeated fields
+        if isinstance(value, list) and len(value):
+            is_repeated = True
+            result = value[0]
+        # For fields where the type is another message
+        if isinstance(value, dict):
+            result = value
+
+        if result and hasattr(result, "keys"):
+            for subfield in result.keys():
+                if (field, subfield) not in runtime_nested_fields:
+                    subfields_not_in_runtime.append(
+                        {"field": field, "subfield": subfield, "is_repeated": is_repeated}
+                    )
+
+    # Remove fields from the sample request which are not present in the runtime version of the dependency
+    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
+    for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER
+        field = subfield_to_delete.get("field")
+        field_repeated = subfield_to_delete.get("is_repeated")
+        subfield = subfield_to_delete.get("subfield")
+        if subfield:
+            if field_repeated:
+                for i in range(0, len(request_init["service"][field])):
+                    del request_init["service"][field][i][subfield]
+            else:
+                del request_init["service"][field][subfield]
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.update_service(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_update_service_rest_interceptors(null_interceptor):
+    transport = transports.ServicesRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
+        )
+    client = ServicesClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.ServicesRestInterceptor, "post_update_service") as post, \
+        mock.patch.object(transports.ServicesRestInterceptor, "pre_update_service") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = gcr_service.UpdateServiceRequest.pb(gcr_service.UpdateServiceRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = gcr_service.UpdateServiceRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.update_service(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_service_rest_bad_request(request_type=service.DeleteServiceRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.delete_service(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  service.DeleteServiceRequest,
+  dict,
+])
+def test_delete_service_rest_call_success(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation(name='operations/spam')
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.delete_service(request)
+
+    # Establish that the response is the type that we expect.
+    json_return_value = json_format.MessageToJson(return_value)
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_delete_service_rest_interceptors(null_interceptor):
+    transport = transports.ServicesRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
+        )
+    client = ServicesClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
+        mock.patch.object(transports.ServicesRestInterceptor, "post_delete_service") as post, \
+        mock.patch.object(transports.ServicesRestInterceptor, "pre_delete_service") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = service.DeleteServiceRequest.pb(service.DeleteServiceRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(operations_pb2.Operation())
+        req.return_value.content = return_value
+
+        request = service.DeleteServiceRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = operations_pb2.Operation()
+
+        client.delete_service(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_get_iam_policy_rest_bad_request(request_type=iam_policy_pb2.GetIamPolicyRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.get_iam_policy(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.GetIamPolicyRequest,
+  dict,
+])
+def test_get_iam_policy_rest_call_success(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = policy_pb2.Policy(
+              version=774,
+              etag=b'etag_blob',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.get_iam_policy(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_get_iam_policy_rest_interceptors(null_interceptor):
+    transport = transports.ServicesRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
+        )
+    client = ServicesClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.ServicesRestInterceptor, "post_get_iam_policy") as post, \
+        mock.patch.object(transports.ServicesRestInterceptor, "pre_get_iam_policy") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = iam_policy_pb2.GetIamPolicyRequest()
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(policy_pb2.Policy())
+        req.return_value.content = return_value
+
+        request = iam_policy_pb2.GetIamPolicyRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = policy_pb2.Policy()
+
+        client.get_iam_policy(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_set_iam_policy_rest_bad_request(request_type=iam_policy_pb2.SetIamPolicyRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.set_iam_policy(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.SetIamPolicyRequest,
+  dict,
+])
+def test_set_iam_policy_rest_call_success(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = policy_pb2.Policy(
+              version=774,
+              etag=b'etag_blob',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.set_iam_policy(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, policy_pb2.Policy)
+    assert response.version == 774
+    assert response.etag == b'etag_blob'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_set_iam_policy_rest_interceptors(null_interceptor):
+    transport = transports.ServicesRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
+        )
+    client = ServicesClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.ServicesRestInterceptor, "post_set_iam_policy") as post, \
+        mock.patch.object(transports.ServicesRestInterceptor, "pre_set_iam_policy") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = iam_policy_pb2.SetIamPolicyRequest()
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(policy_pb2.Policy())
+        req.return_value.content = return_value
+
+        request = iam_policy_pb2.SetIamPolicyRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = policy_pb2.Policy()
+
+        client.set_iam_policy(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_test_iam_permissions_rest_bad_request(request_type=iam_policy_pb2.TestIamPermissionsRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.test_iam_permissions(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  iam_policy_pb2.TestIamPermissionsRequest,
+  dict,
+])
+def test_test_iam_permissions_rest_call_success(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = iam_policy_pb2.TestIamPermissionsResponse(
+              permissions=['permissions_value'],
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.test_iam_permissions(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
+    assert response.permissions == ['permissions_value']
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_test_iam_permissions_rest_interceptors(null_interceptor):
+    transport = transports.ServicesRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
+        )
+    client = ServicesClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.ServicesRestInterceptor, "post_test_iam_permissions") as post, \
+        mock.patch.object(transports.ServicesRestInterceptor, "pre_test_iam_permissions") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = iam_policy_pb2.TestIamPermissionsRequest()
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = json_format.MessageToJson(iam_policy_pb2.TestIamPermissionsResponse())
+        req.return_value.content = return_value
+
+        request = iam_policy_pb2.TestIamPermissionsRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = iam_policy_pb2.TestIamPermissionsResponse()
+
+        client.test_iam_permissions(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.delete_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.DeleteOperationRequest,
+    dict,
+])
+def test_delete_operation_rest(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = None
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = '{}'
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.delete_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+
+def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.get_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.GetOperationRequest,
+    dict,
+])
+def test_get_operation_rest(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.get_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+
+def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.list_operations(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.ListOperationsRequest,
+    dict,
+])
+def test_list_operations_rest(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.ListOperationsResponse()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.list_operations(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+
+def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.wait_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.WaitOperationRequest,
+    dict,
+])
+def test_wait_operation_rest(request_type):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.wait_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_initialize_client_w_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_create_service_empty_call_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        client.create_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_service.CreateServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_service_empty_call_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        client.get_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.GetServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_services_empty_call_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        client.list_services(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.ListServicesRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_update_service_empty_call_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        client.update_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = gcr_service.UpdateServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_delete_service_empty_call_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        client.delete_service(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = service.DeleteServiceRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_iam_policy_empty_call_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_iam_policy),
+            '__call__') as call:
+        client.get_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.GetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_set_iam_policy_empty_call_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.set_iam_policy),
+            '__call__') as call:
+        client.set_iam_policy(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.SetIamPolicyRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_test_iam_permissions_empty_call_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.test_iam_permissions),
+            '__call__') as call:
+        client.test_iam_permissions(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
+
+        assert args[0] == request_msg
+
+
+def test_create_service_routing_parameters_request_1_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.create_service),
+            '__call__') as call:
+        client.create_service(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_service.CreateServiceRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_get_service_routing_parameters_request_1_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_service),
+            '__call__') as call:
+        client.get_service(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.GetServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_list_services_routing_parameters_request_1_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_services),
+            '__call__') as call:
+        client.list_services(request={"parent": "projects/sample1/locations/sample2"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.ListServicesRequest(**{"parent": "projects/sample1/locations/sample2"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_update_service_routing_parameters_request_1_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_service),
+            '__call__') as call:
+        client.update_service(request={"service": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = gcr_service.UpdateServiceRequest(**{"service": {"name": "projects/sample1/locations/sample2/sample3"}})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+def test_delete_service_routing_parameters_request_1_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_service),
+            '__call__') as call:
+        client.delete_service(request={"name": "projects/sample1/locations/sample2/sample3"})
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, kw = call.mock_calls[0]
+        request_msg = service.DeleteServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
+
+        assert args[0] == request_msg
+
+        expected_headers = {'location': 'sample2'}
+        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
+
+
+def test_services_rest_lro_client():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    transport = client.transport
+
+    # Ensure that we have an api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+operations_v1.AbstractOperationsClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.ServicesGrpcTransport,
+    )
+
+def test_services_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.ServicesTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_services_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.run_v2.services.services.transports.ServicesTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.ServicesTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'create_service',
+        'get_service',
+        'list_services',
+        'update_service',
+        'delete_service',
+        'get_iam_policy',
+        'set_iam_policy',
+        'test_iam_permissions',
+        'get_operation',
+        'wait_operation',
+        'delete_operation',
+        'list_operations',
+    )
+    for method in methods:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, method)(request=object())
+
+    with pytest.raises(NotImplementedError):
+        transport.close()
+
+    # Additionally, the LRO client (a property) should
+    # also raise NotImplementedError
+    with pytest.raises(NotImplementedError):
+        transport.operations_client
+
+    # Catch all for all remaining methods and properties
+    remainder = [
+        'kind',
+    ]
+    for r in remainder:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, r)()
+
+
+def test_services_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.services.transports.ServicesTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ServicesTransport(
+            credentials_file="credentials.json",
+            quota_project_id="octopus",
+        )
+        load_creds.assert_called_once_with("credentials.json",
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id="octopus",
+        )
+
+
+def test_services_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.services.transports.ServicesTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ServicesTransport()
+        adc.assert_called_once()
+
+
+def test_services_auth_adc():
+    # 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)
+        ServicesClient()
+        adc.assert_called_once_with(
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id=None,
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.ServicesGrpcTransport,
+        transports.ServicesGrpcAsyncIOTransport,
+    ],
+)
+def test_services_transport_auth_adc(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", scopes=["1", "2"])
+        adc.assert_called_once_with(
+            scopes=["1", "2"],
+            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
+            quota_project_id="octopus",
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.ServicesGrpcTransport,
+        transports.ServicesGrpcAsyncIOTransport,
+        transports.ServicesRestTransport,
+    ],
+)
+def test_services_transport_auth_gdch_credentials(transport_class):
+    host = 'https://language.com'
+    api_audience_tests = [None, 'https://language2.com']
+    api_audience_expect = [host, 'https://language2.com']
+    for t, e in zip(api_audience_tests, api_audience_expect):
+        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
+            gdch_mock = mock.MagicMock()
+            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
+            adc.return_value = (gdch_mock, None)
+            transport_class(host=host, api_audience=t)
+            gdch_mock.with_gdch_audience.assert_called_once_with(
+                e
+            )
+
+
+@pytest.mark.parametrize(
+    "transport_class,grpc_helpers",
+    [
+        (transports.ServicesGrpcTransport, grpc_helpers),
+        (transports.ServicesGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_services_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=creds,
+            credentials_file=None,
+            quota_project_id="octopus",
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=["1", "2"],
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.ServicesGrpcTransport, transports.ServicesGrpcAsyncIOTransport])
+def test_services_grpc_transport_client_cert_source_for_mtls(
+    transport_class
+):
+    cred = ga_credentials.AnonymousCredentials()
+
+    # Check ssl_channel_credentials is used if provided.
+    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
+        mock_ssl_channel_creds = mock.Mock()
+        transport_class(
+            host="squid.clam.whelk",
+            credentials=cred,
+            ssl_channel_credentials=mock_ssl_channel_creds
+        )
+        mock_create_channel.assert_called_once_with(
+            "squid.clam.whelk:443",
+            credentials=cred,
+            credentials_file=None,
+            scopes=None,
+            ssl_credentials=mock_ssl_channel_creds,
+            quota_project_id=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
+    # is used.
+    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
+        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
+            transport_class(
+                credentials=cred,
+                client_cert_source_for_mtls=client_cert_source_callback
+            )
+            expected_cert, expected_key = client_cert_source_callback()
+            mock_ssl_cred.assert_called_once_with(
+                certificate_chain=expected_cert,
+                private_key=expected_key
+            )
+
+def test_services_http_transport_client_cert_source_for_mtls():
+    cred = ga_credentials.AnonymousCredentials()
+    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
+        transports.ServicesRestTransport (
+            credentials=cred,
+            client_cert_source_for_mtls=client_cert_source_callback
+        )
+        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
+
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_services_host_no_port(transport_name):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_services_host_with_port(transport_name):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_services_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = ServicesClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = ServicesClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.create_service._session
+    session2 = client2.transport.create_service._session
+    assert session1 != session2
+    session1 = client1.transport.get_service._session
+    session2 = client2.transport.get_service._session
+    assert session1 != session2
+    session1 = client1.transport.list_services._session
+    session2 = client2.transport.list_services._session
+    assert session1 != session2
+    session1 = client1.transport.update_service._session
+    session2 = client2.transport.update_service._session
+    assert session1 != session2
+    session1 = client1.transport.delete_service._session
+    session2 = client2.transport.delete_service._session
+    assert session1 != session2
+    session1 = client1.transport.get_iam_policy._session
+    session2 = client2.transport.get_iam_policy._session
+    assert session1 != session2
+    session1 = client1.transport.set_iam_policy._session
+    session2 = client2.transport.set_iam_policy._session
+    assert session1 != session2
+    session1 = client1.transport.test_iam_permissions._session
+    session2 = client2.transport.test_iam_permissions._session
+    assert session1 != session2
+def test_services_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ServicesGrpcTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+def test_services_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ServicesGrpcAsyncIOTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.ServicesGrpcTransport, transports.ServicesGrpcAsyncIOTransport])
+def test_services_transport_channel_mtls_with_client_cert_source(
+    transport_class
+):
+    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_ssl_cred = mock.Mock()
+            grpc_ssl_channel_cred.return_value = mock_ssl_cred
+
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+
+            cred = ga_credentials.AnonymousCredentials()
+            with pytest.warns(DeprecationWarning):
+                with mock.patch.object(google.auth, 'default') as adc:
+                    adc.return_value = (cred, None)
+                    transport = transport_class(
+                        host="squid.clam.whelk",
+                        api_mtls_endpoint="mtls.squid.clam.whelk",
+                        client_cert_source=client_cert_source_callback,
+                    )
+                    adc.assert_called_once()
+
+            grpc_ssl_channel_cred.assert_called_once_with(
+                certificate_chain=b"cert bytes", private_key=b"key bytes"
+            )
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+            assert transport._ssl_channel_credentials == mock_ssl_cred
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.ServicesGrpcTransport, transports.ServicesGrpcAsyncIOTransport])
+def test_services_transport_channel_mtls_with_adc(
+    transport_class
+):
+    mock_ssl_cred = mock.Mock()
+    with mock.patch.multiple(
+        "google.auth.transport.grpc.SslCredentials",
+        __init__=mock.Mock(return_value=None),
+        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
+    ):
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+            mock_cred = mock.Mock()
+
+            with pytest.warns(DeprecationWarning):
+                transport = transport_class(
+                    host="squid.clam.whelk",
+                    credentials=mock_cred,
+                    api_mtls_endpoint="mtls.squid.clam.whelk",
+                    client_cert_source=None,
+                )
+
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=mock_cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+
+
+def test_services_grpc_lro_client():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+    transport = client.transport
+
+    # Ensure that we have a api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+        operations_v1.OperationsClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+
+def test_services_grpc_lro_async_client():
+    client = ServicesAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc_asyncio',
+    )
+    transport = client.transport
+
+    # Ensure that we have a api-core operations client.
+    assert isinstance(
+        transport.operations_client,
+        operations_v1.OperationsAsyncClient,
+    )
+
+    # Ensure that subsequent calls to the property send the exact same object.
+    assert transport.operations_client is transport.operations_client
+
+
+def test_connector_path():
+    project = "squid"
+    location = "clam"
+    connector = "whelk"
+    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+    actual = ServicesClient.connector_path(project, location, connector)
+    assert expected == actual
+
+
+def test_parse_connector_path():
+    expected = {
+        "project": "octopus",
+        "location": "oyster",
+        "connector": "nudibranch",
+    }
+    path = ServicesClient.connector_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_connector_path(path)
+    assert expected == actual
+
+def test_crypto_key_path():
+    project = "cuttlefish"
+    location = "mussel"
+    key_ring = "winkle"
+    crypto_key = "nautilus"
+    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+    actual = ServicesClient.crypto_key_path(project, location, key_ring, crypto_key)
+    assert expected == actual
+
+
+def test_parse_crypto_key_path():
+    expected = {
+        "project": "scallop",
+        "location": "abalone",
+        "key_ring": "squid",
+        "crypto_key": "clam",
+    }
+    path = ServicesClient.crypto_key_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_crypto_key_path(path)
+    assert expected == actual
+
+def test_mesh_path():
+    project = "whelk"
+    location = "octopus"
+    mesh = "oyster"
+    expected = "projects/{project}/locations/{location}/meshes/{mesh}".format(project=project, location=location, mesh=mesh, )
+    actual = ServicesClient.mesh_path(project, location, mesh)
+    assert expected == actual
+
+
+def test_parse_mesh_path():
+    expected = {
+        "project": "nudibranch",
+        "location": "cuttlefish",
+        "mesh": "mussel",
+    }
+    path = ServicesClient.mesh_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_mesh_path(path)
+    assert expected == actual
+
+def test_policy_path():
+    project = "winkle"
+    expected = "projects/{project}/policy".format(project=project, )
+    actual = ServicesClient.policy_path(project)
+    assert expected == actual
+
+
+def test_parse_policy_path():
+    expected = {
+        "project": "nautilus",
+    }
+    path = ServicesClient.policy_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_policy_path(path)
+    assert expected == actual
+
+def test_revision_path():
+    project = "scallop"
+    location = "abalone"
+    service = "squid"
+    revision = "clam"
+    expected = "projects/{project}/locations/{location}/services/{service}/revisions/{revision}".format(project=project, location=location, service=service, revision=revision, )
+    actual = ServicesClient.revision_path(project, location, service, revision)
+    assert expected == actual
+
+
+def test_parse_revision_path():
+    expected = {
+        "project": "whelk",
+        "location": "octopus",
+        "service": "oyster",
+        "revision": "nudibranch",
+    }
+    path = ServicesClient.revision_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_revision_path(path)
+    assert expected == actual
+
+def test_secret_path():
+    project = "cuttlefish"
+    secret = "mussel"
+    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+    actual = ServicesClient.secret_path(project, secret)
+    assert expected == actual
+
+
+def test_parse_secret_path():
+    expected = {
+        "project": "winkle",
+        "secret": "nautilus",
+    }
+    path = ServicesClient.secret_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_secret_path(path)
+    assert expected == actual
+
+def test_secret_version_path():
+    project = "scallop"
+    secret = "abalone"
+    version = "squid"
+    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+    actual = ServicesClient.secret_version_path(project, secret, version)
+    assert expected == actual
+
+
+def test_parse_secret_version_path():
+    expected = {
+        "project": "clam",
+        "secret": "whelk",
+        "version": "octopus",
+    }
+    path = ServicesClient.secret_version_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_secret_version_path(path)
+    assert expected == actual
+
+def test_service_path():
+    project = "oyster"
+    location = "nudibranch"
+    service = "cuttlefish"
+    expected = "projects/{project}/locations/{location}/services/{service}".format(project=project, location=location, service=service, )
+    actual = ServicesClient.service_path(project, location, service)
+    assert expected == actual
+
+
+def test_parse_service_path():
+    expected = {
+        "project": "mussel",
+        "location": "winkle",
+        "service": "nautilus",
+    }
+    path = ServicesClient.service_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_service_path(path)
+    assert expected == actual
+
+def test_common_billing_account_path():
+    billing_account = "scallop"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = ServicesClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "abalone",
+    }
+    path = ServicesClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "squid"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = ServicesClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "clam",
+    }
+    path = ServicesClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "whelk"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = ServicesClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "octopus",
+    }
+    path = ServicesClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "oyster"
+    expected = "projects/{project}".format(project=project, )
+    actual = ServicesClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "nudibranch",
+    }
+    path = ServicesClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_common_project_path(path)
+    assert expected == actual
+
+def test_common_location_path():
+    project = "cuttlefish"
+    location = "mussel"
+    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
+    actual = ServicesClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "winkle",
+        "location": "nautilus",
+    }
+    path = ServicesClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ServicesClient.parse_common_location_path(path)
+    assert expected == actual
+
+
+def test_client_with_default_client_info():
+    client_info = gapic_v1.client_info.ClientInfo()
+
+    with mock.patch.object(transports.ServicesTransport, '_prep_wrapped_messages') as prep:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.ServicesTransport, '_prep_wrapped_messages') as prep:
+        transport_class = ServicesClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+
+def test_delete_operation(transport: str = "grpc"):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+        response = client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+@pytest.mark.asyncio
+async def test_delete_operation_async(transport: str = "grpc_asyncio"):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+def test_delete_operation_field_headers():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value =  None
+
+        client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_delete_operation_field_headers_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_delete_operation_from_dict():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+
+        response = client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_delete_operation_from_dict_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_wait_operation(transport: str = "grpc"):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_wait_operation(transport: str = "grpc_asyncio"):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_wait_operation_field_headers():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_wait_operation_field_headers_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_wait_operation_from_dict():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_wait_operation_from_dict_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_get_operation(transport: str = "grpc"):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_get_operation_async(transport: str = "grpc_asyncio"):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_get_operation_field_headers():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_get_operation_field_headers_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_get_operation_from_dict():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_get_operation_from_dict_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_list_operations(transport: str = "grpc"):
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+        response = client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+@pytest.mark.asyncio
+async def test_list_operations_async(transport: str = "grpc_asyncio"):
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+def test_list_operations_field_headers():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_list_operations_field_headers_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_list_operations_from_dict():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        response = client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_list_operations_from_dict_async():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_transport_close_grpc():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+@pytest.mark.asyncio
+async def test_transport_close_grpc_asyncio():
+    client = ServicesAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        async with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_transport_close_rest():
+    client = ServicesClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_client_ctx():
+    transports = [
+        'rest',
+        'grpc',
+    ]
+    for transport in transports:
+        client = ServicesClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        # Test client calls underlying transport.
+        with mock.patch.object(type(client.transport), "close") as close:
+            close.assert_not_called()
+            with client:
+                pass
+            close.assert_called()
+
+@pytest.mark.parametrize("client_class,transport_class", [
+    (ServicesClient, transports.ServicesGrpcTransport),
+    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport),
+])
+def test_api_key_credentials(client_class, transport_class):
+    with mock.patch.object(
+        google.auth._default, "get_api_key_credentials", create=True
+    ) as get_api_key_credentials:
+        mock_cred = mock.Mock()
+        get_api_key_credentials.return_value = mock_cred
+        options = client_options.ClientOptions()
+        options.api_key = "api_key"
+        with mock.patch.object(transport_class, "__init__") as patched:
+            patched.return_value = None
+            client = client_class(client_options=options)
+            patched.assert_called_once_with(
+                credentials=mock_cred,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_tasks.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_tasks.py
new file mode 100644
index 000000000000..4b8dadd095d4
--- /dev/null
+++ b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_tasks.py
@@ -0,0 +1,3961 @@
+# -*- coding: utf-8 -*-
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.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 os
+# try/except added for compatibility with python < 3.8
+try:
+    from unittest import mock
+    from unittest.mock import AsyncMock  # pragma: NO COVER
+except ImportError:  # pragma: NO COVER
+    import mock
+
+import grpc
+from grpc.experimental import aio
+from collections.abc import Iterable, AsyncIterable
+from google.protobuf import json_format
+import json
+import math
+import pytest
+from google.api_core import api_core_version
+from proto.marshal.rules.dates import DurationRule, TimestampRule
+from proto.marshal.rules import wrappers
+from requests import Response
+from requests import Request, PreparedRequest
+from requests.sessions import Session
+from google.protobuf import json_format
+
+try:
+    from google.auth.aio import credentials as ga_credentials_async
+    HAS_GOOGLE_AUTH_AIO = True
+except ImportError: # pragma: NO COVER
+    HAS_GOOGLE_AUTH_AIO = False
+
+from google.api_core import client_options
+from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers
+from google.api_core import grpc_helpers_async
+from google.api_core import path_template
+from google.api_core import retry as retries
+from google.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.location import locations_pb2
+from google.cloud.run_v2.services.tasks import TasksAsyncClient
+from google.cloud.run_v2.services.tasks import TasksClient
+from google.cloud.run_v2.services.tasks import pagers
+from google.cloud.run_v2.services.tasks import transports
+from google.cloud.run_v2.types import condition
+from google.cloud.run_v2.types import k8s_min
+from google.cloud.run_v2.types import task
+from google.cloud.run_v2.types import vendor_settings
+from google.longrunning import operations_pb2 # type: ignore
+from google.oauth2 import service_account
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+import google.auth
+
+
+async def mock_async_gen(data, chunk_size=1):
+    for i in range(0, len(data)):  # pragma: NO COVER
+        chunk = data[i : i + chunk_size]
+        yield chunk.encode("utf-8")
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
+# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
+def async_anonymous_credentials():
+    if HAS_GOOGLE_AUTH_AIO:
+        return ga_credentials_async.AnonymousCredentials()
+    return ga_credentials.AnonymousCredentials()
+
+# If default endpoint is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint(client):
+    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
+
+# If default endpoint template is localhost, then default mtls endpoint will be the same.
+# This method modifies the default endpoint template so the client can produce a different
+# mtls endpoint for endpoint testing purposes.
+def modify_default_endpoint_template(client):
+    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
+
+
+def test__get_default_mtls_endpoint():
+    api_endpoint = "example.googleapis.com"
+    api_mtls_endpoint = "example.mtls.googleapis.com"
+    sandbox_endpoint = "example.sandbox.googleapis.com"
+    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
+    non_googleapi = "api.example.com"
+
+    assert TasksClient._get_default_mtls_endpoint(None) is None
+    assert TasksClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert TasksClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert TasksClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert TasksClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert TasksClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+def test__read_environment_variables():
+    assert TasksClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        assert TasksClient._read_environment_variables() == (True, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        assert TasksClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            TasksClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        assert TasksClient._read_environment_variables() == (False, "never", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        assert TasksClient._read_environment_variables() == (False, "always", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
+        assert TasksClient._read_environment_variables() == (False, "auto", None)
+
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            TasksClient._read_environment_variables()
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
+        assert TasksClient._read_environment_variables() == (False, "auto", "foo.com")
+
+def test__get_client_cert_source():
+    mock_provided_cert_source = mock.Mock()
+    mock_default_cert_source = mock.Mock()
+
+    assert TasksClient._get_client_cert_source(None, False) is None
+    assert TasksClient._get_client_cert_source(mock_provided_cert_source, False) is None
+    assert TasksClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
+
+    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
+            assert TasksClient._get_client_cert_source(None, True) is mock_default_cert_source
+            assert TasksClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
+
+@mock.patch.object(TasksClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksClient))
+@mock.patch.object(TasksAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksAsyncClient))
+def test__get_api_endpoint():
+    api_override = "foo.com"
+    mock_client_cert_source = mock.Mock()
+    default_universe = TasksClient._DEFAULT_UNIVERSE
+    default_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    assert TasksClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
+    assert TasksClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == TasksClient.DEFAULT_MTLS_ENDPOINT
+    assert TasksClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
+    assert TasksClient._get_api_endpoint(None, None, default_universe, "always") == TasksClient.DEFAULT_MTLS_ENDPOINT
+    assert TasksClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == TasksClient.DEFAULT_MTLS_ENDPOINT
+    assert TasksClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
+    assert TasksClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
+
+    with pytest.raises(MutualTLSChannelError) as excinfo:
+        TasksClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
+    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
+
+
+def test__get_universe_domain():
+    client_universe_domain = "foo.com"
+    universe_domain_env = "bar.com"
+
+    assert TasksClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
+    assert TasksClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
+    assert TasksClient._get_universe_domain(None, None) == TasksClient._DEFAULT_UNIVERSE
+
+    with pytest.raises(ValueError) as excinfo:
+        TasksClient._get_universe_domain("", None)
+    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (TasksClient, "grpc"),
+    (TasksAsyncClient, "grpc_asyncio"),
+    (TasksClient, "rest"),
+])
+def test_tasks_client_from_service_account_info(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
+        factory.return_value = creds
+        info = {"valid": True}
+        client = client_class.from_service_account_info(info, transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.TasksGrpcTransport, "grpc"),
+    (transports.TasksGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.TasksRestTransport, "rest"),
+])
+def test_tasks_client_service_account_always_use_jwt(transport_class, transport_name):
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=True)
+        use_jwt.assert_called_once_with(True)
+
+    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
+        creds = service_account.Credentials(None, None, None)
+        transport = transport_class(credentials=creds, always_use_jwt_access=False)
+        use_jwt.assert_not_called()
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (TasksClient, "grpc"),
+    (TasksAsyncClient, "grpc_asyncio"),
+    (TasksClient, "rest"),
+])
+def test_tasks_client_from_service_account_file(client_class, transport_name):
+    creds = ga_credentials.AnonymousCredentials()
+    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
+        factory.return_value = creds
+        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
+        assert client.transport._credentials == creds
+        assert isinstance(client, client_class)
+
+        assert client.transport._host == (
+            'run.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://run.googleapis.com'
+        )
+
+
+def test_tasks_client_get_transport_class():
+    transport = TasksClient.get_transport_class()
+    available_transports = [
+        transports.TasksGrpcTransport,
+        transports.TasksRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = TasksClient.get_transport_class("grpc")
+    assert transport == transports.TasksGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (TasksClient, transports.TasksGrpcTransport, "grpc"),
+    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio"),
+    (TasksClient, transports.TasksRestTransport, "rest"),
+])
+@mock.patch.object(TasksClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksClient))
+@mock.patch.object(TasksAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksAsyncClient))
+def test_tasks_client_client_options(client_class, transport_class, transport_name):
+    # Check that if channel is provided we won't create a new one.
+    with mock.patch.object(TasksClient, 'get_transport_class') as gtc:
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+        client = client_class(transport=transport)
+        gtc.assert_not_called()
+
+    # Check that if channel is provided via str we will create a new one.
+    with mock.patch.object(TasksClient, 'get_transport_class') as gtc:
+        client = client_class(transport=transport_name)
+        gtc.assert_called()
+
+    # Check the case api_endpoint is provided.
+    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(transport=transport_name, client_options=options)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "never".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
+    # "always".
+    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(transport=transport_name)
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=client.DEFAULT_MTLS_ENDPOINT,
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client = client_class(transport=transport_name)
+    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+    # Check the case quota_project_id is provided
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id="octopus",
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+    # Check the case api_endpoint is provided
+    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
+    with mock.patch.object(transport_class, '__init__') as patched:
+        patched.return_value = None
+        client = client_class(client_options=options, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience="https://language.googleapis.com"
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
+    (TasksClient, transports.TasksGrpcTransport, "grpc", "true"),
+    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (TasksClient, transports.TasksGrpcTransport, "grpc", "false"),
+    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (TasksClient, transports.TasksRestTransport, "rest", "true"),
+    (TasksClient, transports.TasksRestTransport, "rest", "false"),
+])
+@mock.patch.object(TasksClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksClient))
+@mock.patch.object(TasksAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_tasks_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
+    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
+    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
+
+    # Check the case client_cert_source is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
+        with mock.patch.object(transport_class, '__init__') as patched:
+            patched.return_value = None
+            client = client_class(client_options=options, transport=transport_name)
+
+            if use_client_cert_env == "false":
+                expected_client_cert_source = None
+                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+            else:
+                expected_client_cert_source = client_cert_source_callback
+                expected_host = client.DEFAULT_MTLS_ENDPOINT
+
+            patched.assert_called_once_with(
+                credentials=None,
+                credentials_file=None,
+                host=expected_host,
+                scopes=None,
+                client_cert_source_for_mtls=expected_client_cert_source,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )
+
+    # Check the case ADC client cert is provided. Whether client cert is used depends on
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
+                    if use_client_cert_env == "false":
+                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
+                        expected_client_cert_source = None
+                    else:
+                        expected_host = client.DEFAULT_MTLS_ENDPOINT
+                        expected_client_cert_source = client_cert_source_callback
+
+                    patched.return_value = None
+                    client = client_class(transport=transport_name)
+                    patched.assert_called_once_with(
+                        credentials=None,
+                        credentials_file=None,
+                        host=expected_host,
+                        scopes=None,
+                        client_cert_source_for_mtls=expected_client_cert_source,
+                        quota_project_id=None,
+                        client_info=transports.base.DEFAULT_CLIENT_INFO,
+                        always_use_jwt_access=True,
+                        api_audience=None,
+                    )
+
+    # Check the case client_cert_source and ADC client cert are not provided.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
+        with mock.patch.object(transport_class, '__init__') as patched:
+            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
+                patched.return_value = None
+                client = client_class(transport=transport_name)
+                patched.assert_called_once_with(
+                    credentials=None,
+                    credentials_file=None,
+                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                    scopes=None,
+                    client_cert_source_for_mtls=None,
+                    quota_project_id=None,
+                    client_info=transports.base.DEFAULT_CLIENT_INFO,
+                    always_use_jwt_access=True,
+                    api_audience=None,
+                )
+
+
+@pytest.mark.parametrize("client_class", [
+    TasksClient, TasksAsyncClient
+])
+@mock.patch.object(TasksClient, "DEFAULT_ENDPOINT", modify_default_endpoint(TasksClient))
+@mock.patch.object(TasksAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(TasksAsyncClient))
+def test_tasks_client_get_mtls_endpoint_and_cert_source(client_class):
+    mock_client_cert_source = mock.Mock()
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source == mock_client_cert_source
+
+    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
+        mock_client_cert_source = mock.Mock()
+        mock_api_endpoint = "foo"
+        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
+        assert api_endpoint == mock_api_endpoint
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+        assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
+            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+            assert api_endpoint == client_class.DEFAULT_ENDPOINT
+            assert cert_source is None
+
+    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
+            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
+                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
+                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+                assert cert_source == mock_client_cert_source
+
+    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
+    # unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
+        with pytest.raises(MutualTLSChannelError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
+
+    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
+        with pytest.raises(ValueError) as excinfo:
+            client_class.get_mtls_endpoint_and_cert_source()
+
+        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
+
+@pytest.mark.parametrize("client_class", [
+    TasksClient, TasksAsyncClient
+])
+@mock.patch.object(TasksClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksClient))
+@mock.patch.object(TasksAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksAsyncClient))
+def test_tasks_client_client_api_endpoint(client_class):
+    mock_client_cert_source = client_cert_source_callback
+    api_override = "foo.com"
+    default_universe = TasksClient._DEFAULT_UNIVERSE
+    default_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
+    mock_universe = "bar.com"
+    mock_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
+
+    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
+    # use ClientOptions.api_endpoint as the api endpoint regardless.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
+        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
+            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
+            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+            assert client.api_endpoint == api_override
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
+    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
+        client = client_class(credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
+
+    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
+    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
+    # and ClientOptions.universe_domain="bar.com",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
+    options = client_options.ClientOptions()
+    universe_exists = hasattr(options, "universe_domain")
+    if universe_exists:
+        options = client_options.ClientOptions(universe_domain=mock_universe)
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    else:
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
+    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
+
+    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
+    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
+    options = client_options.ClientOptions()
+    if hasattr(options, "universe_domain"):
+        delattr(options, "universe_domain")
+    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
+        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
+        assert client.api_endpoint == default_endpoint
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (TasksClient, transports.TasksGrpcTransport, "grpc"),
+    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio"),
+    (TasksClient, transports.TasksRestTransport, "rest"),
+])
+def test_tasks_client_client_options_scopes(client_class, transport_class, transport_name):
+    # Check the case scopes are provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=["1", "2"],
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (TasksClient, transports.TasksGrpcTransport, "grpc", grpc_helpers),
+    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (TasksClient, transports.TasksRestTransport, "rest", None),
+])
+def test_tasks_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+def test_tasks_client_client_options_from_dict():
+    with mock.patch('google.cloud.run_v2.services.tasks.transports.TasksGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = TasksClient(
+            client_options={'api_endpoint': 'squid.clam.whelk'}
+        )
+        grpc_transport.assert_called_once_with(
+            credentials=None,
+            credentials_file=None,
+            host="squid.clam.whelk",
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
+    (TasksClient, transports.TasksGrpcTransport, "grpc", grpc_helpers),
+    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_tasks_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
+    # Check the case credentials file is provided.
+    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, transport=transport_name)
+        patched.assert_called_once_with(
+            credentials=None,
+            credentials_file="credentials.json",
+            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+            scopes=None,
+            client_cert_source_for_mtls=None,
+            quota_project_id=None,
+            client_info=transports.base.DEFAULT_CLIENT_INFO,
+            always_use_jwt_access=True,
+            api_audience=None,
+        )
+
+    # test that the credentials from file are saved and used as the credentials.
+    with mock.patch.object(
+        google.auth, "load_credentials_from_file", autospec=True
+    ) as load_creds, mock.patch.object(
+        google.auth, "default", autospec=True
+    ) as adc, mock.patch.object(
+        grpc_helpers, "create_channel"
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        file_creds = ga_credentials.AnonymousCredentials()
+        load_creds.return_value = (file_creds, None)
+        adc.return_value = (creds, None)
+        client = client_class(client_options=options, transport=transport_name)
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=file_creds,
+            credentials_file=None,
+            quota_project_id=None,
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=None,
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  task.GetTaskRequest,
+  dict,
+])
+def test_get_task(request_type, transport: str = 'grpc'):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = task.Task(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            job='job_value',
+            execution='execution_value',
+            max_retries=1187,
+            service_account='service_account_value',
+            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+            reconciling=True,
+            observed_generation=2021,
+            index=536,
+            retried=751,
+            encryption_key='encryption_key_value',
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            etag='etag_value',
+        )
+        response = client.get_task(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = task.GetTaskRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, task.Task)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.job == 'job_value'
+    assert response.execution == 'execution_value'
+    assert response.max_retries == 1187
+    assert response.service_account == 'service_account_value'
+    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.index == 536
+    assert response.retried == 751
+    assert response.encryption_key == 'encryption_key_value'
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+def test_get_task_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = task.GetTaskRequest(
+        name='name_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.get_task(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == task.GetTaskRequest(
+            name='name_value',
+        )
+
+def test_get_task_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = TasksClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_task in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_task] = mock_rpc
+        request = {}
+        client.get_task(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_task(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_task_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = TasksAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.get_task in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.get_task] = mock_rpc
+
+        request = {}
+        await client.get_task(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.get_task(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_get_task_async(transport: str = 'grpc_asyncio', request_type=task.GetTaskRequest):
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(task.Task(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            job='job_value',
+            execution='execution_value',
+            max_retries=1187,
+            service_account='service_account_value',
+            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+            reconciling=True,
+            observed_generation=2021,
+            index=536,
+            retried=751,
+            encryption_key='encryption_key_value',
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            etag='etag_value',
+        ))
+        response = await client.get_task(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = task.GetTaskRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, task.Task)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.job == 'job_value'
+    assert response.execution == 'execution_value'
+    assert response.max_retries == 1187
+    assert response.service_account == 'service_account_value'
+    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.index == 536
+    assert response.retried == 751
+    assert response.encryption_key == 'encryption_key_value'
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.asyncio
+async def test_get_task_async_from_dict():
+    await test_get_task_async(request_type=dict)
+
+def test_get_task_field_headers():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = task.GetTaskRequest()
+
+    request.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        call.return_value = task.Task()
+        client.get_task(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'name=name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_get_task_field_headers_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = task.GetTaskRequest()
+
+    request.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.Task())
+        await client.get_task(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'name=name_value',
+    ) in kw['metadata']
+
+
+def test_get_task_flattened():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = task.Task()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.get_task(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+
+def test_get_task_flattened_error():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_task(
+            task.GetTaskRequest(),
+            name='name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_get_task_flattened_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = task.Task()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.Task())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.get_task(
+            name='name_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].name
+        mock_val = 'name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_get_task_flattened_error_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.get_task(
+            task.GetTaskRequest(),
+            name='name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  task.ListTasksRequest,
+  dict,
+])
+def test_list_tasks(request_type, transport: str = 'grpc'):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = task.ListTasksResponse(
+            next_page_token='next_page_token_value',
+        )
+        response = client.list_tasks(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        request = task.ListTasksRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListTasksPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_tasks_non_empty_request_with_auto_populated_field():
+    # This test is a coverage failsafe to make sure that UUID4 fields are
+    # automatically populated, according to AIP-4235, with non-empty requests.
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Populate all string fields in the request which are not UUID4
+    # since we want to check that UUID4 are populated automatically
+    # if they meet the requirements of AIP 4235.
+    request = task.ListTasksRequest(
+        parent='parent_value',
+        page_token='page_token_value',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client.list_tasks(request=request)
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == task.ListTasksRequest(
+            parent='parent_value',
+            page_token='page_token_value',
+        )
+
+def test_list_tasks_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = TasksClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="grpc",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_tasks in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_tasks] = mock_rpc
+        request = {}
+        client.list_tasks(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_tasks(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_tasks_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
+        client = TasksAsyncClient(
+            credentials=async_anonymous_credentials(),
+            transport=transport,
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._client._transport.list_tasks in client._client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.AsyncMock()
+        mock_rpc.return_value = mock.Mock()
+        client._client._transport._wrapped_methods[client._client._transport.list_tasks] = mock_rpc
+
+        request = {}
+        await client.list_tasks(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        await client.list_tasks(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+@pytest.mark.asyncio
+async def test_list_tasks_async(transport: str = 'grpc_asyncio', request_type=task.ListTasksRequest):
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = request_type()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(task.ListTasksResponse(
+            next_page_token='next_page_token_value',
+        ))
+        response = await client.list_tasks(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        request = task.ListTasksRequest()
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListTasksAsyncPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.asyncio
+async def test_list_tasks_async_from_dict():
+    await test_list_tasks_async(request_type=dict)
+
+def test_list_tasks_field_headers():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = task.ListTasksRequest()
+
+    request.parent = 'parent_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        call.return_value = task.ListTasksResponse()
+        client.list_tasks(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'parent=parent_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_list_tasks_field_headers_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = task.ListTasksRequest()
+
+    request.parent = 'parent_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.ListTasksResponse())
+        await client.list_tasks(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert (
+        'x-goog-request-params',
+        'parent=parent_value',
+    ) in kw['metadata']
+
+
+def test_list_tasks_flattened():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = task.ListTasksResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.list_tasks(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+
+def test_list_tasks_flattened_error():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_tasks(
+            task.ListTasksRequest(),
+            parent='parent_value',
+        )
+
+@pytest.mark.asyncio
+async def test_list_tasks_flattened_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = task.ListTasksResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.ListTasksResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.list_tasks(
+            parent='parent_value',
+        )
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        arg = args[0].parent
+        mock_val = 'parent_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_list_tasks_flattened_error_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.list_tasks(
+            task.ListTasksRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_tasks_pager(transport_name: str = "grpc"):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                    task.Task(),
+                ],
+                next_page_token='abc',
+            ),
+            task.ListTasksResponse(
+                tasks=[],
+                next_page_token='def',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                ],
+                next_page_token='ghi',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                ],
+            ),
+            RuntimeError,
+        )
+
+        expected_metadata = ()
+        retry = retries.Retry()
+        timeout = 5
+        expected_metadata = tuple(expected_metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ('parent', ''),
+            )),
+        )
+        pager = client.list_tasks(request={}, retry=retry, timeout=timeout)
+
+        assert pager._metadata == expected_metadata
+        assert pager._retry == retry
+        assert pager._timeout == timeout
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, task.Task)
+                   for i in results)
+def test_list_tasks_pages(transport_name: str = "grpc"):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport_name,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                    task.Task(),
+                ],
+                next_page_token='abc',
+            ),
+            task.ListTasksResponse(
+                tasks=[],
+                next_page_token='def',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                ],
+                next_page_token='ghi',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = list(client.list_tasks(request={}).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+@pytest.mark.asyncio
+async def test_list_tasks_async_pager():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                    task.Task(),
+                ],
+                next_page_token='abc',
+            ),
+            task.ListTasksResponse(
+                tasks=[],
+                next_page_token='def',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                ],
+                next_page_token='ghi',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                ],
+            ),
+            RuntimeError,
+        )
+        async_pager = await client.list_tasks(request={},)
+        assert async_pager.next_page_token == 'abc'
+        responses = []
+        async for response in async_pager: # pragma: no branch
+            responses.append(response)
+
+        assert len(responses) == 6
+        assert all(isinstance(i, task.Task)
+                for i in responses)
+
+
+@pytest.mark.asyncio
+async def test_list_tasks_async_pages():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                    task.Task(),
+                ],
+                next_page_token='abc',
+            ),
+            task.ListTasksResponse(
+                tasks=[],
+                next_page_token='def',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                ],
+                next_page_token='ghi',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = []
+        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
+        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
+        async for page_ in ( # pragma: no branch
+            await client.list_tasks(request={})
+        ).pages:
+            pages.append(page_)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+
+def test_get_task_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = TasksClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.get_task in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.get_task] = mock_rpc
+
+        request = {}
+        client.get_task(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.get_task(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_get_task_rest_required_fields(request_type=task.GetTaskRequest):
+    transport_class = transports.TasksRestTransport
+
+    request_init = {}
+    request_init["name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_task._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["name"] = 'name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_task._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "name" in jsonified_request
+    assert jsonified_request["name"] == 'name_value'
+
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = task.Task()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = task.Task.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.get_task(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_get_task_rest_unset_required_fields():
+    transport = transports.TasksRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.get_task._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("name", )))
+
+
+def test_get_task_rest_flattened():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = task.Task()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4/tasks/sample5'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            name='name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = task.Task.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.get_task(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*/executions/*/tasks/*}" % client.transport._host, args[1])
+
+
+def test_get_task_rest_flattened_error(transport: str = 'rest'):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.get_task(
+            task.GetTaskRequest(),
+            name='name_value',
+        )
+
+
+def test_list_tasks_rest_use_cached_wrapped_rpc():
+    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
+    # instead of constructing them on each call
+    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
+        client = TasksClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport="rest",
+        )
+
+        # Should wrap all calls on client creation
+        assert wrapper_fn.call_count > 0
+        wrapper_fn.reset_mock()
+
+        # Ensure method has been cached
+        assert client._transport.list_tasks in client._transport._wrapped_methods
+
+        # Replace cached wrapped function with mock
+        mock_rpc = mock.Mock()
+        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
+        client._transport._wrapped_methods[client._transport.list_tasks] = mock_rpc
+
+        request = {}
+        client.list_tasks(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert mock_rpc.call_count == 1
+
+        client.list_tasks(request)
+
+        # Establish that a new wrapper was not created for this call
+        assert wrapper_fn.call_count == 0
+        assert mock_rpc.call_count == 2
+
+
+def test_list_tasks_rest_required_fields(request_type=task.ListTasksRequest):
+    transport_class = transports.TasksRestTransport
+
+    request_init = {}
+    request_init["parent"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_tasks._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["parent"] = 'parent_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_tasks._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "parent" in jsonified_request
+    assert jsonified_request["parent"] == 'parent_value'
+
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = task.ListTasksResponse()
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # We need to mock transcode() because providing default values
+        # for required fields will fail the real version if the http_options
+        # expect actual values for those fields.
+        with mock.patch.object(path_template, 'transcode') as transcode:
+            # A uri without fields and an empty body will force all the
+            # request fields to show up in the query_params.
+            pb_request = request_type.pb(request)
+            transcode_result = {
+                'uri': 'v1/sample_method',
+                'method': "get",
+                'query_params': pb_request,
+            }
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            # Convert return value to protobuf type
+            return_value = task.ListTasksResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.list_tasks(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_list_tasks_rest_unset_required_fields():
+    transport = transports.TasksRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.list_tasks._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
+
+
+def test_list_tasks_rest_flattened():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = task.ListTasksResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'parent': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            parent='parent_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        # Convert return value to protobuf type
+        return_value = task.ListTasksResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.list_tasks(**mock_args)
+
+        # Establish that the underlying call was made with the expected
+        # request object values.
+        assert len(req.mock_calls) == 1
+        _, args, _ = req.mock_calls[0]
+        assert path_template.validate("%s/v2/{parent=projects/*/locations/*/jobs/*/executions/*}/tasks" % client.transport._host, args[1])
+
+
+def test_list_tasks_rest_flattened_error(transport: str = 'rest'):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        client.list_tasks(
+            task.ListTasksRequest(),
+            parent='parent_value',
+        )
+
+
+def test_list_tasks_rest_pager(transport: str = 'rest'):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # TODO(kbandes): remove this mock unless there's a good reason for it.
+        #with mock.patch.object(path_template, 'transcode') as transcode:
+        # Set the response as a series of pages
+        response = (
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                    task.Task(),
+                ],
+                next_page_token='abc',
+            ),
+            task.ListTasksResponse(
+                tasks=[],
+                next_page_token='def',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                ],
+                next_page_token='ghi',
+            ),
+            task.ListTasksResponse(
+                tasks=[
+                    task.Task(),
+                    task.Task(),
+                ],
+            ),
+        )
+        # Two responses for two calls
+        response = response + response
+
+        # Wrap the values into proper Response objs
+        response = tuple(task.ListTasksResponse.to_json(x) for x in response)
+        return_values = tuple(Response() for i in response)
+        for return_val, response_val in zip(return_values, response):
+            return_val._content = response_val.encode('UTF-8')
+            return_val.status_code = 200
+        req.side_effect = return_values
+
+        sample_request = {'parent': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+
+        pager = client.list_tasks(request=sample_request)
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, task.Task)
+                for i in results)
+
+        pages = list(client.list_tasks(request=sample_request).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.TasksGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = TasksClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.TasksGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = TasksClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.TasksGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = TasksClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = TasksClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.TasksGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = TasksClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.TasksGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = TasksClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.TasksGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.TasksGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.TasksGrpcTransport,
+    transports.TasksGrpcAsyncIOTransport,
+    transports.TasksRestTransport,
+])
+def test_transport_adc(transport_class):
+    # Test default credentials are used if not provided.
+    with mock.patch.object(google.auth, 'default') as adc:
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport_class()
+        adc.assert_called_once()
+
+def test_transport_kind_grpc():
+    transport = TasksClient.get_transport_class("grpc")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "grpc"
+
+
+def test_initialize_client_w_grpc():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_task_empty_call_grpc():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        call.return_value = task.Task()
+        client.get_task(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = task.GetTaskRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_tasks_empty_call_grpc():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        call.return_value = task.ListTasksResponse()
+        client.list_tasks(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = task.ListTasksRequest()
+
+        assert args[0] == request_msg
+
+
+def test_transport_kind_grpc_asyncio():
+    transport = TasksAsyncClient.get_transport_class("grpc_asyncio")(
+        credentials=async_anonymous_credentials()
+    )
+    assert transport.kind == "grpc_asyncio"
+
+
+def test_initialize_client_w_grpc_asyncio():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_get_task_empty_call_grpc_asyncio():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.Task(
+            name='name_value',
+            uid='uid_value',
+            generation=1068,
+            job='job_value',
+            execution='execution_value',
+            max_retries=1187,
+            service_account='service_account_value',
+            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+            reconciling=True,
+            observed_generation=2021,
+            index=536,
+            retried=751,
+            encryption_key='encryption_key_value',
+            log_uri='log_uri_value',
+            satisfies_pzs=True,
+            etag='etag_value',
+        ))
+        await client.get_task(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = task.GetTaskRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+@pytest.mark.asyncio
+async def test_list_tasks_empty_call_grpc_asyncio():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.ListTasksResponse(
+            next_page_token='next_page_token_value',
+        ))
+        await client.list_tasks(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = task.ListTasksRequest()
+
+        assert args[0] == request_msg
+
+
+def test_transport_kind_rest():
+    transport = TasksClient.get_transport_class("rest")(
+        credentials=ga_credentials.AnonymousCredentials()
+    )
+    assert transport.kind == "rest"
+
+
+def test_get_task_rest_bad_request(request_type=task.GetTaskRequest):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4/tasks/sample5'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.get_task(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  task.GetTaskRequest,
+  dict,
+])
+def test_get_task_rest_call_success(request_type):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4/tasks/sample5'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = task.Task(
+              name='name_value',
+              uid='uid_value',
+              generation=1068,
+              job='job_value',
+              execution='execution_value',
+              max_retries=1187,
+              service_account='service_account_value',
+              execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
+              reconciling=True,
+              observed_generation=2021,
+              index=536,
+              retried=751,
+              encryption_key='encryption_key_value',
+              log_uri='log_uri_value',
+              satisfies_pzs=True,
+              etag='etag_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = task.Task.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.get_task(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, task.Task)
+    assert response.name == 'name_value'
+    assert response.uid == 'uid_value'
+    assert response.generation == 1068
+    assert response.job == 'job_value'
+    assert response.execution == 'execution_value'
+    assert response.max_retries == 1187
+    assert response.service_account == 'service_account_value'
+    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
+    assert response.reconciling is True
+    assert response.observed_generation == 2021
+    assert response.index == 536
+    assert response.retried == 751
+    assert response.encryption_key == 'encryption_key_value'
+    assert response.log_uri == 'log_uri_value'
+    assert response.satisfies_pzs is True
+    assert response.etag == 'etag_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_get_task_rest_interceptors(null_interceptor):
+    transport = transports.TasksRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.TasksRestInterceptor(),
+        )
+    client = TasksClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.TasksRestInterceptor, "post_get_task") as post, \
+        mock.patch.object(transports.TasksRestInterceptor, "pre_get_task") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = task.GetTaskRequest.pb(task.GetTaskRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = task.Task.to_json(task.Task())
+        req.return_value.content = return_value
+
+        request = task.GetTaskRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = task.Task()
+
+        client.get_task(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_list_tasks_rest_bad_request(request_type=task.ListTasksRequest):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = mock.Mock()
+        req.return_value = response_value
+        client.list_tasks(request)
+
+
+@pytest.mark.parametrize("request_type", [
+  task.ListTasksRequest,
+  dict,
+])
+def test_list_tasks_rest_call_success(request_type):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'parent': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
+    request = request_type(**request_init)
+
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(type(client.transport._session), 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = task.ListTasksResponse(
+              next_page_token='next_page_token_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+
+        # Convert return value to protobuf type
+        return_value = task.ListTasksResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.list_tasks(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListTasksPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_list_tasks_rest_interceptors(null_interceptor):
+    transport = transports.TasksRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.TasksRestInterceptor(),
+        )
+    client = TasksClient(transport=transport)
+
+    with mock.patch.object(type(client.transport._session), "request") as req, \
+        mock.patch.object(path_template, "transcode")  as transcode, \
+        mock.patch.object(transports.TasksRestInterceptor, "post_list_tasks") as post, \
+        mock.patch.object(transports.TasksRestInterceptor, "pre_list_tasks") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = task.ListTasksRequest.pb(task.ListTasksRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = mock.Mock()
+        req.return_value.status_code = 200
+        return_value = task.ListTasksResponse.to_json(task.ListTasksResponse())
+        req.return_value.content = return_value
+
+        request = task.ListTasksRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = task.ListTasksResponse()
+
+        client.list_tasks(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.delete_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.DeleteOperationRequest,
+    dict,
+])
+def test_delete_operation_rest(request_type):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = None
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = '{}'
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.delete_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+
+def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.get_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.GetOperationRequest,
+    dict,
+])
+def test_get_operation_rest(request_type):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.get_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+
+def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.list_operations(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.ListOperationsRequest,
+    dict,
+])
+def test_list_operations_rest(request_type):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.ListOperationsResponse()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.list_operations(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+
+def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+    request = request_type()
+    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
+
+    # Mock the http request call within the method and fake a BadRequest error.
+    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        json_return_value = ''
+        response_value.json = mock.Mock(return_value={})
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.wait_operation(request)
+
+
+@pytest.mark.parametrize("request_type", [
+    operations_pb2.WaitOperationRequest,
+    dict,
+])
+def test_wait_operation_rest(request_type):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
+    request = request_type(**request_init)
+    # Mock the http request call within the method and fake a response.
+    with mock.patch.object(Session, 'request') as req:
+        # Designate an appropriate value for the returned response.
+        return_value = operations_pb2.Operation()
+
+        # Wrap the value into a proper Response obj
+        response_value = mock.Mock()
+        response_value.status_code = 200
+        json_return_value = json_format.MessageToJson(return_value)
+        response_value.content = json_return_value.encode('UTF-8')
+
+        req.return_value = response_value
+
+        response = client.wait_operation(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_initialize_client_w_rest():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    assert client is not None
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_get_task_empty_call_rest():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_task),
+            '__call__') as call:
+        client.get_task(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = task.GetTaskRequest()
+
+        assert args[0] == request_msg
+
+
+# This test is a coverage failsafe to make sure that totally empty calls,
+# i.e. request == None and no flattened fields passed, work.
+def test_list_tasks_empty_call_rest():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # Mock the actual call, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_tasks),
+            '__call__') as call:
+        client.list_tasks(request=None)
+
+        # Establish that the underlying stub method was called.
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        request_msg = task.ListTasksRequest()
+
+        assert args[0] == request_msg
+
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.TasksGrpcTransport,
+    )
+
+def test_tasks_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.TasksTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_tasks_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.run_v2.services.tasks.transports.TasksTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.TasksTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'get_task',
+        'list_tasks',
+        'get_operation',
+        'wait_operation',
+        'delete_operation',
+        'list_operations',
+    )
+    for method in methods:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, method)(request=object())
+
+    with pytest.raises(NotImplementedError):
+        transport.close()
+
+    # Catch all for all remaining methods and properties
+    remainder = [
+        'kind',
+    ]
+    for r in remainder:
+        with pytest.raises(NotImplementedError):
+            getattr(transport, r)()
+
+
+def test_tasks_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.tasks.transports.TasksTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.TasksTransport(
+            credentials_file="credentials.json",
+            quota_project_id="octopus",
+        )
+        load_creds.assert_called_once_with("credentials.json",
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id="octopus",
+        )
+
+
+def test_tasks_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.tasks.transports.TasksTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.TasksTransport()
+        adc.assert_called_once()
+
+
+def test_tasks_auth_adc():
+    # 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)
+        TasksClient()
+        adc.assert_called_once_with(
+            scopes=None,
+            default_scopes=(
+            'https://www.googleapis.com/auth/cloud-platform',
+),
+            quota_project_id=None,
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.TasksGrpcTransport,
+        transports.TasksGrpcAsyncIOTransport,
+    ],
+)
+def test_tasks_transport_auth_adc(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", scopes=["1", "2"])
+        adc.assert_called_once_with(
+            scopes=["1", "2"],
+            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
+            quota_project_id="octopus",
+        )
+
+
+@pytest.mark.parametrize(
+    "transport_class",
+    [
+        transports.TasksGrpcTransport,
+        transports.TasksGrpcAsyncIOTransport,
+        transports.TasksRestTransport,
+    ],
+)
+def test_tasks_transport_auth_gdch_credentials(transport_class):
+    host = 'https://language.com'
+    api_audience_tests = [None, 'https://language2.com']
+    api_audience_expect = [host, 'https://language2.com']
+    for t, e in zip(api_audience_tests, api_audience_expect):
+        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
+            gdch_mock = mock.MagicMock()
+            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
+            adc.return_value = (gdch_mock, None)
+            transport_class(host=host, api_audience=t)
+            gdch_mock.with_gdch_audience.assert_called_once_with(
+                e
+            )
+
+
+@pytest.mark.parametrize(
+    "transport_class,grpc_helpers",
+    [
+        (transports.TasksGrpcTransport, grpc_helpers),
+        (transports.TasksGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_tasks_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "run.googleapis.com:443",
+            credentials=creds,
+            credentials_file=None,
+            quota_project_id="octopus",
+            default_scopes=(
+                'https://www.googleapis.com/auth/cloud-platform',
+),
+            scopes=["1", "2"],
+            default_host="run.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.TasksGrpcTransport, transports.TasksGrpcAsyncIOTransport])
+def test_tasks_grpc_transport_client_cert_source_for_mtls(
+    transport_class
+):
+    cred = ga_credentials.AnonymousCredentials()
+
+    # Check ssl_channel_credentials is used if provided.
+    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
+        mock_ssl_channel_creds = mock.Mock()
+        transport_class(
+            host="squid.clam.whelk",
+            credentials=cred,
+            ssl_channel_credentials=mock_ssl_channel_creds
+        )
+        mock_create_channel.assert_called_once_with(
+            "squid.clam.whelk:443",
+            credentials=cred,
+            credentials_file=None,
+            scopes=None,
+            ssl_credentials=mock_ssl_channel_creds,
+            quota_project_id=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
+    # is used.
+    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
+        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
+            transport_class(
+                credentials=cred,
+                client_cert_source_for_mtls=client_cert_source_callback
+            )
+            expected_cert, expected_key = client_cert_source_callback()
+            mock_ssl_cred.assert_called_once_with(
+                certificate_chain=expected_cert,
+                private_key=expected_key
+            )
+
+def test_tasks_http_transport_client_cert_source_for_mtls():
+    cred = ga_credentials.AnonymousCredentials()
+    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
+        transports.TasksRestTransport (
+            credentials=cred,
+            client_cert_source_for_mtls=client_cert_source_callback
+        )
+        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
+
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_tasks_host_no_port(transport_name):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_tasks_host_with_port(transport_name):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'run.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://run.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_tasks_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = TasksClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = TasksClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.get_task._session
+    session2 = client2.transport.get_task._session
+    assert session1 != session2
+    session1 = client1.transport.list_tasks._session
+    session2 = client2.transport.list_tasks._session
+    assert session1 != session2
+def test_tasks_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.TasksGrpcTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+def test_tasks_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.TasksGrpcAsyncIOTransport(
+        host="squid.clam.whelk",
+        channel=channel,
+    )
+    assert transport.grpc_channel == channel
+    assert transport._host == "squid.clam.whelk:443"
+    assert transport._ssl_channel_credentials == None
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.TasksGrpcTransport, transports.TasksGrpcAsyncIOTransport])
+def test_tasks_transport_channel_mtls_with_client_cert_source(
+    transport_class
+):
+    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_ssl_cred = mock.Mock()
+            grpc_ssl_channel_cred.return_value = mock_ssl_cred
+
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+
+            cred = ga_credentials.AnonymousCredentials()
+            with pytest.warns(DeprecationWarning):
+                with mock.patch.object(google.auth, 'default') as adc:
+                    adc.return_value = (cred, None)
+                    transport = transport_class(
+                        host="squid.clam.whelk",
+                        api_mtls_endpoint="mtls.squid.clam.whelk",
+                        client_cert_source=client_cert_source_callback,
+                    )
+                    adc.assert_called_once()
+
+            grpc_ssl_channel_cred.assert_called_once_with(
+                certificate_chain=b"cert bytes", private_key=b"key bytes"
+            )
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+            assert transport._ssl_channel_credentials == mock_ssl_cred
+
+
+# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
+# removed from grpc/grpc_asyncio transport constructor.
+@pytest.mark.parametrize("transport_class", [transports.TasksGrpcTransport, transports.TasksGrpcAsyncIOTransport])
+def test_tasks_transport_channel_mtls_with_adc(
+    transport_class
+):
+    mock_ssl_cred = mock.Mock()
+    with mock.patch.multiple(
+        "google.auth.transport.grpc.SslCredentials",
+        __init__=mock.Mock(return_value=None),
+        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
+    ):
+        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
+            mock_grpc_channel = mock.Mock()
+            grpc_create_channel.return_value = mock_grpc_channel
+            mock_cred = mock.Mock()
+
+            with pytest.warns(DeprecationWarning):
+                transport = transport_class(
+                    host="squid.clam.whelk",
+                    credentials=mock_cred,
+                    api_mtls_endpoint="mtls.squid.clam.whelk",
+                    client_cert_source=None,
+                )
+
+            grpc_create_channel.assert_called_once_with(
+                "mtls.squid.clam.whelk:443",
+                credentials=mock_cred,
+                credentials_file=None,
+                scopes=None,
+                ssl_credentials=mock_ssl_cred,
+                quota_project_id=None,
+                options=[
+                    ("grpc.max_send_message_length", -1),
+                    ("grpc.max_receive_message_length", -1),
+                ],
+            )
+            assert transport.grpc_channel == mock_grpc_channel
+
+
+def test_connector_path():
+    project = "squid"
+    location = "clam"
+    connector = "whelk"
+    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
+    actual = TasksClient.connector_path(project, location, connector)
+    assert expected == actual
+
+
+def test_parse_connector_path():
+    expected = {
+        "project": "octopus",
+        "location": "oyster",
+        "connector": "nudibranch",
+    }
+    path = TasksClient.connector_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_connector_path(path)
+    assert expected == actual
+
+def test_crypto_key_path():
+    project = "cuttlefish"
+    location = "mussel"
+    key_ring = "winkle"
+    crypto_key = "nautilus"
+    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
+    actual = TasksClient.crypto_key_path(project, location, key_ring, crypto_key)
+    assert expected == actual
+
+
+def test_parse_crypto_key_path():
+    expected = {
+        "project": "scallop",
+        "location": "abalone",
+        "key_ring": "squid",
+        "crypto_key": "clam",
+    }
+    path = TasksClient.crypto_key_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_crypto_key_path(path)
+    assert expected == actual
+
+def test_execution_path():
+    project = "whelk"
+    location = "octopus"
+    job = "oyster"
+    execution = "nudibranch"
+    expected = "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
+    actual = TasksClient.execution_path(project, location, job, execution)
+    assert expected == actual
+
+
+def test_parse_execution_path():
+    expected = {
+        "project": "cuttlefish",
+        "location": "mussel",
+        "job": "winkle",
+        "execution": "nautilus",
+    }
+    path = TasksClient.execution_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_execution_path(path)
+    assert expected == actual
+
+def test_job_path():
+    project = "scallop"
+    location = "abalone"
+    job = "squid"
+    expected = "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
+    actual = TasksClient.job_path(project, location, job)
+    assert expected == actual
+
+
+def test_parse_job_path():
+    expected = {
+        "project": "clam",
+        "location": "whelk",
+        "job": "octopus",
+    }
+    path = TasksClient.job_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_job_path(path)
+    assert expected == actual
+
+def test_secret_path():
+    project = "oyster"
+    secret = "nudibranch"
+    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
+    actual = TasksClient.secret_path(project, secret)
+    assert expected == actual
+
+
+def test_parse_secret_path():
+    expected = {
+        "project": "cuttlefish",
+        "secret": "mussel",
+    }
+    path = TasksClient.secret_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_secret_path(path)
+    assert expected == actual
+
+def test_secret_version_path():
+    project = "winkle"
+    secret = "nautilus"
+    version = "scallop"
+    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
+    actual = TasksClient.secret_version_path(project, secret, version)
+    assert expected == actual
+
+
+def test_parse_secret_version_path():
+    expected = {
+        "project": "abalone",
+        "secret": "squid",
+        "version": "clam",
+    }
+    path = TasksClient.secret_version_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_secret_version_path(path)
+    assert expected == actual
+
+def test_task_path():
+    project = "whelk"
+    location = "octopus"
+    job = "oyster"
+    execution = "nudibranch"
+    task = "cuttlefish"
+    expected = "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}".format(project=project, location=location, job=job, execution=execution, task=task, )
+    actual = TasksClient.task_path(project, location, job, execution, task)
+    assert expected == actual
+
+
+def test_parse_task_path():
+    expected = {
+        "project": "mussel",
+        "location": "winkle",
+        "job": "nautilus",
+        "execution": "scallop",
+        "task": "abalone",
+    }
+    path = TasksClient.task_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_task_path(path)
+    assert expected == actual
+
+def test_common_billing_account_path():
+    billing_account = "squid"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = TasksClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "clam",
+    }
+    path = TasksClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "whelk"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = TasksClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "octopus",
+    }
+    path = TasksClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "oyster"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = TasksClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "nudibranch",
+    }
+    path = TasksClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "cuttlefish"
+    expected = "projects/{project}".format(project=project, )
+    actual = TasksClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "mussel",
+    }
+    path = TasksClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_common_project_path(path)
+    assert expected == actual
+
+def test_common_location_path():
+    project = "winkle"
+    location = "nautilus"
+    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
+    actual = TasksClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "scallop",
+        "location": "abalone",
+    }
+    path = TasksClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = TasksClient.parse_common_location_path(path)
+    assert expected == actual
+
+
+def test_client_with_default_client_info():
+    client_info = gapic_v1.client_info.ClientInfo()
+
+    with mock.patch.object(transports.TasksTransport, '_prep_wrapped_messages') as prep:
+        client = TasksClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.TasksTransport, '_prep_wrapped_messages') as prep:
+        transport_class = TasksClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+
+def test_delete_operation(transport: str = "grpc"):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+        response = client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+@pytest.mark.asyncio
+async def test_delete_operation_async(transport: str = "grpc_asyncio"):
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.DeleteOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert response is None
+
+def test_delete_operation_field_headers():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value =  None
+
+        client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_delete_operation_field_headers_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.DeleteOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        await client.delete_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_delete_operation_from_dict():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = None
+
+        response = client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_delete_operation_from_dict_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            None
+        )
+        response = await client.delete_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_wait_operation(transport: str = "grpc"):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_wait_operation(transport: str = "grpc_asyncio"):
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.WaitOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_wait_operation_field_headers():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_wait_operation_field_headers_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.WaitOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.wait_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_wait_operation_from_dict():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_wait_operation_from_dict_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.wait_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_get_operation(transport: str = "grpc"):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+        response = client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+@pytest.mark.asyncio
+async def test_get_operation_async(transport: str = "grpc_asyncio"):
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.GetOperationRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.Operation)
+
+def test_get_operation_field_headers():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = operations_pb2.Operation()
+
+        client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_get_operation_field_headers_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.GetOperationRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.get_operation(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_get_operation_from_dict():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        response = client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_get_operation_from_dict_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        response = await client.get_operation(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_list_operations(transport: str = "grpc"):
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+        response = client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+@pytest.mark.asyncio
+async def test_list_operations_async(transport: str = "grpc_asyncio"):
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(), transport=transport,
+    )
+
+    # Everything is optional in proto3 as far as the runtime is concerned,
+    # and we are mocking out the actual API, so just send an empty request.
+    request = operations_pb2.ListOperationsRequest()
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, operations_pb2.ListOperationsResponse)
+
+def test_list_operations_field_headers():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+@pytest.mark.asyncio
+async def test_list_operations_field_headers_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+
+    # Any value that is part of the HTTP/1.1 URI should be sent as
+    # a field header. Set these to a non-empty value.
+    request = operations_pb2.ListOperationsRequest()
+    request.name = "locations"
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        await client.list_operations(request)
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == request
+
+    # Establish that the field header was sent.
+    _, _, kw = call.mock_calls[0]
+    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
+
+def test_list_operations_from_dict():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        response = client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+@pytest.mark.asyncio
+async def test_list_operations_from_dict_async():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        response = await client.list_operations(
+            request={
+                "name": "locations",
+            }
+        )
+        call.assert_called()
+
+
+def test_transport_close_grpc():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="grpc"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+@pytest.mark.asyncio
+async def test_transport_close_grpc_asyncio():
+    client = TasksAsyncClient(
+        credentials=async_anonymous_credentials(),
+        transport="grpc_asyncio"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
+        async with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_transport_close_rest():
+    client = TasksClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest"
+    )
+    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
+        with client:
+            close.assert_not_called()
+        close.assert_called_once()
+
+
+def test_client_ctx():
+    transports = [
+        'rest',
+        'grpc',
+    ]
+    for transport in transports:
+        client = TasksClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        # Test client calls underlying transport.
+        with mock.patch.object(type(client.transport), "close") as close:
+            close.assert_not_called()
+            with client:
+                pass
+            close.assert_called()
+
+@pytest.mark.parametrize("client_class,transport_class", [
+    (TasksClient, transports.TasksGrpcTransport),
+    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport),
+])
+def test_api_key_credentials(client_class, transport_class):
+    with mock.patch.object(
+        google.auth._default, "get_api_key_credentials", create=True
+    ) as get_api_key_credentials:
+        mock_cred = mock.Mock()
+        get_api_key_credentials.return_value = mock_cred
+        options = client_options.ClientOptions()
+        options.api_key = "api_key"
+        with mock.patch.object(transport_class, "__init__") as patched:
+            patched.return_value = None
+            client = client_class(client_options=options)
+            patched.assert_called_once_with(
+                credentials=mock_cred,
+                credentials_file=None,
+                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
+                scopes=None,
+                client_cert_source_for_mtls=None,
+                quota_project_id=None,
+                client_info=transports.base.DEFAULT_CLIENT_INFO,
+                always_use_jwt_access=True,
+                api_audience=None,
+            )

From 2cbc7a4f2f55e120380111f9ca30c8949df22310 Mon Sep 17 00:00:00 2001
From: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Date: Mon, 18 Nov 2024 23:43:30 +0000
Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?=
 =?UTF-8?q?st-processor?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md
---
 .../google-cloud-run/v2/.coveragerc           |   13 -
 owl-bot-staging/google-cloud-run/v2/.flake8   |   33 -
 .../google-cloud-run/v2/MANIFEST.in           |    2 -
 .../google-cloud-run/v2/README.rst            |   49 -
 .../v2/docs/_static/custom.css                |    3 -
 .../google-cloud-run/v2/docs/conf.py          |  376 -
 .../google-cloud-run/v2/docs/index.rst        |    7 -
 .../v2/docs/run_v2/builds.rst                 |    6 -
 .../v2/docs/run_v2/executions.rst             |   10 -
 .../google-cloud-run/v2/docs/run_v2/jobs.rst  |   10 -
 .../v2/docs/run_v2/revisions.rst              |   10 -
 .../v2/docs/run_v2/services.rst               |   10 -
 .../v2/docs/run_v2/services_.rst              |   11 -
 .../google-cloud-run/v2/docs/run_v2/tasks.rst |   10 -
 .../v2/docs/run_v2/types_.rst                 |    6 -
 .../v2/google/cloud/run/__init__.py           |  189 -
 .../v2/google/cloud/run/gapic_version.py      |   16 -
 .../v2/google/cloud/run/py.typed              |    2 -
 .../v2/google/cloud/run_v2/__init__.py        |  190 -
 .../google/cloud/run_v2/gapic_metadata.json   |  528 --
 .../v2/google/cloud/run_v2/gapic_version.py   |   16 -
 .../v2/google/cloud/run_v2/py.typed           |    2 -
 .../google/cloud/run_v2/services/__init__.py  |   15 -
 .../cloud/run_v2/services/builds/__init__.py  |   22 -
 .../run_v2/services/builds/async_client.py    |  535 --
 .../cloud/run_v2/services/builds/client.py    |  865 --
 .../services/builds/transports/README.rst     |    9 -
 .../services/builds/transports/__init__.py    |   38 -
 .../run_v2/services/builds/transports/base.py |  212 -
 .../run_v2/services/builds/transports/grpc.py |  344 -
 .../builds/transports/grpc_asyncio.py         |  385 -
 .../run_v2/services/builds/transports/rest.py |  652 --
 .../services/builds/transports/rest_base.py   |  245 -
 .../run_v2/services/executions/__init__.py    |   22 -
 .../services/executions/async_client.py       |  929 --
 .../run_v2/services/executions/client.py      | 1300 ---
 .../run_v2/services/executions/pagers.py      |  162 -
 .../services/executions/transports/README.rst |    9 -
 .../executions/transports/__init__.py         |   38 -
 .../services/executions/transports/base.py    |  260 -
 .../services/executions/transports/grpc.py    |  441 -
 .../executions/transports/grpc_asyncio.py     |  497 -
 .../services/executions/transports/rest.py    | 1026 --
 .../executions/transports/rest_base.py        |  356 -
 .../cloud/run_v2/services/jobs/__init__.py    |   22 -
 .../run_v2/services/jobs/async_client.py      | 1541 ---
 .../cloud/run_v2/services/jobs/client.py      | 1922 ----
 .../cloud/run_v2/services/jobs/pagers.py      |  162 -
 .../services/jobs/transports/README.rst       |    9 -
 .../services/jobs/transports/__init__.py      |   38 -
 .../run_v2/services/jobs/transports/base.py   |  333 -
 .../run_v2/services/jobs/transports/grpc.py   |  580 --
 .../services/jobs/transports/grpc_asyncio.py  |  661 --
 .../run_v2/services/jobs/transports/rest.py   | 1711 ----
 .../services/jobs/transports/rest_base.py     |  584 --
 .../run_v2/services/revisions/__init__.py     |   22 -
 .../run_v2/services/revisions/async_client.py |  834 --
 .../cloud/run_v2/services/revisions/client.py | 1215 ---
 .../cloud/run_v2/services/revisions/pagers.py |  162 -
 .../services/revisions/transports/README.rst  |    9 -
 .../services/revisions/transports/__init__.py |   38 -
 .../services/revisions/transports/base.py     |  246 -
 .../services/revisions/transports/grpc.py     |  416 -
 .../revisions/transports/grpc_asyncio.py      |  467 -
 .../services/revisions/transports/rest.py     |  920 --
 .../revisions/transports/rest_base.py         |  309 -
 .../run_v2/services/services/__init__.py      |   22 -
 .../run_v2/services/services/async_client.py  | 1452 ---
 .../cloud/run_v2/services/services/client.py  | 1843 ----
 .../cloud/run_v2/services/services/pagers.py  |  162 -
 .../services/services/transports/README.rst   |    9 -
 .../services/services/transports/__init__.py  |   38 -
 .../services/services/transports/base.py      |  337 -
 .../services/services/transports/grpc.py      |  557 --
 .../services/transports/grpc_asyncio.py       |  651 --
 .../services/services/transports/rest.py      | 1610 ----
 .../services/services/transports/rest_base.py |  537 --
 .../cloud/run_v2/services/tasks/__init__.py   |   22 -
 .../run_v2/services/tasks/async_client.py     |  692 --
 .../cloud/run_v2/services/tasks/client.py     | 1074 ---
 .../cloud/run_v2/services/tasks/pagers.py     |  162 -
 .../services/tasks/transports/README.rst      |    9 -
 .../services/tasks/transports/__init__.py     |   38 -
 .../run_v2/services/tasks/transports/base.py  |  226 -
 .../run_v2/services/tasks/transports/grpc.py  |  370 -
 .../services/tasks/transports/grpc_asyncio.py |  416 -
 .../run_v2/services/tasks/transports/rest.py  |  756 --
 .../services/tasks/transports/rest_base.py    |  272 -
 .../v2/google/cloud/run_v2/types/__init__.py  |  188 -
 .../v2/google/cloud/run_v2/types/build.py     |  253 -
 .../v2/google/cloud/run_v2/types/condition.py |  306 -
 .../v2/google/cloud/run_v2/types/execution.py |  437 -
 .../cloud/run_v2/types/execution_template.py  |  114 -
 .../v2/google/cloud/run_v2/types/job.py       |  704 --
 .../v2/google/cloud/run_v2/types/k8s_min.py   |  854 --
 .../v2/google/cloud/run_v2/types/revision.py  |  446 -
 .../cloud/run_v2/types/revision_template.py   |  217 -
 .../v2/google/cloud/run_v2/types/service.py   |  602 --
 .../v2/google/cloud/run_v2/types/status.py    |   46 -
 .../v2/google/cloud/run_v2/types/task.py      |  431 -
 .../cloud/run_v2/types/task_template.py       |  122 -
 .../cloud/run_v2/types/traffic_target.py      |  129 -
 .../cloud/run_v2/types/vendor_settings.py     |  351 -
 owl-bot-staging/google-cloud-run/v2/mypy.ini  |    3 -
 .../google-cloud-run/v2/noxfile.py            |  280 -
 ..._v2_generated_builds_submit_build_async.py |   58 -
 ...n_v2_generated_builds_submit_build_sync.py |   58 -
 ...rated_executions_cancel_execution_async.py |   56 -
 ...erated_executions_cancel_execution_sync.py |   56 -
 ...rated_executions_delete_execution_async.py |   56 -
 ...erated_executions_delete_execution_sync.py |   56 -
 ...enerated_executions_get_execution_async.py |   52 -
 ...generated_executions_get_execution_sync.py |   52 -
 ...erated_executions_list_executions_async.py |   53 -
 ...nerated_executions_list_executions_sync.py |   53 -
 .../run_v2_generated_jobs_create_job_async.py |   62 -
 .../run_v2_generated_jobs_create_job_sync.py  |   62 -
 .../run_v2_generated_jobs_delete_job_async.py |   56 -
 .../run_v2_generated_jobs_delete_job_sync.py  |   56 -
 ..._v2_generated_jobs_get_iam_policy_async.py |   53 -
 ...n_v2_generated_jobs_get_iam_policy_sync.py |   53 -
 .../run_v2_generated_jobs_get_job_async.py    |   52 -
 .../run_v2_generated_jobs_get_job_sync.py     |   52 -
 .../run_v2_generated_jobs_list_jobs_async.py  |   53 -
 .../run_v2_generated_jobs_list_jobs_sync.py   |   53 -
 .../run_v2_generated_jobs_run_job_async.py    |   56 -
 .../run_v2_generated_jobs_run_job_sync.py     |   56 -
 ..._v2_generated_jobs_set_iam_policy_async.py |   53 -
 ...n_v2_generated_jobs_set_iam_policy_sync.py |   53 -
 ...nerated_jobs_test_iam_permissions_async.py |   54 -
 ...enerated_jobs_test_iam_permissions_sync.py |   54 -
 .../run_v2_generated_jobs_update_job_async.py |   60 -
 .../run_v2_generated_jobs_update_job_sync.py  |   60 -
 ...nerated_revisions_delete_revision_async.py |   56 -
 ...enerated_revisions_delete_revision_sync.py |   56 -
 ..._generated_revisions_get_revision_async.py |   52 -
 ...2_generated_revisions_get_revision_sync.py |   52 -
 ...enerated_revisions_list_revisions_async.py |   53 -
 ...generated_revisions_list_revisions_sync.py |   53 -
 ...generated_services_create_service_async.py |   57 -
 ..._generated_services_create_service_sync.py |   57 -
 ...generated_services_delete_service_async.py |   56 -
 ..._generated_services_delete_service_sync.py |   56 -
 ...generated_services_get_iam_policy_async.py |   53 -
 ..._generated_services_get_iam_policy_sync.py |   53 -
 ...v2_generated_services_get_service_async.py |   52 -
 ..._v2_generated_services_get_service_sync.py |   52 -
 ..._generated_services_list_services_async.py |   53 -
 ...2_generated_services_list_services_sync.py |   53 -
 ...generated_services_set_iam_policy_async.py |   53 -
 ..._generated_services_set_iam_policy_sync.py |   53 -
 ...ted_services_test_iam_permissions_async.py |   54 -
 ...ated_services_test_iam_permissions_sync.py |   54 -
 ...generated_services_update_service_async.py |   55 -
 ..._generated_services_update_service_sync.py |   55 -
 .../run_v2_generated_tasks_get_task_async.py  |   52 -
 .../run_v2_generated_tasks_get_task_sync.py   |   52 -
 ...run_v2_generated_tasks_list_tasks_async.py |   53 -
 .../run_v2_generated_tasks_list_tasks_sync.py |   53 -
 .../snippet_metadata_google.cloud.run.v2.json | 4346 ---------
 .../v2/scripts/fixup_run_v2_keywords.py       |  199 -
 owl-bot-staging/google-cloud-run/v2/setup.py  |   99 -
 .../v2/testing/constraints-3.10.txt           |    7 -
 .../v2/testing/constraints-3.11.txt           |    7 -
 .../v2/testing/constraints-3.12.txt           |    7 -
 .../v2/testing/constraints-3.13.txt           |    7 -
 .../v2/testing/constraints-3.7.txt            |   11 -
 .../v2/testing/constraints-3.8.txt            |    7 -
 .../v2/testing/constraints-3.9.txt            |    7 -
 .../google-cloud-run/v2/tests/__init__.py     |   16 -
 .../v2/tests/unit/__init__.py                 |   16 -
 .../v2/tests/unit/gapic/__init__.py           |   16 -
 .../v2/tests/unit/gapic/run_v2/__init__.py    |   16 -
 .../v2/tests/unit/gapic/run_v2/test_builds.py | 2690 ------
 .../unit/gapic/run_v2/test_executions.py      | 5309 -----------
 .../v2/tests/unit/gapic/run_v2/test_jobs.py   | 8448 -----------------
 .../tests/unit/gapic/run_v2/test_revisions.py | 4715 ---------
 .../tests/unit/gapic/run_v2/test_services.py  | 7878 ---------------
 .../v2/tests/unit/gapic/run_v2/test_tasks.py  | 3961 --------
 .../google/cloud/run/gapic_version.py         |    2 +-
 .../google/cloud/run_v2/gapic_version.py      |    2 +-
 .../cloud/run_v2/types/vendor_settings.py     |   16 +
 .../snippet_metadata_google.cloud.run.v2.json |    2 +-
 .../tests/unit/gapic/run_v2/test_services.py  |   12 +-
 184 files changed, 29 insertions(+), 79513 deletions(-)
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/.coveragerc
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/.flake8
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/MANIFEST.in
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/README.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/_static/custom.css
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/conf.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/index.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/builds.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/executions.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/jobs.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/revisions.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/services.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/services_.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/tasks.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/docs/run_v2/types_.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run/gapic_version.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run/py.typed
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_metadata.json
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_version.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/py.typed
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/async_client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/README.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest_base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/async_client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/pagers.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/README.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest_base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/async_client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/pagers.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/README.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest_base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/async_client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/pagers.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/README.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest_base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/async_client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/pagers.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/README.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest_base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/async_client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/client.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/pagers.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/README.rst
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest_base.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/build.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/condition.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution_template.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/job.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/k8s_min.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision_template.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/service.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/status.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task_template.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/traffic_target.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/vendor_settings.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/mypy.ini
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/noxfile.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_async.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_sync.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/scripts/fixup_run_v2_keywords.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/setup.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.10.txt
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.11.txt
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.12.txt
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.13.txt
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.7.txt
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.8.txt
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/testing/constraints-3.9.txt
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/__init__.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_builds.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_executions.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_jobs.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_revisions.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_services.py
 delete mode 100644 owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_tasks.py

diff --git a/owl-bot-staging/google-cloud-run/v2/.coveragerc b/owl-bot-staging/google-cloud-run/v2/.coveragerc
deleted file mode 100644
index e95306d9a536..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/.coveragerc
+++ /dev/null
@@ -1,13 +0,0 @@
-[run]
-branch = True
-
-[report]
-show_missing = True
-omit =
-    google/cloud/run/__init__.py
-    google/cloud/run/gapic_version.py
-exclude_lines =
-    # Re-enable the standard pragma
-    pragma: NO COVER
-    # Ignore debug-only repr
-    def __repr__
diff --git a/owl-bot-staging/google-cloud-run/v2/.flake8 b/owl-bot-staging/google-cloud-run/v2/.flake8
deleted file mode 100644
index 29227d4cf419..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/.flake8
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Generated by synthtool. DO NOT EDIT!
-[flake8]
-ignore = E203, E266, E501, W503
-exclude =
-  # Exclude generated code.
-  **/proto/**
-  **/gapic/**
-  **/services/**
-  **/types/**
-  *_pb2.py
-
-  # Standard linting exemptions.
-  **/.nox/**
-  __pycache__,
-  .git,
-  *.pyc,
-  conf.py
diff --git a/owl-bot-staging/google-cloud-run/v2/MANIFEST.in b/owl-bot-staging/google-cloud-run/v2/MANIFEST.in
deleted file mode 100644
index fb6bb81f7379..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-recursive-include google/cloud/run *.py
-recursive-include google/cloud/run_v2 *.py
diff --git a/owl-bot-staging/google-cloud-run/v2/README.rst b/owl-bot-staging/google-cloud-run/v2/README.rst
deleted file mode 100644
index ca52f66fff83..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/README.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-Python Client for Google Cloud Run API
-=================================================
-
-Quick Start
------------
-
-In order to use this library, you first need to go through the following steps:
-
-1. `Select or create a Cloud Platform project.`_
-2. `Enable billing for your project.`_
-3. Enable the Google Cloud Run API.
-4. `Setup Authentication.`_
-
-.. _Select or create a Cloud Platform project.: https://console.cloud.google.com/project
-.. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project
-.. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
-
-Installation
-~~~~~~~~~~~~
-
-Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to
-create isolated Python environments. The basic problem it addresses is one of
-dependencies and versions, and indirectly permissions.
-
-With `virtualenv`_, it's possible to install this library without needing system
-install permissions, and without clashing with the installed system
-dependencies.
-
-.. _`virtualenv`: https://virtualenv.pypa.io/en/latest/
-
-
-Mac/Linux
-^^^^^^^^^
-
-.. code-block:: console
-
-    python3 -m venv <your-env>
-    source <your-env>/bin/activate
-    <your-env>/bin/pip install /path/to/library
-
-
-Windows
-^^^^^^^
-
-.. code-block:: console
-
-    python3 -m venv <your-env>
-    <your-env>\Scripts\activate
-    <your-env>\Scripts\pip.exe install \path\to\library
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/_static/custom.css b/owl-bot-staging/google-cloud-run/v2/docs/_static/custom.css
deleted file mode 100644
index 06423be0b592..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/_static/custom.css
+++ /dev/null
@@ -1,3 +0,0 @@
-dl.field-list > dt {
-    min-width: 100px
-}
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/conf.py b/owl-bot-staging/google-cloud-run/v2/docs/conf.py
deleted file mode 100644
index 2efc90abaf25..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/conf.py
+++ /dev/null
@@ -1,376 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-#
-# google-cloud-run documentation build configuration file
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys
-import os
-import shlex
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-sys.path.insert(0, os.path.abspath(".."))
-
-__version__ = "0.1.0"
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-needs_sphinx = "4.0.1"
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
-    "sphinx.ext.autodoc",
-    "sphinx.ext.autosummary",
-    "sphinx.ext.intersphinx",
-    "sphinx.ext.coverage",
-    "sphinx.ext.napoleon",
-    "sphinx.ext.todo",
-    "sphinx.ext.viewcode",
-]
-
-# autodoc/autosummary flags
-autoclass_content = "both"
-autodoc_default_flags = ["members"]
-autosummary_generate = True
-
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ["_templates"]
-
-# Allow markdown includes (so releases.md can include CHANGLEOG.md)
-# http://www.sphinx-doc.org/en/master/markdown.html
-source_parsers = {".md": "recommonmark.parser.CommonMarkParser"}
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-source_suffix = [".rst", ".md"]
-
-# The encoding of source files.
-# source_encoding = 'utf-8-sig'
-
-# The root toctree document.
-root_doc = "index"
-
-# General information about the project.
-project = u"google-cloud-run"
-copyright = u"2023, Google, LLC"
-author = u"Google APIs"         # TODO: autogenerate this bit
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The full version, including alpha/beta/rc tags.
-release = __version__
-# The short X.Y version.
-version = ".".join(release.split(".")[0:2])
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = 'en'
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-# today = ''
-# Else, today_fmt is used as the format for a strftime call.
-# today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ["_build"]
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-# default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-# add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-# add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-# show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = "sphinx"
-
-# A list of ignored prefixes for module index sorting.
-# modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-# keep_warnings = False
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = True
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-html_theme = "alabaster"
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-html_theme_options = {
-    "description": "Google Cloud Client Libraries for Python",
-    "github_user": "googleapis",
-    "github_repo": "google-cloud-python",
-    "github_banner": True,
-    "font_family": "'Roboto', Georgia, sans",
-    "head_font_family": "'Roboto', Georgia, serif",
-    "code_font_family": "'Roboto Mono', 'Consolas', monospace",
-}
-
-# Add any paths that contain custom themes here, relative to this directory.
-# html_theme_path = []
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-# html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-# html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-# html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-# html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ["_static"]
-
-# Add any extra paths that contain custom files (such as robots.txt or
-# .htaccess) here, relative to this directory. These files are copied
-# directly to the root of the documentation.
-# html_extra_path = []
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-# html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-# html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-# html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-# html_additional_pages = {}
-
-# If false, no module index is generated.
-# html_domain_indices = True
-
-# If false, no index is generated.
-# html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-# html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-# html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-# html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-# html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-# html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-# html_file_suffix = None
-
-# Language to be used for generating the HTML full-text search index.
-# Sphinx supports the following languages:
-#   'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
-#   'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
-# html_search_language = 'en'
-
-# A dictionary with options for the search language support, empty by default.
-# Now only 'ja' uses this config value
-# html_search_options = {'type': 'default'}
-
-# The name of a javascript file (relative to the configuration directory) that
-# implements a search results scorer. If empty, the default will be used.
-# html_search_scorer = 'scorer.js'
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = "google-cloud-run-doc"
-
-# -- Options for warnings ------------------------------------------------------
-
-
-suppress_warnings = [
-    # Temporarily suppress this to avoid "more than one target found for
-    # cross-reference" warning, which are intractable for us to avoid while in
-    # a mono-repo.
-    # See https://github.com/sphinx-doc/sphinx/blob
-    # /2a65ffeef5c107c19084fabdd706cdff3f52d93c/sphinx/domains/python.py#L843
-    "ref.python"
-]
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
-    # The paper size ('letterpaper' or 'a4paper').
-    # 'papersize': 'letterpaper',
-    # The font size ('10pt', '11pt' or '12pt').
-    # 'pointsize': '10pt',
-    # Additional stuff for the LaTeX preamble.
-    # 'preamble': '',
-    # Latex figure (float) alignment
-    # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-#  author, documentclass [howto, manual, or own class]).
-latex_documents = [
-    (
-        root_doc,
-        "google-cloud-run.tex",
-        u"google-cloud-run Documentation",
-        author,
-        "manual",
-    )
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-# latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-# latex_use_parts = False
-
-# If true, show page references after internal links.
-# latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-# latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-# latex_appendices = []
-
-# If false, no module index is generated.
-# latex_domain_indices = True
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
-    (
-        root_doc,
-        "google-cloud-run",
-        u"Google Cloud Run Documentation",
-        [author],
-        1,
-    )
-]
-
-# If true, show URL addresses after external links.
-# man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-#  dir menu entry, description, category)
-texinfo_documents = [
-    (
-        root_doc,
-        "google-cloud-run",
-        u"google-cloud-run Documentation",
-        author,
-        "google-cloud-run",
-        "GAPIC library for Google Cloud Run API",
-        "APIs",
-    )
-]
-
-# Documents to append as an appendix to all manuals.
-# texinfo_appendices = []
-
-# If false, no module index is generated.
-# texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-# texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-# texinfo_no_detailmenu = False
-
-
-# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {
-    "python": ("http://python.readthedocs.org/en/latest/", None),
-    "gax": ("https://gax-python.readthedocs.org/en/latest/", None),
-    "google-auth": ("https://google-auth.readthedocs.io/en/stable", None),
-    "google-gax": ("https://gax-python.readthedocs.io/en/latest/", None),
-    "google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None),
-    "grpc": ("https://grpc.io/grpc/python/", None),
-    "requests": ("http://requests.kennethreitz.org/en/stable/", None),
-    "proto": ("https://proto-plus-python.readthedocs.io/en/stable", None),
-    "protobuf": ("https://googleapis.dev/python/protobuf/latest/", None),
-}
-
-
-# Napoleon settings
-napoleon_google_docstring = True
-napoleon_numpy_docstring = True
-napoleon_include_private_with_doc = False
-napoleon_include_special_with_doc = True
-napoleon_use_admonition_for_examples = False
-napoleon_use_admonition_for_notes = False
-napoleon_use_admonition_for_references = False
-napoleon_use_ivar = False
-napoleon_use_param = True
-napoleon_use_rtype = True
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/index.rst b/owl-bot-staging/google-cloud-run/v2/docs/index.rst
deleted file mode 100644
index adc23552f109..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/index.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-API Reference
--------------
-.. toctree::
-    :maxdepth: 2
-
-    run_v2/services_
-    run_v2/types_
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/builds.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/builds.rst
deleted file mode 100644
index fdedc682ab01..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/builds.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Builds
-------------------------
-
-.. automodule:: google.cloud.run_v2.services.builds
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/executions.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/executions.rst
deleted file mode 100644
index f27d4a7b9e2a..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/executions.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Executions
-----------------------------
-
-.. automodule:: google.cloud.run_v2.services.executions
-    :members:
-    :inherited-members:
-
-.. automodule:: google.cloud.run_v2.services.executions.pagers
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/jobs.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/jobs.rst
deleted file mode 100644
index 423b784fe76f..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/jobs.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Jobs
-----------------------
-
-.. automodule:: google.cloud.run_v2.services.jobs
-    :members:
-    :inherited-members:
-
-.. automodule:: google.cloud.run_v2.services.jobs.pagers
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/revisions.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/revisions.rst
deleted file mode 100644
index e4b2219cce35..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/revisions.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Revisions
----------------------------
-
-.. automodule:: google.cloud.run_v2.services.revisions
-    :members:
-    :inherited-members:
-
-.. automodule:: google.cloud.run_v2.services.revisions.pagers
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services.rst
deleted file mode 100644
index 7c4ea9ce0f20..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Services
---------------------------
-
-.. automodule:: google.cloud.run_v2.services.services
-    :members:
-    :inherited-members:
-
-.. automodule:: google.cloud.run_v2.services.services.pagers
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services_.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services_.rst
deleted file mode 100644
index 4a37414732ec..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/services_.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-Services for Google Cloud Run v2 API
-====================================
-.. toctree::
-    :maxdepth: 2
-
-    builds
-    executions
-    jobs
-    revisions
-    services
-    tasks
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/tasks.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/tasks.rst
deleted file mode 100644
index 7bb96f795cd8..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/tasks.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Tasks
------------------------
-
-.. automodule:: google.cloud.run_v2.services.tasks
-    :members:
-    :inherited-members:
-
-.. automodule:: google.cloud.run_v2.services.tasks.pagers
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/types_.rst b/owl-bot-staging/google-cloud-run/v2/docs/run_v2/types_.rst
deleted file mode 100644
index 887d3238887c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/docs/run_v2/types_.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Types for Google Cloud Run v2 API
-=================================
-
-.. automodule:: google.cloud.run_v2.types
-    :members:
-    :show-inheritance:
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/__init__.py
deleted file mode 100644
index 3224a9474c50..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/__init__.py
+++ /dev/null
@@ -1,189 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from google.cloud.run import gapic_version as package_version
-
-__version__ = package_version.__version__
-
-
-from google.cloud.run_v2.services.builds.client import BuildsClient
-from google.cloud.run_v2.services.builds.async_client import BuildsAsyncClient
-from google.cloud.run_v2.services.executions.client import ExecutionsClient
-from google.cloud.run_v2.services.executions.async_client import ExecutionsAsyncClient
-from google.cloud.run_v2.services.jobs.client import JobsClient
-from google.cloud.run_v2.services.jobs.async_client import JobsAsyncClient
-from google.cloud.run_v2.services.revisions.client import RevisionsClient
-from google.cloud.run_v2.services.revisions.async_client import RevisionsAsyncClient
-from google.cloud.run_v2.services.services.client import ServicesClient
-from google.cloud.run_v2.services.services.async_client import ServicesAsyncClient
-from google.cloud.run_v2.services.tasks.client import TasksClient
-from google.cloud.run_v2.services.tasks.async_client import TasksAsyncClient
-
-from google.cloud.run_v2.types.build import StorageSource
-from google.cloud.run_v2.types.build import SubmitBuildRequest
-from google.cloud.run_v2.types.build import SubmitBuildResponse
-from google.cloud.run_v2.types.condition import Condition
-from google.cloud.run_v2.types.execution import CancelExecutionRequest
-from google.cloud.run_v2.types.execution import DeleteExecutionRequest
-from google.cloud.run_v2.types.execution import Execution
-from google.cloud.run_v2.types.execution import GetExecutionRequest
-from google.cloud.run_v2.types.execution import ListExecutionsRequest
-from google.cloud.run_v2.types.execution import ListExecutionsResponse
-from google.cloud.run_v2.types.execution_template import ExecutionTemplate
-from google.cloud.run_v2.types.job import CreateJobRequest
-from google.cloud.run_v2.types.job import DeleteJobRequest
-from google.cloud.run_v2.types.job import ExecutionReference
-from google.cloud.run_v2.types.job import GetJobRequest
-from google.cloud.run_v2.types.job import Job
-from google.cloud.run_v2.types.job import ListJobsRequest
-from google.cloud.run_v2.types.job import ListJobsResponse
-from google.cloud.run_v2.types.job import RunJobRequest
-from google.cloud.run_v2.types.job import UpdateJobRequest
-from google.cloud.run_v2.types.k8s_min import CloudSqlInstance
-from google.cloud.run_v2.types.k8s_min import Container
-from google.cloud.run_v2.types.k8s_min import ContainerPort
-from google.cloud.run_v2.types.k8s_min import EmptyDirVolumeSource
-from google.cloud.run_v2.types.k8s_min import EnvVar
-from google.cloud.run_v2.types.k8s_min import EnvVarSource
-from google.cloud.run_v2.types.k8s_min import GCSVolumeSource
-from google.cloud.run_v2.types.k8s_min import GRPCAction
-from google.cloud.run_v2.types.k8s_min import HTTPGetAction
-from google.cloud.run_v2.types.k8s_min import HTTPHeader
-from google.cloud.run_v2.types.k8s_min import NFSVolumeSource
-from google.cloud.run_v2.types.k8s_min import Probe
-from google.cloud.run_v2.types.k8s_min import ResourceRequirements
-from google.cloud.run_v2.types.k8s_min import SecretKeySelector
-from google.cloud.run_v2.types.k8s_min import SecretVolumeSource
-from google.cloud.run_v2.types.k8s_min import TCPSocketAction
-from google.cloud.run_v2.types.k8s_min import VersionToPath
-from google.cloud.run_v2.types.k8s_min import Volume
-from google.cloud.run_v2.types.k8s_min import VolumeMount
-from google.cloud.run_v2.types.revision import DeleteRevisionRequest
-from google.cloud.run_v2.types.revision import GetRevisionRequest
-from google.cloud.run_v2.types.revision import ListRevisionsRequest
-from google.cloud.run_v2.types.revision import ListRevisionsResponse
-from google.cloud.run_v2.types.revision import Revision
-from google.cloud.run_v2.types.revision_template import RevisionTemplate
-from google.cloud.run_v2.types.service import CreateServiceRequest
-from google.cloud.run_v2.types.service import DeleteServiceRequest
-from google.cloud.run_v2.types.service import GetServiceRequest
-from google.cloud.run_v2.types.service import ListServicesRequest
-from google.cloud.run_v2.types.service import ListServicesResponse
-from google.cloud.run_v2.types.service import Service
-from google.cloud.run_v2.types.service import UpdateServiceRequest
-from google.cloud.run_v2.types.status import RevisionScalingStatus
-from google.cloud.run_v2.types.task import GetTaskRequest
-from google.cloud.run_v2.types.task import ListTasksRequest
-from google.cloud.run_v2.types.task import ListTasksResponse
-from google.cloud.run_v2.types.task import Task
-from google.cloud.run_v2.types.task import TaskAttemptResult
-from google.cloud.run_v2.types.task_template import TaskTemplate
-from google.cloud.run_v2.types.traffic_target import TrafficTarget
-from google.cloud.run_v2.types.traffic_target import TrafficTargetStatus
-from google.cloud.run_v2.types.traffic_target import TrafficTargetAllocationType
-from google.cloud.run_v2.types.vendor_settings import BinaryAuthorization
-from google.cloud.run_v2.types.vendor_settings import NodeSelector
-from google.cloud.run_v2.types.vendor_settings import RevisionScaling
-from google.cloud.run_v2.types.vendor_settings import ServiceMesh
-from google.cloud.run_v2.types.vendor_settings import ServiceScaling
-from google.cloud.run_v2.types.vendor_settings import VpcAccess
-from google.cloud.run_v2.types.vendor_settings import EncryptionKeyRevocationAction
-from google.cloud.run_v2.types.vendor_settings import ExecutionEnvironment
-from google.cloud.run_v2.types.vendor_settings import IngressTraffic
-
-__all__ = ('BuildsClient',
-    'BuildsAsyncClient',
-    'ExecutionsClient',
-    'ExecutionsAsyncClient',
-    'JobsClient',
-    'JobsAsyncClient',
-    'RevisionsClient',
-    'RevisionsAsyncClient',
-    'ServicesClient',
-    'ServicesAsyncClient',
-    'TasksClient',
-    'TasksAsyncClient',
-    'StorageSource',
-    'SubmitBuildRequest',
-    'SubmitBuildResponse',
-    'Condition',
-    'CancelExecutionRequest',
-    'DeleteExecutionRequest',
-    'Execution',
-    'GetExecutionRequest',
-    'ListExecutionsRequest',
-    'ListExecutionsResponse',
-    'ExecutionTemplate',
-    'CreateJobRequest',
-    'DeleteJobRequest',
-    'ExecutionReference',
-    'GetJobRequest',
-    'Job',
-    'ListJobsRequest',
-    'ListJobsResponse',
-    'RunJobRequest',
-    'UpdateJobRequest',
-    'CloudSqlInstance',
-    'Container',
-    'ContainerPort',
-    'EmptyDirVolumeSource',
-    'EnvVar',
-    'EnvVarSource',
-    'GCSVolumeSource',
-    'GRPCAction',
-    'HTTPGetAction',
-    'HTTPHeader',
-    'NFSVolumeSource',
-    'Probe',
-    'ResourceRequirements',
-    'SecretKeySelector',
-    'SecretVolumeSource',
-    'TCPSocketAction',
-    'VersionToPath',
-    'Volume',
-    'VolumeMount',
-    'DeleteRevisionRequest',
-    'GetRevisionRequest',
-    'ListRevisionsRequest',
-    'ListRevisionsResponse',
-    'Revision',
-    'RevisionTemplate',
-    'CreateServiceRequest',
-    'DeleteServiceRequest',
-    'GetServiceRequest',
-    'ListServicesRequest',
-    'ListServicesResponse',
-    'Service',
-    'UpdateServiceRequest',
-    'RevisionScalingStatus',
-    'GetTaskRequest',
-    'ListTasksRequest',
-    'ListTasksResponse',
-    'Task',
-    'TaskAttemptResult',
-    'TaskTemplate',
-    'TrafficTarget',
-    'TrafficTargetStatus',
-    'TrafficTargetAllocationType',
-    'BinaryAuthorization',
-    'NodeSelector',
-    'RevisionScaling',
-    'ServiceMesh',
-    'ServiceScaling',
-    'VpcAccess',
-    'EncryptionKeyRevocationAction',
-    'ExecutionEnvironment',
-    'IngressTraffic',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/gapic_version.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/gapic_version.py
deleted file mode 100644
index 558c8aab67c5..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/gapic_version.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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__ = "0.0.0"  # {x-release-please-version}
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/py.typed b/owl-bot-staging/google-cloud-run/v2/google/cloud/run/py.typed
deleted file mode 100644
index a94ba234c15c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run/py.typed
+++ /dev/null
@@ -1,2 +0,0 @@
-# Marker file for PEP 561.
-# The google-cloud-run package uses inline types.
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/__init__.py
deleted file mode 100644
index 91fbabf21ae7..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/__init__.py
+++ /dev/null
@@ -1,190 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from google.cloud.run_v2 import gapic_version as package_version
-
-__version__ = package_version.__version__
-
-
-from .services.builds import BuildsClient
-from .services.builds import BuildsAsyncClient
-from .services.executions import ExecutionsClient
-from .services.executions import ExecutionsAsyncClient
-from .services.jobs import JobsClient
-from .services.jobs import JobsAsyncClient
-from .services.revisions import RevisionsClient
-from .services.revisions import RevisionsAsyncClient
-from .services.services import ServicesClient
-from .services.services import ServicesAsyncClient
-from .services.tasks import TasksClient
-from .services.tasks import TasksAsyncClient
-
-from .types.build import StorageSource
-from .types.build import SubmitBuildRequest
-from .types.build import SubmitBuildResponse
-from .types.condition import Condition
-from .types.execution import CancelExecutionRequest
-from .types.execution import DeleteExecutionRequest
-from .types.execution import Execution
-from .types.execution import GetExecutionRequest
-from .types.execution import ListExecutionsRequest
-from .types.execution import ListExecutionsResponse
-from .types.execution_template import ExecutionTemplate
-from .types.job import CreateJobRequest
-from .types.job import DeleteJobRequest
-from .types.job import ExecutionReference
-from .types.job import GetJobRequest
-from .types.job import Job
-from .types.job import ListJobsRequest
-from .types.job import ListJobsResponse
-from .types.job import RunJobRequest
-from .types.job import UpdateJobRequest
-from .types.k8s_min import CloudSqlInstance
-from .types.k8s_min import Container
-from .types.k8s_min import ContainerPort
-from .types.k8s_min import EmptyDirVolumeSource
-from .types.k8s_min import EnvVar
-from .types.k8s_min import EnvVarSource
-from .types.k8s_min import GCSVolumeSource
-from .types.k8s_min import GRPCAction
-from .types.k8s_min import HTTPGetAction
-from .types.k8s_min import HTTPHeader
-from .types.k8s_min import NFSVolumeSource
-from .types.k8s_min import Probe
-from .types.k8s_min import ResourceRequirements
-from .types.k8s_min import SecretKeySelector
-from .types.k8s_min import SecretVolumeSource
-from .types.k8s_min import TCPSocketAction
-from .types.k8s_min import VersionToPath
-from .types.k8s_min import Volume
-from .types.k8s_min import VolumeMount
-from .types.revision import DeleteRevisionRequest
-from .types.revision import GetRevisionRequest
-from .types.revision import ListRevisionsRequest
-from .types.revision import ListRevisionsResponse
-from .types.revision import Revision
-from .types.revision_template import RevisionTemplate
-from .types.service import CreateServiceRequest
-from .types.service import DeleteServiceRequest
-from .types.service import GetServiceRequest
-from .types.service import ListServicesRequest
-from .types.service import ListServicesResponse
-from .types.service import Service
-from .types.service import UpdateServiceRequest
-from .types.status import RevisionScalingStatus
-from .types.task import GetTaskRequest
-from .types.task import ListTasksRequest
-from .types.task import ListTasksResponse
-from .types.task import Task
-from .types.task import TaskAttemptResult
-from .types.task_template import TaskTemplate
-from .types.traffic_target import TrafficTarget
-from .types.traffic_target import TrafficTargetStatus
-from .types.traffic_target import TrafficTargetAllocationType
-from .types.vendor_settings import BinaryAuthorization
-from .types.vendor_settings import NodeSelector
-from .types.vendor_settings import RevisionScaling
-from .types.vendor_settings import ServiceMesh
-from .types.vendor_settings import ServiceScaling
-from .types.vendor_settings import VpcAccess
-from .types.vendor_settings import EncryptionKeyRevocationAction
-from .types.vendor_settings import ExecutionEnvironment
-from .types.vendor_settings import IngressTraffic
-
-__all__ = (
-    'BuildsAsyncClient',
-    'ExecutionsAsyncClient',
-    'JobsAsyncClient',
-    'RevisionsAsyncClient',
-    'ServicesAsyncClient',
-    'TasksAsyncClient',
-'BinaryAuthorization',
-'BuildsClient',
-'CancelExecutionRequest',
-'CloudSqlInstance',
-'Condition',
-'Container',
-'ContainerPort',
-'CreateJobRequest',
-'CreateServiceRequest',
-'DeleteExecutionRequest',
-'DeleteJobRequest',
-'DeleteRevisionRequest',
-'DeleteServiceRequest',
-'EmptyDirVolumeSource',
-'EncryptionKeyRevocationAction',
-'EnvVar',
-'EnvVarSource',
-'Execution',
-'ExecutionEnvironment',
-'ExecutionReference',
-'ExecutionTemplate',
-'ExecutionsClient',
-'GCSVolumeSource',
-'GRPCAction',
-'GetExecutionRequest',
-'GetJobRequest',
-'GetRevisionRequest',
-'GetServiceRequest',
-'GetTaskRequest',
-'HTTPGetAction',
-'HTTPHeader',
-'IngressTraffic',
-'Job',
-'JobsClient',
-'ListExecutionsRequest',
-'ListExecutionsResponse',
-'ListJobsRequest',
-'ListJobsResponse',
-'ListRevisionsRequest',
-'ListRevisionsResponse',
-'ListServicesRequest',
-'ListServicesResponse',
-'ListTasksRequest',
-'ListTasksResponse',
-'NFSVolumeSource',
-'NodeSelector',
-'Probe',
-'ResourceRequirements',
-'Revision',
-'RevisionScaling',
-'RevisionScalingStatus',
-'RevisionTemplate',
-'RevisionsClient',
-'RunJobRequest',
-'SecretKeySelector',
-'SecretVolumeSource',
-'Service',
-'ServiceMesh',
-'ServiceScaling',
-'ServicesClient',
-'StorageSource',
-'SubmitBuildRequest',
-'SubmitBuildResponse',
-'TCPSocketAction',
-'Task',
-'TaskAttemptResult',
-'TaskTemplate',
-'TasksClient',
-'TrafficTarget',
-'TrafficTargetAllocationType',
-'TrafficTargetStatus',
-'UpdateJobRequest',
-'UpdateServiceRequest',
-'VersionToPath',
-'Volume',
-'VolumeMount',
-'VpcAccess',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_metadata.json b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_metadata.json
deleted file mode 100644
index 3f193aa3f5a1..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_metadata.json
+++ /dev/null
@@ -1,528 +0,0 @@
- {
-  "comment": "This file maps proto services/RPCs to the corresponding library clients/methods",
-  "language": "python",
-  "libraryPackage": "google.cloud.run_v2",
-  "protoPackage": "google.cloud.run.v2",
-  "schema": "1.0",
-  "services": {
-    "Builds": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "BuildsClient",
-          "rpcs": {
-            "SubmitBuild": {
-              "methods": [
-                "submit_build"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "BuildsAsyncClient",
-          "rpcs": {
-            "SubmitBuild": {
-              "methods": [
-                "submit_build"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "BuildsClient",
-          "rpcs": {
-            "SubmitBuild": {
-              "methods": [
-                "submit_build"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "Executions": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "ExecutionsClient",
-          "rpcs": {
-            "CancelExecution": {
-              "methods": [
-                "cancel_execution"
-              ]
-            },
-            "DeleteExecution": {
-              "methods": [
-                "delete_execution"
-              ]
-            },
-            "GetExecution": {
-              "methods": [
-                "get_execution"
-              ]
-            },
-            "ListExecutions": {
-              "methods": [
-                "list_executions"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "ExecutionsAsyncClient",
-          "rpcs": {
-            "CancelExecution": {
-              "methods": [
-                "cancel_execution"
-              ]
-            },
-            "DeleteExecution": {
-              "methods": [
-                "delete_execution"
-              ]
-            },
-            "GetExecution": {
-              "methods": [
-                "get_execution"
-              ]
-            },
-            "ListExecutions": {
-              "methods": [
-                "list_executions"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "ExecutionsClient",
-          "rpcs": {
-            "CancelExecution": {
-              "methods": [
-                "cancel_execution"
-              ]
-            },
-            "DeleteExecution": {
-              "methods": [
-                "delete_execution"
-              ]
-            },
-            "GetExecution": {
-              "methods": [
-                "get_execution"
-              ]
-            },
-            "ListExecutions": {
-              "methods": [
-                "list_executions"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "Jobs": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "JobsClient",
-          "rpcs": {
-            "CreateJob": {
-              "methods": [
-                "create_job"
-              ]
-            },
-            "DeleteJob": {
-              "methods": [
-                "delete_job"
-              ]
-            },
-            "GetIamPolicy": {
-              "methods": [
-                "get_iam_policy"
-              ]
-            },
-            "GetJob": {
-              "methods": [
-                "get_job"
-              ]
-            },
-            "ListJobs": {
-              "methods": [
-                "list_jobs"
-              ]
-            },
-            "RunJob": {
-              "methods": [
-                "run_job"
-              ]
-            },
-            "SetIamPolicy": {
-              "methods": [
-                "set_iam_policy"
-              ]
-            },
-            "TestIamPermissions": {
-              "methods": [
-                "test_iam_permissions"
-              ]
-            },
-            "UpdateJob": {
-              "methods": [
-                "update_job"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "JobsAsyncClient",
-          "rpcs": {
-            "CreateJob": {
-              "methods": [
-                "create_job"
-              ]
-            },
-            "DeleteJob": {
-              "methods": [
-                "delete_job"
-              ]
-            },
-            "GetIamPolicy": {
-              "methods": [
-                "get_iam_policy"
-              ]
-            },
-            "GetJob": {
-              "methods": [
-                "get_job"
-              ]
-            },
-            "ListJobs": {
-              "methods": [
-                "list_jobs"
-              ]
-            },
-            "RunJob": {
-              "methods": [
-                "run_job"
-              ]
-            },
-            "SetIamPolicy": {
-              "methods": [
-                "set_iam_policy"
-              ]
-            },
-            "TestIamPermissions": {
-              "methods": [
-                "test_iam_permissions"
-              ]
-            },
-            "UpdateJob": {
-              "methods": [
-                "update_job"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "JobsClient",
-          "rpcs": {
-            "CreateJob": {
-              "methods": [
-                "create_job"
-              ]
-            },
-            "DeleteJob": {
-              "methods": [
-                "delete_job"
-              ]
-            },
-            "GetIamPolicy": {
-              "methods": [
-                "get_iam_policy"
-              ]
-            },
-            "GetJob": {
-              "methods": [
-                "get_job"
-              ]
-            },
-            "ListJobs": {
-              "methods": [
-                "list_jobs"
-              ]
-            },
-            "RunJob": {
-              "methods": [
-                "run_job"
-              ]
-            },
-            "SetIamPolicy": {
-              "methods": [
-                "set_iam_policy"
-              ]
-            },
-            "TestIamPermissions": {
-              "methods": [
-                "test_iam_permissions"
-              ]
-            },
-            "UpdateJob": {
-              "methods": [
-                "update_job"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "Revisions": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "RevisionsClient",
-          "rpcs": {
-            "DeleteRevision": {
-              "methods": [
-                "delete_revision"
-              ]
-            },
-            "GetRevision": {
-              "methods": [
-                "get_revision"
-              ]
-            },
-            "ListRevisions": {
-              "methods": [
-                "list_revisions"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "RevisionsAsyncClient",
-          "rpcs": {
-            "DeleteRevision": {
-              "methods": [
-                "delete_revision"
-              ]
-            },
-            "GetRevision": {
-              "methods": [
-                "get_revision"
-              ]
-            },
-            "ListRevisions": {
-              "methods": [
-                "list_revisions"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "RevisionsClient",
-          "rpcs": {
-            "DeleteRevision": {
-              "methods": [
-                "delete_revision"
-              ]
-            },
-            "GetRevision": {
-              "methods": [
-                "get_revision"
-              ]
-            },
-            "ListRevisions": {
-              "methods": [
-                "list_revisions"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "Services": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "ServicesClient",
-          "rpcs": {
-            "CreateService": {
-              "methods": [
-                "create_service"
-              ]
-            },
-            "DeleteService": {
-              "methods": [
-                "delete_service"
-              ]
-            },
-            "GetIamPolicy": {
-              "methods": [
-                "get_iam_policy"
-              ]
-            },
-            "GetService": {
-              "methods": [
-                "get_service"
-              ]
-            },
-            "ListServices": {
-              "methods": [
-                "list_services"
-              ]
-            },
-            "SetIamPolicy": {
-              "methods": [
-                "set_iam_policy"
-              ]
-            },
-            "TestIamPermissions": {
-              "methods": [
-                "test_iam_permissions"
-              ]
-            },
-            "UpdateService": {
-              "methods": [
-                "update_service"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "ServicesAsyncClient",
-          "rpcs": {
-            "CreateService": {
-              "methods": [
-                "create_service"
-              ]
-            },
-            "DeleteService": {
-              "methods": [
-                "delete_service"
-              ]
-            },
-            "GetIamPolicy": {
-              "methods": [
-                "get_iam_policy"
-              ]
-            },
-            "GetService": {
-              "methods": [
-                "get_service"
-              ]
-            },
-            "ListServices": {
-              "methods": [
-                "list_services"
-              ]
-            },
-            "SetIamPolicy": {
-              "methods": [
-                "set_iam_policy"
-              ]
-            },
-            "TestIamPermissions": {
-              "methods": [
-                "test_iam_permissions"
-              ]
-            },
-            "UpdateService": {
-              "methods": [
-                "update_service"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "ServicesClient",
-          "rpcs": {
-            "CreateService": {
-              "methods": [
-                "create_service"
-              ]
-            },
-            "DeleteService": {
-              "methods": [
-                "delete_service"
-              ]
-            },
-            "GetIamPolicy": {
-              "methods": [
-                "get_iam_policy"
-              ]
-            },
-            "GetService": {
-              "methods": [
-                "get_service"
-              ]
-            },
-            "ListServices": {
-              "methods": [
-                "list_services"
-              ]
-            },
-            "SetIamPolicy": {
-              "methods": [
-                "set_iam_policy"
-              ]
-            },
-            "TestIamPermissions": {
-              "methods": [
-                "test_iam_permissions"
-              ]
-            },
-            "UpdateService": {
-              "methods": [
-                "update_service"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "Tasks": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "TasksClient",
-          "rpcs": {
-            "GetTask": {
-              "methods": [
-                "get_task"
-              ]
-            },
-            "ListTasks": {
-              "methods": [
-                "list_tasks"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "TasksAsyncClient",
-          "rpcs": {
-            "GetTask": {
-              "methods": [
-                "get_task"
-              ]
-            },
-            "ListTasks": {
-              "methods": [
-                "list_tasks"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "TasksClient",
-          "rpcs": {
-            "GetTask": {
-              "methods": [
-                "get_task"
-              ]
-            },
-            "ListTasks": {
-              "methods": [
-                "list_tasks"
-              ]
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_version.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_version.py
deleted file mode 100644
index 558c8aab67c5..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/gapic_version.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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__ = "0.0.0"  # {x-release-please-version}
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/py.typed b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/py.typed
deleted file mode 100644
index a94ba234c15c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/py.typed
+++ /dev/null
@@ -1,2 +0,0 @@
-# Marker file for PEP 561.
-# The google-cloud-run package uses inline types.
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/__init__.py
deleted file mode 100644
index 8f6cf068242c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/__init__.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/__init__.py
deleted file mode 100644
index 4ca26c4d7f96..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from .client import BuildsClient
-from .async_client import BuildsAsyncClient
-
-__all__ = (
-    'BuildsClient',
-    'BuildsAsyncClient',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/async_client.py
deleted file mode 100644
index b95464b5bcff..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/async_client.py
+++ /dev/null
@@ -1,535 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core.client_options import ClientOptions
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry_async as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-
-try:
-    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import build
-from google.longrunning import operations_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from .transports.base import BuildsTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import BuildsGrpcAsyncIOTransport
-from .client import BuildsClient
-
-
-class BuildsAsyncClient:
-    """Cloud Run Build Control Plane API"""
-
-    _client: BuildsClient
-
-    # Copy defaults from the synchronous client for use here.
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = BuildsClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = BuildsClient.DEFAULT_MTLS_ENDPOINT
-    _DEFAULT_ENDPOINT_TEMPLATE = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE
-    _DEFAULT_UNIVERSE = BuildsClient._DEFAULT_UNIVERSE
-
-    worker_pool_path = staticmethod(BuildsClient.worker_pool_path)
-    parse_worker_pool_path = staticmethod(BuildsClient.parse_worker_pool_path)
-    common_billing_account_path = staticmethod(BuildsClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(BuildsClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(BuildsClient.common_folder_path)
-    parse_common_folder_path = staticmethod(BuildsClient.parse_common_folder_path)
-    common_organization_path = staticmethod(BuildsClient.common_organization_path)
-    parse_common_organization_path = staticmethod(BuildsClient.parse_common_organization_path)
-    common_project_path = staticmethod(BuildsClient.common_project_path)
-    parse_common_project_path = staticmethod(BuildsClient.parse_common_project_path)
-    common_location_path = staticmethod(BuildsClient.common_location_path)
-    parse_common_location_path = staticmethod(BuildsClient.parse_common_location_path)
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            BuildsAsyncClient: The constructed client.
-        """
-        return BuildsClient.from_service_account_info.__func__(BuildsAsyncClient, info, *args, **kwargs)  # type: ignore
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            BuildsAsyncClient: The constructed client.
-        """
-        return BuildsClient.from_service_account_file.__func__(BuildsAsyncClient, filename, *args, **kwargs)  # type: ignore
-
-    from_service_account_json = from_service_account_file
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
-        """Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-        return BuildsClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> BuildsTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            BuildsTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._client._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used
-                by the client instance.
-        """
-        return self._client._universe_domain
-
-    get_transport_class = BuildsClient.get_transport_class
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, BuildsTransport, Callable[..., BuildsTransport]]] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the builds async client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,BuildsTransport,Callable[..., BuildsTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport to use.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the BuildsTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = BuildsClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def submit_build(self,
-            request: Optional[Union[build.SubmitBuildRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> build.SubmitBuildResponse:
-        r"""Submits a build in a given project.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_submit_build():
-                # Create a client
-                client = run_v2.BuildsAsyncClient()
-
-                # Initialize request argument(s)
-                storage_source = run_v2.StorageSource()
-                storage_source.bucket = "bucket_value"
-                storage_source.object_ = "object__value"
-
-                request = run_v2.SubmitBuildRequest(
-                    storage_source=storage_source,
-                    parent="parent_value",
-                    image_uri="image_uri_value",
-                )
-
-                # Make the request
-                response = await client.submit_build(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.SubmitBuildRequest, dict]]):
-                The request object. Request message for submitting a
-                Build.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.SubmitBuildResponse:
-                Response message for submitting a
-                Build.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, build.SubmitBuildRequest):
-            request = build.SubmitBuildRequest(request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.submit_build]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("parent", request.parent),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    async def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "BuildsAsyncClient":
-        return self
-
-    async def __aexit__(self, exc_type, exc, tb):
-        await self.transport.close()
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "BuildsAsyncClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/client.py
deleted file mode 100644
index c6f760d47ad9..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/client.py
+++ /dev/null
@@ -1,865 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import os
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-import warnings
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core import client_options as client_options_lib
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials             # type: ignore
-from google.auth.transport import mtls                            # type: ignore
-from google.auth.transport.grpc import SslCredentials             # type: ignore
-from google.auth.exceptions import MutualTLSChannelError          # type: ignore
-from google.oauth2 import service_account                         # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import build
-from google.longrunning import operations_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from .transports.base import BuildsTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import BuildsGrpcTransport
-from .transports.grpc_asyncio import BuildsGrpcAsyncIOTransport
-from .transports.rest import BuildsRestTransport
-
-
-class BuildsClientMeta(type):
-    """Metaclass for the Builds client.
-
-    This provides class-level methods for building and retrieving
-    support objects (e.g. transport) without polluting the client instance
-    objects.
-    """
-    _transport_registry = OrderedDict()  # type: Dict[str, Type[BuildsTransport]]
-    _transport_registry["grpc"] = BuildsGrpcTransport
-    _transport_registry["grpc_asyncio"] = BuildsGrpcAsyncIOTransport
-    _transport_registry["rest"] = BuildsRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[BuildsTransport]:
-        """Returns an appropriate transport class.
-
-        Args:
-            label: The name of the desired transport. If none is
-                provided, then the first transport in the registry is used.
-
-        Returns:
-            The transport class to use.
-        """
-        # If a specific transport is requested, return that one.
-        if label:
-            return cls._transport_registry[label]
-
-        # No transport is requested; return the default (that is, the first one
-        # in the dictionary).
-        return next(iter(cls._transport_registry.values()))
-
-
-class BuildsClient(metaclass=BuildsClientMeta):
-    """Cloud Run Build Control Plane API"""
-
-    @staticmethod
-    def _get_default_mtls_endpoint(api_endpoint):
-        """Converts api endpoint to mTLS endpoint.
-
-        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
-        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
-        Args:
-            api_endpoint (Optional[str]): the api endpoint to convert.
-        Returns:
-            str: converted mTLS api endpoint.
-        """
-        if not api_endpoint:
-            return api_endpoint
-
-        mtls_endpoint_re = re.compile(
-            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
-        )
-
-        m = mtls_endpoint_re.match(api_endpoint)
-        name, mtls, sandbox, googledomain = m.groups()
-        if mtls or not googledomain:
-            return api_endpoint
-
-        if sandbox:
-            return api_endpoint.replace(
-                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
-            )
-
-        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
-
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = "run.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
-    _DEFAULT_UNIVERSE = "googleapis.com"
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            BuildsClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_info(info)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            BuildsClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_file(
-            filename)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    from_service_account_json = from_service_account_file
-
-    @property
-    def transport(self) -> BuildsTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            BuildsTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @staticmethod
-    def worker_pool_path(project: str,location: str,worker_pool: str,) -> str:
-        """Returns a fully-qualified worker_pool string."""
-        return "projects/{project}/locations/{location}/workerPools/{worker_pool}".format(project=project, location=location, worker_pool=worker_pool, )
-
-    @staticmethod
-    def parse_worker_pool_path(path: str) -> Dict[str,str]:
-        """Parses a worker_pool path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/workerPools/(?P<worker_pool>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_billing_account_path(billing_account: str, ) -> str:
-        """Returns a fully-qualified billing_account string."""
-        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-
-    @staticmethod
-    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
-        """Parse a billing_account path into its component segments."""
-        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_folder_path(folder: str, ) -> str:
-        """Returns a fully-qualified folder string."""
-        return "folders/{folder}".format(folder=folder, )
-
-    @staticmethod
-    def parse_common_folder_path(path: str) -> Dict[str,str]:
-        """Parse a folder path into its component segments."""
-        m = re.match(r"^folders/(?P<folder>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_organization_path(organization: str, ) -> str:
-        """Returns a fully-qualified organization string."""
-        return "organizations/{organization}".format(organization=organization, )
-
-    @staticmethod
-    def parse_common_organization_path(path: str) -> Dict[str,str]:
-        """Parse a organization path into its component segments."""
-        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_project_path(project: str, ) -> str:
-        """Returns a fully-qualified project string."""
-        return "projects/{project}".format(project=project, )
-
-    @staticmethod
-    def parse_common_project_path(path: str) -> Dict[str,str]:
-        """Parse a project path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_location_path(project: str, location: str, ) -> str:
-        """Returns a fully-qualified location string."""
-        return "projects/{project}/locations/{location}".format(project=project, location=location, )
-
-    @staticmethod
-    def parse_common_location_path(path: str) -> Dict[str,str]:
-        """Parse a location path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
-        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-
-        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
-            DeprecationWarning)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-
-        # Figure out the client cert source to use.
-        client_cert_source = None
-        if use_client_cert == "true":
-            if client_options.client_cert_source:
-                client_cert_source = client_options.client_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-
-        # Figure out which api endpoint to use.
-        if client_options.api_endpoint is not None:
-            api_endpoint = client_options.api_endpoint
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = cls.DEFAULT_ENDPOINT
-
-        return api_endpoint, client_cert_source
-
-    @staticmethod
-    def _read_environment_variables():
-        """Returns the environment variables used by the client.
-
-        Returns:
-            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
-            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
-
-        Raises:
-            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
-                any of ["true", "false"].
-            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
-                is not any of ["auto", "never", "always"].
-        """
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
-        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
-
-    @staticmethod
-    def _get_client_cert_source(provided_cert_source, use_cert_flag):
-        """Return the client cert source to be used by the client.
-
-        Args:
-            provided_cert_source (bytes): The client certificate source provided.
-            use_cert_flag (bool): A flag indicating whether to use the client certificate.
-
-        Returns:
-            bytes or None: The client cert source to be used by the client.
-        """
-        client_cert_source = None
-        if use_cert_flag:
-            if provided_cert_source:
-                client_cert_source = provided_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-        return client_cert_source
-
-    @staticmethod
-    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
-        """Return the API endpoint used by the client.
-
-        Args:
-            api_override (str): The API endpoint override. If specified, this is always
-                the return value of this function and the other arguments are not used.
-            client_cert_source (bytes): The client certificate source used by the client.
-            universe_domain (str): The universe domain used by the client.
-            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
-                Possible values are "always", "auto", or "never".
-
-        Returns:
-            str: The API endpoint to be used by the client.
-        """
-        if api_override is not None:
-            api_endpoint = api_override
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            _default_universe = BuildsClient._DEFAULT_UNIVERSE
-            if universe_domain != _default_universe:
-                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
-            api_endpoint = BuildsClient.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
-        return api_endpoint
-
-    @staticmethod
-    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
-        """Return the universe domain used by the client.
-
-        Args:
-            client_universe_domain (Optional[str]): The universe domain configured via the client options.
-            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
-
-        Returns:
-            str: The universe domain to be used by the client.
-
-        Raises:
-            ValueError: If the universe domain is an empty string.
-        """
-        universe_domain = BuildsClient._DEFAULT_UNIVERSE
-        if client_universe_domain is not None:
-            universe_domain = client_universe_domain
-        elif universe_domain_env is not None:
-            universe_domain = universe_domain_env
-        if len(universe_domain.strip()) == 0:
-            raise ValueError("Universe Domain cannot be an empty string.")
-        return universe_domain
-
-    def _validate_universe_domain(self):
-        """Validates client's and credentials' universe domains are consistent.
-
-        Returns:
-            bool: True iff the configured universe domain is valid.
-
-        Raises:
-            ValueError: If the configured universe domain is not valid.
-        """
-
-        # NOTE (b/349488459): universe validation is disabled until further notice.
-        return True
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used by the client instance.
-        """
-        return self._universe_domain
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, BuildsTransport, Callable[..., BuildsTransport]]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the builds client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,BuildsTransport,Callable[..., BuildsTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the BuildsTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that the ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client_options = client_options
-        if isinstance(self._client_options, dict):
-            self._client_options = client_options_lib.from_dict(self._client_options)
-        if self._client_options is None:
-            self._client_options = client_options_lib.ClientOptions()
-        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
-
-        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
-
-        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = BuildsClient._read_environment_variables()
-        self._client_cert_source = BuildsClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
-        self._universe_domain = BuildsClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
-        self._api_endpoint = None # updated below, depending on `transport`
-
-        # Initialize the universe domain validation.
-        self._is_universe_domain_valid = False
-
-        api_key_value = getattr(self._client_options, "api_key", None)
-        if api_key_value and credentials:
-            raise ValueError("client_options.api_key and credentials are mutually exclusive")
-
-        # Save or instantiate the transport.
-        # Ordinarily, we provide the transport, but allowing a custom transport
-        # instance provides an extensibility point for unusual situations.
-        transport_provided = isinstance(transport, BuildsTransport)
-        if transport_provided:
-            # transport is a BuildsTransport instance.
-            if credentials or self._client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if self._client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = cast(BuildsTransport, transport)
-            self._api_endpoint = self._transport.host
-
-        self._api_endpoint = (self._api_endpoint or
-            BuildsClient._get_api_endpoint(
-                self._client_options.api_endpoint,
-                self._client_cert_source,
-                self._universe_domain,
-                self._use_mtls_endpoint))
-
-        if not transport_provided:
-            import google.auth._default  # type: ignore
-
-            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
-                credentials = google.auth._default.get_api_key_credentials(api_key_value)
-
-            transport_init: Union[Type[BuildsTransport], Callable[..., BuildsTransport]] = (
-                BuildsClient.get_transport_class(transport)
-                if isinstance(transport, str) or transport is None
-                else cast(Callable[..., BuildsTransport], transport)
-            )
-            # initialize with the provided callable or the passed in class
-            self._transport = transport_init(
-                credentials=credentials,
-                credentials_file=self._client_options.credentials_file,
-                host=self._api_endpoint,
-                scopes=self._client_options.scopes,
-                client_cert_source_for_mtls=self._client_cert_source,
-                quota_project_id=self._client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=self._client_options.api_audience,
-            )
-
-    def submit_build(self,
-            request: Optional[Union[build.SubmitBuildRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> build.SubmitBuildResponse:
-        r"""Submits a build in a given project.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_submit_build():
-                # Create a client
-                client = run_v2.BuildsClient()
-
-                # Initialize request argument(s)
-                storage_source = run_v2.StorageSource()
-                storage_source.bucket = "bucket_value"
-                storage_source.object_ = "object__value"
-
-                request = run_v2.SubmitBuildRequest(
-                    storage_source=storage_source,
-                    parent="parent_value",
-                    image_uri="image_uri_value",
-                )
-
-                # Make the request
-                response = client.submit_build(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.SubmitBuildRequest, dict]):
-                The request object. Request message for submitting a
-                Build.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.SubmitBuildResponse:
-                Response message for submitting a
-                Build.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, build.SubmitBuildRequest):
-            request = build.SubmitBuildRequest(request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.submit_build]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("parent", request.parent),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "BuildsClient":
-        return self
-
-    def __exit__(self, type, value, traceback):
-        """Releases underlying transport's resources.
-
-        .. warning::
-            ONLY use as a context manager if the transport is NOT shared
-            with other clients! Exiting the with block will CLOSE the transport
-            and may cause errors in other clients!
-        """
-        self.transport.close()
-
-    def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "BuildsClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/README.rst
deleted file mode 100644
index eb8929cb53d9..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/README.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-
-transport inheritance structure
-_______________________________
-
-`BuildsTransport` is the ABC for all transports.
-- public child `BuildsGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
-- public child `BuildsGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
-- private child `_BaseBuildsRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
-- public child `BuildsRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/__init__.py
deleted file mode 100644
index 5b50ea34e1f4..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-from typing import Dict, Type
-
-from .base import BuildsTransport
-from .grpc import BuildsGrpcTransport
-from .grpc_asyncio import BuildsGrpcAsyncIOTransport
-from .rest import BuildsRestTransport
-from .rest import BuildsRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[BuildsTransport]]
-_transport_registry['grpc'] = BuildsGrpcTransport
-_transport_registry['grpc_asyncio'] = BuildsGrpcAsyncIOTransport
-_transport_registry['rest'] = BuildsRestTransport
-
-__all__ = (
-    'BuildsTransport',
-    'BuildsGrpcTransport',
-    'BuildsGrpcAsyncIOTransport',
-    'BuildsRestTransport',
-    'BuildsRestInterceptor',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/base.py
deleted file mode 100644
index b344d073254c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/base.py
+++ /dev/null
@@ -1,212 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 abc
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-import google.auth  # type: ignore
-import google.api_core
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.oauth2 import service_account # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import build
-from google.longrunning import operations_pb2 # type: ignore
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class BuildsTransport(abc.ABC):
-    """Abstract transport class for Builds."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'run.googleapis.com'
-    def __init__(
-            self, *,
-            host: str = DEFAULT_HOST,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            **kwargs,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A list of scopes.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-        """
-
-        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
-
-        # Save the scopes.
-        self._scopes = scopes
-        if not hasattr(self, "_ignore_credentials"):
-            self._ignore_credentials: bool = False
-
-        # If no credentials are provided, then determine the appropriate
-        # defaults.
-        if credentials and credentials_file:
-            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
-
-        if credentials_file is not None:
-            credentials, _ = google.auth.load_credentials_from_file(
-                                credentials_file,
-                                **scopes_kwargs,
-                                quota_project_id=quota_project_id
-                            )
-        elif credentials is None and not self._ignore_credentials:
-            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
-            # Don't apply audience if the credentials file passed from user.
-            if hasattr(credentials, "with_gdch_audience"):
-                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
-
-        # If the credentials are service account credentials, then always try to use self signed JWT.
-        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
-            credentials = credentials.with_always_use_jwt_access(True)
-
-        # Save the credentials.
-        self._credentials = credentials
-
-        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
-        if ':' not in host:
-            host += ':443'
-        self._host = host
-
-    @property
-    def host(self):
-        return self._host
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.submit_build: gapic_v1.method.wrap_method(
-                self.submit_build,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: gapic_v1.method.wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: gapic_v1.method.wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: gapic_v1.method.wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: gapic_v1.method.wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-         }
-
-    def close(self):
-        """Closes resources associated with the transport.
-
-       .. warning::
-            Only call this method if the transport is NOT shared
-            with other clients - this may cause errors in other clients!
-        """
-        raise NotImplementedError()
-
-    @property
-    def submit_build(self) -> Callable[
-            [build.SubmitBuildRequest],
-            Union[
-                build.SubmitBuildResponse,
-                Awaitable[build.SubmitBuildResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[
-        [operations_pb2.ListOperationsRequest],
-        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.GetOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.DeleteOperationRequest],
-        None,
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.WaitOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'BuildsTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc.py
deleted file mode 100644
index 4c9e861f9a71..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc.py
+++ /dev/null
@@ -1,344 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 warnings
-from typing import Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import grpc_helpers
-from google.api_core import gapic_v1
-import google.auth                         # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import build
-from google.longrunning import operations_pb2 # type: ignore
-from .base import BuildsTransport, DEFAULT_CLIENT_INFO
-
-
-class BuildsGrpcTransport(BuildsTransport):
-    """gRPC backend transport for Builds.
-
-    Cloud Run Build Control Plane API
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-    _stubs: Dict[str, Callable]
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[grpc.Channel, Callable[..., 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,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if a ``channel`` instance is provided.
-            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, grpc.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._prep_wrapped_messages(client_info)
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> grpc.Channel:
-        """Create and return a gRPC channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            grpc.Channel: A gRPC channel object.
-
-        Raises:
-            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-
-        return grpc_helpers.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    @property
-    def grpc_channel(self) -> grpc.Channel:
-        """Return the channel designed to connect to this service.
-        """
-        return self._grpc_channel
-
-    @property
-    def submit_build(self) -> Callable[
-            [build.SubmitBuildRequest],
-            build.SubmitBuildResponse]:
-        r"""Return a callable for the submit build method over gRPC.
-
-        Submits a build in a given project.
-
-        Returns:
-            Callable[[~.SubmitBuildRequest],
-                    ~.SubmitBuildResponse]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'submit_build' not in self._stubs:
-            self._stubs['submit_build'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Builds/SubmitBuild',
-                request_serializer=build.SubmitBuildRequest.serialize,
-                response_deserializer=build.SubmitBuildResponse.deserialize,
-            )
-        return self._stubs['submit_build']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'BuildsGrpcTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc_asyncio.py
deleted file mode 100644
index 607cdba8e8bf..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,385 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 inspect
-import warnings
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry_async as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc                        # type: ignore
-from grpc.experimental import aio  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import build
-from google.longrunning import operations_pb2 # type: ignore
-from .base import BuildsTransport, DEFAULT_CLIENT_INFO
-from .grpc import BuildsGrpcTransport
-
-
-class BuildsGrpcAsyncIOTransport(BuildsTransport):
-    """gRPC AsyncIO backend transport for Builds.
-
-    Cloud Run Build Control Plane API
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-
-    _grpc_channel: aio.Channel
-    _stubs: Dict[str, Callable] = {}
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> aio.Channel:
-        """Create and return a gRPC AsyncIO channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            aio.Channel: A gRPC AsyncIO channel object.
-        """
-
-        return grpc_helpers_async.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[aio.Channel, Callable[..., 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,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, aio.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def grpc_channel(self) -> aio.Channel:
-        """Create the channel designed to connect to this service.
-
-        This property caches on the instance; repeated calls return
-        the same channel.
-        """
-        # Return the channel from cache.
-        return self._grpc_channel
-
-    @property
-    def submit_build(self) -> Callable[
-            [build.SubmitBuildRequest],
-            Awaitable[build.SubmitBuildResponse]]:
-        r"""Return a callable for the submit build method over gRPC.
-
-        Submits a build in a given project.
-
-        Returns:
-            Callable[[~.SubmitBuildRequest],
-                    Awaitable[~.SubmitBuildResponse]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'submit_build' not in self._stubs:
-            self._stubs['submit_build'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Builds/SubmitBuild',
-                request_serializer=build.SubmitBuildRequest.serialize,
-                response_deserializer=build.SubmitBuildResponse.deserialize,
-            )
-        return self._stubs['submit_build']
-
-    def _prep_wrapped_messages(self, client_info):
-        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
-        self._wrapped_methods = {
-            self.submit_build: self._wrap_method(
-                self.submit_build,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: self._wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: self._wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: self._wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: self._wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-        }
-
-    def _wrap_method(self, func, *args, **kwargs):
-        if self._wrap_with_kind:  # pragma: NO COVER
-            kwargs["kind"] = self.kind
-        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
-
-    def close(self):
-        return self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc_asyncio"
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-
-__all__ = (
-    'BuildsGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest.py
deleted file mode 100644
index 2ce691d8e431..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest.py
+++ /dev/null
@@ -1,652 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-
-from google.auth.transport.requests import AuthorizedSession  # type: ignore
-import json  # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry as retries
-from google.api_core import rest_helpers
-from google.api_core import rest_streaming
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.cloud.location import locations_pb2 # type: ignore
-
-from requests import __version__ as requests_version
-import dataclasses
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-
-from google.cloud.run_v2.types import build
-from google.longrunning import operations_pb2  # type: ignore
-
-
-from .rest_base import _BaseBuildsRestTransport
-from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=f"requests@{requests_version}",
-)
-
-
-class BuildsRestInterceptor:
-    """Interceptor for Builds.
-
-    Interceptors are used to manipulate requests, request metadata, and responses
-    in arbitrary ways.
-    Example use cases include:
-    * Logging
-    * Verifying requests according to service or custom semantics
-    * Stripping extraneous information from responses
-
-    These use cases and more can be enabled by injecting an
-    instance of a custom subclass when constructing the BuildsRestTransport.
-
-    .. code-block:: python
-        class MyCustomBuildsInterceptor(BuildsRestInterceptor):
-            def pre_submit_build(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_submit_build(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = BuildsRestTransport(interceptor=MyCustomBuildsInterceptor())
-        client = BuildsClient(transport=transport)
-
-
-    """
-    def pre_submit_build(self, request: build.SubmitBuildRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[build.SubmitBuildRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for submit_build
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Builds server.
-        """
-        return request, metadata
-
-    def post_submit_build(self, response: build.SubmitBuildResponse) -> build.SubmitBuildResponse:
-        """Post-rpc interceptor for submit_build
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Builds server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_operation(
-        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Builds server.
-        """
-        return request, metadata
-
-    def post_delete_operation(
-        self, response: None
-    ) -> None:
-        """Post-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Builds server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_operation(
-        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Builds server.
-        """
-        return request, metadata
-
-    def post_get_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Builds server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_operations(
-        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Builds server.
-        """
-        return request, metadata
-
-    def post_list_operations(
-        self, response: operations_pb2.ListOperationsResponse
-    ) -> operations_pb2.ListOperationsResponse:
-        """Post-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Builds server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_wait_operation(
-        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Builds server.
-        """
-        return request, metadata
-
-    def post_wait_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Builds server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class BuildsRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: BuildsRestInterceptor
-
-
-class BuildsRestTransport(_BaseBuildsRestTransport):
-    """REST backend synchronous transport for Builds.
-
-    Cloud Run Build Control Plane API
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            url_scheme: str = 'https',
-            interceptor: Optional[BuildsRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
-                certificate to configure mutual TLS HTTP channel. It is ignored
-                if ``channel`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
-        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
-        # credentials object
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            url_scheme=url_scheme,
-            api_audience=api_audience
-        )
-        self._session = AuthorizedSession(
-            self._credentials, default_host=self.DEFAULT_HOST)
-        if client_cert_source_for_mtls:
-            self._session.configure_mtls_channel(client_cert_source_for_mtls)
-        self._interceptor = interceptor or BuildsRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    class _SubmitBuild(_BaseBuildsRestTransport._BaseSubmitBuild, BuildsRestStub):
-        def __hash__(self):
-            return hash("BuildsRestTransport.SubmitBuild")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: build.SubmitBuildRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> build.SubmitBuildResponse:
-            r"""Call the submit build method over HTTP.
-
-            Args:
-                request (~.build.SubmitBuildRequest):
-                    The request object. Request message for submitting a
-                Build.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.build.SubmitBuildResponse:
-                    Response message for submitting a
-                Build.
-
-            """
-
-            http_options = _BaseBuildsRestTransport._BaseSubmitBuild._get_http_options()
-            request, metadata = self._interceptor.pre_submit_build(request, metadata)
-            transcoded_request = _BaseBuildsRestTransport._BaseSubmitBuild._get_transcoded_request(http_options, request)
-
-            body = _BaseBuildsRestTransport._BaseSubmitBuild._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseBuildsRestTransport._BaseSubmitBuild._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = BuildsRestTransport._SubmitBuild._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = build.SubmitBuildResponse()
-            pb_resp = build.SubmitBuildResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_submit_build(resp)
-            return resp
-
-    @property
-    def submit_build(self) -> Callable[
-            [build.SubmitBuildRequest],
-            build.SubmitBuildResponse]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._SubmitBuild(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_operation(self):
-        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _DeleteOperation(_BaseBuildsRestTransport._BaseDeleteOperation, BuildsRestStub):
-        def __hash__(self):
-            return hash("BuildsRestTransport.DeleteOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.DeleteOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> None:
-
-            r"""Call the delete operation method over HTTP.
-
-            Args:
-                request (operations_pb2.DeleteOperationRequest):
-                    The request object for DeleteOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-            """
-
-            http_options = _BaseBuildsRestTransport._BaseDeleteOperation._get_http_options()
-            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
-            transcoded_request = _BaseBuildsRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseBuildsRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = BuildsRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            return self._interceptor.post_delete_operation(None)
-
-    @property
-    def get_operation(self):
-        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _GetOperation(_BaseBuildsRestTransport._BaseGetOperation, BuildsRestStub):
-        def __hash__(self):
-            return hash("BuildsRestTransport.GetOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.GetOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the get operation method over HTTP.
-
-            Args:
-                request (operations_pb2.GetOperationRequest):
-                    The request object for GetOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from GetOperation method.
-            """
-
-            http_options = _BaseBuildsRestTransport._BaseGetOperation._get_http_options()
-            request, metadata = self._interceptor.pre_get_operation(request, metadata)
-            transcoded_request = _BaseBuildsRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseBuildsRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = BuildsRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_get_operation(resp)
-            return resp
-
-    @property
-    def list_operations(self):
-        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
-
-    class _ListOperations(_BaseBuildsRestTransport._BaseListOperations, BuildsRestStub):
-        def __hash__(self):
-            return hash("BuildsRestTransport.ListOperations")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.ListOperationsRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.ListOperationsResponse:
-
-            r"""Call the list operations method over HTTP.
-
-            Args:
-                request (operations_pb2.ListOperationsRequest):
-                    The request object for ListOperations method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.ListOperationsResponse: Response from ListOperations method.
-            """
-
-            http_options = _BaseBuildsRestTransport._BaseListOperations._get_http_options()
-            request, metadata = self._interceptor.pre_list_operations(request, metadata)
-            transcoded_request = _BaseBuildsRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseBuildsRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = BuildsRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.ListOperationsResponse()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_list_operations(resp)
-            return resp
-
-    @property
-    def wait_operation(self):
-        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _WaitOperation(_BaseBuildsRestTransport._BaseWaitOperation, BuildsRestStub):
-        def __hash__(self):
-            return hash("BuildsRestTransport.WaitOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.WaitOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the wait operation method over HTTP.
-
-            Args:
-                request (operations_pb2.WaitOperationRequest):
-                    The request object for WaitOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from WaitOperation method.
-            """
-
-            http_options = _BaseBuildsRestTransport._BaseWaitOperation._get_http_options()
-            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
-            transcoded_request = _BaseBuildsRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
-
-            body = _BaseBuildsRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseBuildsRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = BuildsRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_wait_operation(resp)
-            return resp
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'BuildsRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest_base.py
deleted file mode 100644
index 4926e3b6356a..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/builds/transports/rest_base.py
+++ /dev/null
@@ -1,245 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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  # type: ignore
-from google.api_core import path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.cloud.location import locations_pb2 # type: ignore
-from .base import BuildsTransport, DEFAULT_CLIENT_INFO
-
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-
-
-from google.cloud.run_v2.types import build
-from google.longrunning import operations_pb2  # type: ignore
-
-
-class _BaseBuildsRestTransport(BuildsTransport):
-    """Base REST backend transport for Builds.
-
-    Note: This class is not meant to be used directly. Use its sync and
-    async sub-classes instead.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[Any] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            url_scheme: str = 'https',
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[Any]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
-        if maybe_url_match is None:
-            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
-
-        url_match_items = maybe_url_match.groupdict()
-
-        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
-
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience
-        )
-
-    class _BaseSubmitBuild:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{parent=projects/*/locations/*}/builds:submit',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = build.SubmitBuildRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseBuildsRestTransport._BaseSubmitBuild._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseGetOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseListOperations:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*}/operations',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseWaitOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            body = json.dumps(transcoded_request['body'])
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-
-__all__=(
-    '_BaseBuildsRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/__init__.py
deleted file mode 100644
index 9295dd9a3cb5..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from .client import ExecutionsClient
-from .async_client import ExecutionsAsyncClient
-
-__all__ = (
-    'ExecutionsClient',
-    'ExecutionsAsyncClient',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/async_client.py
deleted file mode 100644
index cd3789fb1e2f..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/async_client.py
+++ /dev/null
@@ -1,929 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core.client_options import ClientOptions
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry_async as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-
-try:
-    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.executions import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import execution
-from google.cloud.run_v2.types import task_template
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import ExecutionsTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import ExecutionsGrpcAsyncIOTransport
-from .client import ExecutionsClient
-
-
-class ExecutionsAsyncClient:
-    """Cloud Run Execution Control Plane API."""
-
-    _client: ExecutionsClient
-
-    # Copy defaults from the synchronous client for use here.
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = ExecutionsClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = ExecutionsClient.DEFAULT_MTLS_ENDPOINT
-    _DEFAULT_ENDPOINT_TEMPLATE = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE
-    _DEFAULT_UNIVERSE = ExecutionsClient._DEFAULT_UNIVERSE
-
-    connector_path = staticmethod(ExecutionsClient.connector_path)
-    parse_connector_path = staticmethod(ExecutionsClient.parse_connector_path)
-    crypto_key_path = staticmethod(ExecutionsClient.crypto_key_path)
-    parse_crypto_key_path = staticmethod(ExecutionsClient.parse_crypto_key_path)
-    execution_path = staticmethod(ExecutionsClient.execution_path)
-    parse_execution_path = staticmethod(ExecutionsClient.parse_execution_path)
-    job_path = staticmethod(ExecutionsClient.job_path)
-    parse_job_path = staticmethod(ExecutionsClient.parse_job_path)
-    secret_path = staticmethod(ExecutionsClient.secret_path)
-    parse_secret_path = staticmethod(ExecutionsClient.parse_secret_path)
-    secret_version_path = staticmethod(ExecutionsClient.secret_version_path)
-    parse_secret_version_path = staticmethod(ExecutionsClient.parse_secret_version_path)
-    common_billing_account_path = staticmethod(ExecutionsClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(ExecutionsClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(ExecutionsClient.common_folder_path)
-    parse_common_folder_path = staticmethod(ExecutionsClient.parse_common_folder_path)
-    common_organization_path = staticmethod(ExecutionsClient.common_organization_path)
-    parse_common_organization_path = staticmethod(ExecutionsClient.parse_common_organization_path)
-    common_project_path = staticmethod(ExecutionsClient.common_project_path)
-    parse_common_project_path = staticmethod(ExecutionsClient.parse_common_project_path)
-    common_location_path = staticmethod(ExecutionsClient.common_location_path)
-    parse_common_location_path = staticmethod(ExecutionsClient.parse_common_location_path)
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            ExecutionsAsyncClient: The constructed client.
-        """
-        return ExecutionsClient.from_service_account_info.__func__(ExecutionsAsyncClient, info, *args, **kwargs)  # type: ignore
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            ExecutionsAsyncClient: The constructed client.
-        """
-        return ExecutionsClient.from_service_account_file.__func__(ExecutionsAsyncClient, filename, *args, **kwargs)  # type: ignore
-
-    from_service_account_json = from_service_account_file
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
-        """Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-        return ExecutionsClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> ExecutionsTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ExecutionsTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._client._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used
-                by the client instance.
-        """
-        return self._client._universe_domain
-
-    get_transport_class = ExecutionsClient.get_transport_class
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, ExecutionsTransport, Callable[..., ExecutionsTransport]]] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the executions async client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,ExecutionsTransport,Callable[..., ExecutionsTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport to use.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the ExecutionsTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = ExecutionsClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def get_execution(self,
-            request: Optional[Union[execution.GetExecutionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> execution.Execution:
-        r"""Gets information about an Execution.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_get_execution():
-                # Create a client
-                client = run_v2.ExecutionsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetExecutionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = await client.get_execution(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.GetExecutionRequest, dict]]):
-                The request object. Request message for obtaining a
-                Execution by its full name.
-            name (:class:`str`):
-                Required. The full name of the Execution. Format:
-                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-                where ``{project}`` can be project id or number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Execution:
-                Execution represents the
-                configuration of a single execution. A
-                execution an immutable resource that
-                references a container image which is
-                run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, execution.GetExecutionRequest):
-            request = execution.GetExecutionRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.get_execution]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("name", request.name),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_executions(self,
-            request: Optional[Union[execution.ListExecutionsRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListExecutionsAsyncPager:
-        r"""Lists Executions from a Job. Results are sorted by
-        creation time, descending.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_list_executions():
-                # Create a client
-                client = run_v2.ExecutionsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListExecutionsRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_executions(request=request)
-
-                # Handle the response
-                async for response in page_result:
-                    print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.ListExecutionsRequest, dict]]):
-                The request object. Request message for retrieving a list
-                of Executions.
-            parent (:class:`str`):
-                Required. The Execution from which the Executions should
-                be listed. To list all Executions across Jobs, use "-"
-                instead of Job name. Format:
-                ``projects/{project}/locations/{location}/jobs/{job}``,
-                where ``{project}`` can be project id or number.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.executions.pagers.ListExecutionsAsyncPager:
-                Response message containing a list of
-                Executions.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, execution.ListExecutionsRequest):
-            request = execution.ListExecutionsRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if parent is not None:
-            request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.list_executions]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("parent", request.parent),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__aiter__` convenience method.
-        response = pagers.ListExecutionsAsyncPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def delete_execution(self,
-            request: Optional[Union[execution.DeleteExecutionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Deletes an Execution.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_delete_execution():
-                # Create a client
-                client = run_v2.ExecutionsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.DeleteExecutionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.delete_execution(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.DeleteExecutionRequest, dict]]):
-                The request object. Request message for deleting an
-                Execution.
-            name (:class:`str`):
-                Required. The name of the Execution to delete. Format:
-                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-                where ``{project}`` can be project id or number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
-                   immutable resource that references a container image
-                   which is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, execution.DeleteExecutionRequest):
-            request = execution.DeleteExecutionRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.delete_execution]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("name", request.name),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            execution.Execution,
-            metadata_type=execution.Execution,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def cancel_execution(self,
-            request: Optional[Union[execution.CancelExecutionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Cancels an Execution.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_cancel_execution():
-                # Create a client
-                client = run_v2.ExecutionsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.CancelExecutionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.cancel_execution(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.CancelExecutionRequest, dict]]):
-                The request object. Request message for deleting an
-                Execution.
-            name (:class:`str`):
-                Required. The name of the Execution to cancel. Format:
-                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-                where ``{project}`` can be project id or number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
-                   immutable resource that references a container image
-                   which is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, execution.CancelExecutionRequest):
-            request = execution.CancelExecutionRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.cancel_execution]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("name", request.name),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            execution.Execution,
-            metadata_type=execution.Execution,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    async def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "ExecutionsAsyncClient":
-        return self
-
-    async def __aexit__(self, exc_type, exc, tb):
-        await self.transport.close()
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "ExecutionsAsyncClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/client.py
deleted file mode 100644
index 35430e6c4137..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/client.py
+++ /dev/null
@@ -1,1300 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import os
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-import warnings
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core import client_options as client_options_lib
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials             # type: ignore
-from google.auth.transport import mtls                            # type: ignore
-from google.auth.transport.grpc import SslCredentials             # type: ignore
-from google.auth.exceptions import MutualTLSChannelError          # type: ignore
-from google.oauth2 import service_account                         # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.executions import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import execution
-from google.cloud.run_v2.types import task_template
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import ExecutionsTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import ExecutionsGrpcTransport
-from .transports.grpc_asyncio import ExecutionsGrpcAsyncIOTransport
-from .transports.rest import ExecutionsRestTransport
-
-
-class ExecutionsClientMeta(type):
-    """Metaclass for the Executions client.
-
-    This provides class-level methods for building and retrieving
-    support objects (e.g. transport) without polluting the client instance
-    objects.
-    """
-    _transport_registry = OrderedDict()  # type: Dict[str, Type[ExecutionsTransport]]
-    _transport_registry["grpc"] = ExecutionsGrpcTransport
-    _transport_registry["grpc_asyncio"] = ExecutionsGrpcAsyncIOTransport
-    _transport_registry["rest"] = ExecutionsRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[ExecutionsTransport]:
-        """Returns an appropriate transport class.
-
-        Args:
-            label: The name of the desired transport. If none is
-                provided, then the first transport in the registry is used.
-
-        Returns:
-            The transport class to use.
-        """
-        # If a specific transport is requested, return that one.
-        if label:
-            return cls._transport_registry[label]
-
-        # No transport is requested; return the default (that is, the first one
-        # in the dictionary).
-        return next(iter(cls._transport_registry.values()))
-
-
-class ExecutionsClient(metaclass=ExecutionsClientMeta):
-    """Cloud Run Execution Control Plane API."""
-
-    @staticmethod
-    def _get_default_mtls_endpoint(api_endpoint):
-        """Converts api endpoint to mTLS endpoint.
-
-        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
-        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
-        Args:
-            api_endpoint (Optional[str]): the api endpoint to convert.
-        Returns:
-            str: converted mTLS api endpoint.
-        """
-        if not api_endpoint:
-            return api_endpoint
-
-        mtls_endpoint_re = re.compile(
-            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
-        )
-
-        m = mtls_endpoint_re.match(api_endpoint)
-        name, mtls, sandbox, googledomain = m.groups()
-        if mtls or not googledomain:
-            return api_endpoint
-
-        if sandbox:
-            return api_endpoint.replace(
-                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
-            )
-
-        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
-
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = "run.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
-    _DEFAULT_UNIVERSE = "googleapis.com"
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            ExecutionsClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_info(info)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            ExecutionsClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_file(
-            filename)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    from_service_account_json = from_service_account_file
-
-    @property
-    def transport(self) -> ExecutionsTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ExecutionsTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @staticmethod
-    def connector_path(project: str,location: str,connector: str,) -> str:
-        """Returns a fully-qualified connector string."""
-        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-
-    @staticmethod
-    def parse_connector_path(path: str) -> Dict[str,str]:
-        """Parses a connector path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
-        """Returns a fully-qualified crypto_key string."""
-        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-
-    @staticmethod
-    def parse_crypto_key_path(path: str) -> Dict[str,str]:
-        """Parses a crypto_key path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def execution_path(project: str,location: str,job: str,execution: str,) -> str:
-        """Returns a fully-qualified execution string."""
-        return "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
-
-    @staticmethod
-    def parse_execution_path(path: str) -> Dict[str,str]:
-        """Parses a execution path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)/executions/(?P<execution>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def job_path(project: str,location: str,job: str,) -> str:
-        """Returns a fully-qualified job string."""
-        return "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
-
-    @staticmethod
-    def parse_job_path(path: str) -> Dict[str,str]:
-        """Parses a job path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_path(project: str,secret: str,) -> str:
-        """Returns a fully-qualified secret string."""
-        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-
-    @staticmethod
-    def parse_secret_path(path: str) -> Dict[str,str]:
-        """Parses a secret path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_version_path(project: str,secret: str,version: str,) -> str:
-        """Returns a fully-qualified secret_version string."""
-        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-
-    @staticmethod
-    def parse_secret_version_path(path: str) -> Dict[str,str]:
-        """Parses a secret_version path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_billing_account_path(billing_account: str, ) -> str:
-        """Returns a fully-qualified billing_account string."""
-        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-
-    @staticmethod
-    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
-        """Parse a billing_account path into its component segments."""
-        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_folder_path(folder: str, ) -> str:
-        """Returns a fully-qualified folder string."""
-        return "folders/{folder}".format(folder=folder, )
-
-    @staticmethod
-    def parse_common_folder_path(path: str) -> Dict[str,str]:
-        """Parse a folder path into its component segments."""
-        m = re.match(r"^folders/(?P<folder>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_organization_path(organization: str, ) -> str:
-        """Returns a fully-qualified organization string."""
-        return "organizations/{organization}".format(organization=organization, )
-
-    @staticmethod
-    def parse_common_organization_path(path: str) -> Dict[str,str]:
-        """Parse a organization path into its component segments."""
-        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_project_path(project: str, ) -> str:
-        """Returns a fully-qualified project string."""
-        return "projects/{project}".format(project=project, )
-
-    @staticmethod
-    def parse_common_project_path(path: str) -> Dict[str,str]:
-        """Parse a project path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_location_path(project: str, location: str, ) -> str:
-        """Returns a fully-qualified location string."""
-        return "projects/{project}/locations/{location}".format(project=project, location=location, )
-
-    @staticmethod
-    def parse_common_location_path(path: str) -> Dict[str,str]:
-        """Parse a location path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
-        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-
-        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
-            DeprecationWarning)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-
-        # Figure out the client cert source to use.
-        client_cert_source = None
-        if use_client_cert == "true":
-            if client_options.client_cert_source:
-                client_cert_source = client_options.client_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-
-        # Figure out which api endpoint to use.
-        if client_options.api_endpoint is not None:
-            api_endpoint = client_options.api_endpoint
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = cls.DEFAULT_ENDPOINT
-
-        return api_endpoint, client_cert_source
-
-    @staticmethod
-    def _read_environment_variables():
-        """Returns the environment variables used by the client.
-
-        Returns:
-            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
-            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
-
-        Raises:
-            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
-                any of ["true", "false"].
-            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
-                is not any of ["auto", "never", "always"].
-        """
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
-        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
-
-    @staticmethod
-    def _get_client_cert_source(provided_cert_source, use_cert_flag):
-        """Return the client cert source to be used by the client.
-
-        Args:
-            provided_cert_source (bytes): The client certificate source provided.
-            use_cert_flag (bool): A flag indicating whether to use the client certificate.
-
-        Returns:
-            bytes or None: The client cert source to be used by the client.
-        """
-        client_cert_source = None
-        if use_cert_flag:
-            if provided_cert_source:
-                client_cert_source = provided_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-        return client_cert_source
-
-    @staticmethod
-    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
-        """Return the API endpoint used by the client.
-
-        Args:
-            api_override (str): The API endpoint override. If specified, this is always
-                the return value of this function and the other arguments are not used.
-            client_cert_source (bytes): The client certificate source used by the client.
-            universe_domain (str): The universe domain used by the client.
-            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
-                Possible values are "always", "auto", or "never".
-
-        Returns:
-            str: The API endpoint to be used by the client.
-        """
-        if api_override is not None:
-            api_endpoint = api_override
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            _default_universe = ExecutionsClient._DEFAULT_UNIVERSE
-            if universe_domain != _default_universe:
-                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
-            api_endpoint = ExecutionsClient.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
-        return api_endpoint
-
-    @staticmethod
-    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
-        """Return the universe domain used by the client.
-
-        Args:
-            client_universe_domain (Optional[str]): The universe domain configured via the client options.
-            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
-
-        Returns:
-            str: The universe domain to be used by the client.
-
-        Raises:
-            ValueError: If the universe domain is an empty string.
-        """
-        universe_domain = ExecutionsClient._DEFAULT_UNIVERSE
-        if client_universe_domain is not None:
-            universe_domain = client_universe_domain
-        elif universe_domain_env is not None:
-            universe_domain = universe_domain_env
-        if len(universe_domain.strip()) == 0:
-            raise ValueError("Universe Domain cannot be an empty string.")
-        return universe_domain
-
-    def _validate_universe_domain(self):
-        """Validates client's and credentials' universe domains are consistent.
-
-        Returns:
-            bool: True iff the configured universe domain is valid.
-
-        Raises:
-            ValueError: If the configured universe domain is not valid.
-        """
-
-        # NOTE (b/349488459): universe validation is disabled until further notice.
-        return True
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used by the client instance.
-        """
-        return self._universe_domain
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, ExecutionsTransport, Callable[..., ExecutionsTransport]]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the executions client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,ExecutionsTransport,Callable[..., ExecutionsTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the ExecutionsTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that the ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client_options = client_options
-        if isinstance(self._client_options, dict):
-            self._client_options = client_options_lib.from_dict(self._client_options)
-        if self._client_options is None:
-            self._client_options = client_options_lib.ClientOptions()
-        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
-
-        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
-
-        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = ExecutionsClient._read_environment_variables()
-        self._client_cert_source = ExecutionsClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
-        self._universe_domain = ExecutionsClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
-        self._api_endpoint = None # updated below, depending on `transport`
-
-        # Initialize the universe domain validation.
-        self._is_universe_domain_valid = False
-
-        api_key_value = getattr(self._client_options, "api_key", None)
-        if api_key_value and credentials:
-            raise ValueError("client_options.api_key and credentials are mutually exclusive")
-
-        # Save or instantiate the transport.
-        # Ordinarily, we provide the transport, but allowing a custom transport
-        # instance provides an extensibility point for unusual situations.
-        transport_provided = isinstance(transport, ExecutionsTransport)
-        if transport_provided:
-            # transport is a ExecutionsTransport instance.
-            if credentials or self._client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if self._client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = cast(ExecutionsTransport, transport)
-            self._api_endpoint = self._transport.host
-
-        self._api_endpoint = (self._api_endpoint or
-            ExecutionsClient._get_api_endpoint(
-                self._client_options.api_endpoint,
-                self._client_cert_source,
-                self._universe_domain,
-                self._use_mtls_endpoint))
-
-        if not transport_provided:
-            import google.auth._default  # type: ignore
-
-            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
-                credentials = google.auth._default.get_api_key_credentials(api_key_value)
-
-            transport_init: Union[Type[ExecutionsTransport], Callable[..., ExecutionsTransport]] = (
-                ExecutionsClient.get_transport_class(transport)
-                if isinstance(transport, str) or transport is None
-                else cast(Callable[..., ExecutionsTransport], transport)
-            )
-            # initialize with the provided callable or the passed in class
-            self._transport = transport_init(
-                credentials=credentials,
-                credentials_file=self._client_options.credentials_file,
-                host=self._api_endpoint,
-                scopes=self._client_options.scopes,
-                client_cert_source_for_mtls=self._client_cert_source,
-                quota_project_id=self._client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=self._client_options.api_audience,
-            )
-
-    def get_execution(self,
-            request: Optional[Union[execution.GetExecutionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> execution.Execution:
-        r"""Gets information about an Execution.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_get_execution():
-                # Create a client
-                client = run_v2.ExecutionsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetExecutionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = client.get_execution(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.GetExecutionRequest, dict]):
-                The request object. Request message for obtaining a
-                Execution by its full name.
-            name (str):
-                Required. The full name of the Execution. Format:
-                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-                where ``{project}`` can be project id or number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Execution:
-                Execution represents the
-                configuration of a single execution. A
-                execution an immutable resource that
-                references a container image which is
-                run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, execution.GetExecutionRequest):
-            request = execution.GetExecutionRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_execution]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("name", request.name),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def list_executions(self,
-            request: Optional[Union[execution.ListExecutionsRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListExecutionsPager:
-        r"""Lists Executions from a Job. Results are sorted by
-        creation time, descending.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_list_executions():
-                # Create a client
-                client = run_v2.ExecutionsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListExecutionsRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_executions(request=request)
-
-                # Handle the response
-                for response in page_result:
-                    print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.ListExecutionsRequest, dict]):
-                The request object. Request message for retrieving a list
-                of Executions.
-            parent (str):
-                Required. The Execution from which the Executions should
-                be listed. To list all Executions across Jobs, use "-"
-                instead of Job name. Format:
-                ``projects/{project}/locations/{location}/jobs/{job}``,
-                where ``{project}`` can be project id or number.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.executions.pagers.ListExecutionsPager:
-                Response message containing a list of
-                Executions.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, execution.ListExecutionsRequest):
-            request = execution.ListExecutionsRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if parent is not None:
-                request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_executions]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("parent", request.parent),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__iter__` convenience method.
-        response = pagers.ListExecutionsPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def delete_execution(self,
-            request: Optional[Union[execution.DeleteExecutionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Deletes an Execution.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_delete_execution():
-                # Create a client
-                client = run_v2.ExecutionsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.DeleteExecutionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.delete_execution(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.DeleteExecutionRequest, dict]):
-                The request object. Request message for deleting an
-                Execution.
-            name (str):
-                Required. The name of the Execution to delete. Format:
-                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-                where ``{project}`` can be project id or number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
-                   immutable resource that references a container image
-                   which is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, execution.DeleteExecutionRequest):
-            request = execution.DeleteExecutionRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_execution]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("name", request.name),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            execution.Execution,
-            metadata_type=execution.Execution,
-        )
-
-        # Done; return the response.
-        return response
-
-    def cancel_execution(self,
-            request: Optional[Union[execution.CancelExecutionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Cancels an Execution.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_cancel_execution():
-                # Create a client
-                client = run_v2.ExecutionsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.CancelExecutionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.cancel_execution(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.CancelExecutionRequest, dict]):
-                The request object. Request message for deleting an
-                Execution.
-            name (str):
-                Required. The name of the Execution to cancel. Format:
-                ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-                where ``{project}`` can be project id or number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
-                   immutable resource that references a container image
-                   which is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, execution.CancelExecutionRequest):
-            request = execution.CancelExecutionRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.cancel_execution]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("name", request.name),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            execution.Execution,
-            metadata_type=execution.Execution,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "ExecutionsClient":
-        return self
-
-    def __exit__(self, type, value, traceback):
-        """Releases underlying transport's resources.
-
-        .. warning::
-            ONLY use as a context manager if the transport is NOT shared
-            with other clients! Exiting the with block will CLOSE the transport
-            and may cause errors in other clients!
-        """
-        self.transport.close()
-
-    def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "ExecutionsClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/pagers.py
deleted file mode 100644
index ca1d1f8085a0..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/pagers.py
+++ /dev/null
@@ -1,162 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import retry_async as retries_async
-from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
-
-from google.cloud.run_v2.types import execution
-
-
-class ListExecutionsPager:
-    """A pager for iterating through ``list_executions`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListExecutionsResponse` object, and
-    provides an ``__iter__`` method to iterate through its
-    ``executions`` field.
-
-    If there are more pages, the ``__iter__`` method will make additional
-    ``ListExecutions`` requests and continue to iterate
-    through the ``executions`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListExecutionsResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., execution.ListExecutionsResponse],
-            request: execution.ListExecutionsRequest,
-            response: execution.ListExecutionsResponse,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiate the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListExecutionsRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListExecutionsResponse):
-                The initial response object.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = execution.ListExecutionsRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    def pages(self) -> Iterator[execution.ListExecutionsResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-
-    def __iter__(self) -> Iterator[execution.Execution]:
-        for page in self.pages:
-            yield from page.executions
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
-
-
-class ListExecutionsAsyncPager:
-    """A pager for iterating through ``list_executions`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListExecutionsResponse` object, and
-    provides an ``__aiter__`` method to iterate through its
-    ``executions`` field.
-
-    If there are more pages, the ``__aiter__`` method will make additional
-    ``ListExecutions`` requests and continue to iterate
-    through the ``executions`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListExecutionsResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., Awaitable[execution.ListExecutionsResponse]],
-            request: execution.ListExecutionsRequest,
-            response: execution.ListExecutionsResponse,
-            *,
-            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiates the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListExecutionsRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListExecutionsResponse):
-                The initial response object.
-            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = execution.ListExecutionsRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    async def pages(self) -> AsyncIterator[execution.ListExecutionsResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-    def __aiter__(self) -> AsyncIterator[execution.Execution]:
-        async def async_generator():
-            async for page in self.pages:
-                for response in page.executions:
-                    yield response
-
-        return async_generator()
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/README.rst
deleted file mode 100644
index 6555db202c9c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/README.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-
-transport inheritance structure
-_______________________________
-
-`ExecutionsTransport` is the ABC for all transports.
-- public child `ExecutionsGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
-- public child `ExecutionsGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
-- private child `_BaseExecutionsRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
-- public child `ExecutionsRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/__init__.py
deleted file mode 100644
index 1cc3edee2d20..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-from typing import Dict, Type
-
-from .base import ExecutionsTransport
-from .grpc import ExecutionsGrpcTransport
-from .grpc_asyncio import ExecutionsGrpcAsyncIOTransport
-from .rest import ExecutionsRestTransport
-from .rest import ExecutionsRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[ExecutionsTransport]]
-_transport_registry['grpc'] = ExecutionsGrpcTransport
-_transport_registry['grpc_asyncio'] = ExecutionsGrpcAsyncIOTransport
-_transport_registry['rest'] = ExecutionsRestTransport
-
-__all__ = (
-    'ExecutionsTransport',
-    'ExecutionsGrpcTransport',
-    'ExecutionsGrpcAsyncIOTransport',
-    'ExecutionsRestTransport',
-    'ExecutionsRestInterceptor',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/base.py
deleted file mode 100644
index 973ae0051b9c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/base.py
+++ /dev/null
@@ -1,260 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 abc
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-import google.auth  # type: ignore
-import google.api_core
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import operations_v1
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.oauth2 import service_account # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import execution
-from google.longrunning import operations_pb2 # type: ignore
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class ExecutionsTransport(abc.ABC):
-    """Abstract transport class for Executions."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'run.googleapis.com'
-    def __init__(
-            self, *,
-            host: str = DEFAULT_HOST,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            **kwargs,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A list of scopes.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-        """
-
-        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
-
-        # Save the scopes.
-        self._scopes = scopes
-        if not hasattr(self, "_ignore_credentials"):
-            self._ignore_credentials: bool = False
-
-        # If no credentials are provided, then determine the appropriate
-        # defaults.
-        if credentials and credentials_file:
-            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
-
-        if credentials_file is not None:
-            credentials, _ = google.auth.load_credentials_from_file(
-                                credentials_file,
-                                **scopes_kwargs,
-                                quota_project_id=quota_project_id
-                            )
-        elif credentials is None and not self._ignore_credentials:
-            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
-            # Don't apply audience if the credentials file passed from user.
-            if hasattr(credentials, "with_gdch_audience"):
-                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
-
-        # If the credentials are service account credentials, then always try to use self signed JWT.
-        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
-            credentials = credentials.with_always_use_jwt_access(True)
-
-        # Save the credentials.
-        self._credentials = credentials
-
-        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
-        if ':' not in host:
-            host += ':443'
-        self._host = host
-
-    @property
-    def host(self):
-        return self._host
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.get_execution: gapic_v1.method.wrap_method(
-                self.get_execution,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_executions: gapic_v1.method.wrap_method(
-                self.list_executions,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_execution: gapic_v1.method.wrap_method(
-                self.delete_execution,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.cancel_execution: gapic_v1.method.wrap_method(
-                self.cancel_execution,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: gapic_v1.method.wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: gapic_v1.method.wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: gapic_v1.method.wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: gapic_v1.method.wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-         }
-
-    def close(self):
-        """Closes resources associated with the transport.
-
-       .. warning::
-            Only call this method if the transport is NOT shared
-            with other clients - this may cause errors in other clients!
-        """
-        raise NotImplementedError()
-
-    @property
-    def operations_client(self):
-        """Return the client designed to process long-running operations."""
-        raise NotImplementedError()
-
-    @property
-    def get_execution(self) -> Callable[
-            [execution.GetExecutionRequest],
-            Union[
-                execution.Execution,
-                Awaitable[execution.Execution]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_executions(self) -> Callable[
-            [execution.ListExecutionsRequest],
-            Union[
-                execution.ListExecutionsResponse,
-                Awaitable[execution.ListExecutionsResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def delete_execution(self) -> Callable[
-            [execution.DeleteExecutionRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def cancel_execution(self) -> Callable[
-            [execution.CancelExecutionRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[
-        [operations_pb2.ListOperationsRequest],
-        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.GetOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.DeleteOperationRequest],
-        None,
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.WaitOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'ExecutionsTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc.py
deleted file mode 100644
index ece28f1a3664..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc.py
+++ /dev/null
@@ -1,441 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 warnings
-from typing import Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import grpc_helpers
-from google.api_core import operations_v1
-from google.api_core import gapic_v1
-import google.auth                         # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import execution
-from google.longrunning import operations_pb2 # type: ignore
-from .base import ExecutionsTransport, DEFAULT_CLIENT_INFO
-
-
-class ExecutionsGrpcTransport(ExecutionsTransport):
-    """gRPC backend transport for Executions.
-
-    Cloud Run Execution Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-    _stubs: Dict[str, Callable]
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[grpc.Channel, Callable[..., 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,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if a ``channel`` instance is provided.
-            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-        self._operations_client: Optional[operations_v1.OperationsClient] = None
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, grpc.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._prep_wrapped_messages(client_info)
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> grpc.Channel:
-        """Create and return a gRPC channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            grpc.Channel: A gRPC channel object.
-
-        Raises:
-            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-
-        return grpc_helpers.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    @property
-    def grpc_channel(self) -> grpc.Channel:
-        """Return the channel designed to connect to this service.
-        """
-        return self._grpc_channel
-
-    @property
-    def operations_client(self) -> operations_v1.OperationsClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Quick check: Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            self._operations_client = operations_v1.OperationsClient(
-                self.grpc_channel
-            )
-
-        # Return the client from cache.
-        return self._operations_client
-
-    @property
-    def get_execution(self) -> Callable[
-            [execution.GetExecutionRequest],
-            execution.Execution]:
-        r"""Return a callable for the get execution method over gRPC.
-
-        Gets information about an Execution.
-
-        Returns:
-            Callable[[~.GetExecutionRequest],
-                    ~.Execution]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_execution' not in self._stubs:
-            self._stubs['get_execution'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Executions/GetExecution',
-                request_serializer=execution.GetExecutionRequest.serialize,
-                response_deserializer=execution.Execution.deserialize,
-            )
-        return self._stubs['get_execution']
-
-    @property
-    def list_executions(self) -> Callable[
-            [execution.ListExecutionsRequest],
-            execution.ListExecutionsResponse]:
-        r"""Return a callable for the list executions method over gRPC.
-
-        Lists Executions from a Job. Results are sorted by
-        creation time, descending.
-
-        Returns:
-            Callable[[~.ListExecutionsRequest],
-                    ~.ListExecutionsResponse]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_executions' not in self._stubs:
-            self._stubs['list_executions'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Executions/ListExecutions',
-                request_serializer=execution.ListExecutionsRequest.serialize,
-                response_deserializer=execution.ListExecutionsResponse.deserialize,
-            )
-        return self._stubs['list_executions']
-
-    @property
-    def delete_execution(self) -> Callable[
-            [execution.DeleteExecutionRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the delete execution method over gRPC.
-
-        Deletes an Execution.
-
-        Returns:
-            Callable[[~.DeleteExecutionRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'delete_execution' not in self._stubs:
-            self._stubs['delete_execution'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Executions/DeleteExecution',
-                request_serializer=execution.DeleteExecutionRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['delete_execution']
-
-    @property
-    def cancel_execution(self) -> Callable[
-            [execution.CancelExecutionRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the cancel execution method over gRPC.
-
-        Cancels an Execution.
-
-        Returns:
-            Callable[[~.CancelExecutionRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'cancel_execution' not in self._stubs:
-            self._stubs['cancel_execution'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Executions/CancelExecution',
-                request_serializer=execution.CancelExecutionRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['cancel_execution']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'ExecutionsGrpcTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc_asyncio.py
deleted file mode 100644
index dc788d50ee15..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,497 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 inspect
-import warnings
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry_async as retries
-from google.api_core import operations_v1
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc                        # type: ignore
-from grpc.experimental import aio  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import execution
-from google.longrunning import operations_pb2 # type: ignore
-from .base import ExecutionsTransport, DEFAULT_CLIENT_INFO
-from .grpc import ExecutionsGrpcTransport
-
-
-class ExecutionsGrpcAsyncIOTransport(ExecutionsTransport):
-    """gRPC AsyncIO backend transport for Executions.
-
-    Cloud Run Execution Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-
-    _grpc_channel: aio.Channel
-    _stubs: Dict[str, Callable] = {}
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> aio.Channel:
-        """Create and return a gRPC AsyncIO channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            aio.Channel: A gRPC AsyncIO channel object.
-        """
-
-        return grpc_helpers_async.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[aio.Channel, Callable[..., 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,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, aio.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def grpc_channel(self) -> aio.Channel:
-        """Create the channel designed to connect to this service.
-
-        This property caches on the instance; repeated calls return
-        the same channel.
-        """
-        # Return the channel from cache.
-        return self._grpc_channel
-
-    @property
-    def operations_client(self) -> operations_v1.OperationsAsyncClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Quick check: Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            self._operations_client = operations_v1.OperationsAsyncClient(
-                self.grpc_channel
-            )
-
-        # Return the client from cache.
-        return self._operations_client
-
-    @property
-    def get_execution(self) -> Callable[
-            [execution.GetExecutionRequest],
-            Awaitable[execution.Execution]]:
-        r"""Return a callable for the get execution method over gRPC.
-
-        Gets information about an Execution.
-
-        Returns:
-            Callable[[~.GetExecutionRequest],
-                    Awaitable[~.Execution]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_execution' not in self._stubs:
-            self._stubs['get_execution'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Executions/GetExecution',
-                request_serializer=execution.GetExecutionRequest.serialize,
-                response_deserializer=execution.Execution.deserialize,
-            )
-        return self._stubs['get_execution']
-
-    @property
-    def list_executions(self) -> Callable[
-            [execution.ListExecutionsRequest],
-            Awaitable[execution.ListExecutionsResponse]]:
-        r"""Return a callable for the list executions method over gRPC.
-
-        Lists Executions from a Job. Results are sorted by
-        creation time, descending.
-
-        Returns:
-            Callable[[~.ListExecutionsRequest],
-                    Awaitable[~.ListExecutionsResponse]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_executions' not in self._stubs:
-            self._stubs['list_executions'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Executions/ListExecutions',
-                request_serializer=execution.ListExecutionsRequest.serialize,
-                response_deserializer=execution.ListExecutionsResponse.deserialize,
-            )
-        return self._stubs['list_executions']
-
-    @property
-    def delete_execution(self) -> Callable[
-            [execution.DeleteExecutionRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the delete execution method over gRPC.
-
-        Deletes an Execution.
-
-        Returns:
-            Callable[[~.DeleteExecutionRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'delete_execution' not in self._stubs:
-            self._stubs['delete_execution'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Executions/DeleteExecution',
-                request_serializer=execution.DeleteExecutionRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['delete_execution']
-
-    @property
-    def cancel_execution(self) -> Callable[
-            [execution.CancelExecutionRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the cancel execution method over gRPC.
-
-        Cancels an Execution.
-
-        Returns:
-            Callable[[~.CancelExecutionRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'cancel_execution' not in self._stubs:
-            self._stubs['cancel_execution'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Executions/CancelExecution',
-                request_serializer=execution.CancelExecutionRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['cancel_execution']
-
-    def _prep_wrapped_messages(self, client_info):
-        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
-        self._wrapped_methods = {
-            self.get_execution: self._wrap_method(
-                self.get_execution,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_executions: self._wrap_method(
-                self.list_executions,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_execution: self._wrap_method(
-                self.delete_execution,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.cancel_execution: self._wrap_method(
-                self.cancel_execution,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: self._wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: self._wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: self._wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: self._wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-        }
-
-    def _wrap_method(self, func, *args, **kwargs):
-        if self._wrap_with_kind:  # pragma: NO COVER
-            kwargs["kind"] = self.kind
-        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
-
-    def close(self):
-        return self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc_asyncio"
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-
-__all__ = (
-    'ExecutionsGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest.py
deleted file mode 100644
index 7fd83961d5e9..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest.py
+++ /dev/null
@@ -1,1026 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-
-from google.auth.transport.requests import AuthorizedSession  # type: ignore
-import json  # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry as retries
-from google.api_core import rest_helpers
-from google.api_core import rest_streaming
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.api_core import operations_v1
-from google.cloud.location import locations_pb2 # type: ignore
-
-from requests import __version__ as requests_version
-import dataclasses
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-
-from google.cloud.run_v2.types import execution
-from google.longrunning import operations_pb2  # type: ignore
-
-
-from .rest_base import _BaseExecutionsRestTransport
-from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=f"requests@{requests_version}",
-)
-
-
-class ExecutionsRestInterceptor:
-    """Interceptor for Executions.
-
-    Interceptors are used to manipulate requests, request metadata, and responses
-    in arbitrary ways.
-    Example use cases include:
-    * Logging
-    * Verifying requests according to service or custom semantics
-    * Stripping extraneous information from responses
-
-    These use cases and more can be enabled by injecting an
-    instance of a custom subclass when constructing the ExecutionsRestTransport.
-
-    .. code-block:: python
-        class MyCustomExecutionsInterceptor(ExecutionsRestInterceptor):
-            def pre_cancel_execution(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_cancel_execution(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_delete_execution(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_delete_execution(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_get_execution(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_get_execution(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_list_executions(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_list_executions(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = ExecutionsRestTransport(interceptor=MyCustomExecutionsInterceptor())
-        client = ExecutionsClient(transport=transport)
-
-
-    """
-    def pre_cancel_execution(self, request: execution.CancelExecutionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[execution.CancelExecutionRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for cancel_execution
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Executions server.
-        """
-        return request, metadata
-
-    def post_cancel_execution(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for cancel_execution
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Executions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_execution(self, request: execution.DeleteExecutionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[execution.DeleteExecutionRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_execution
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Executions server.
-        """
-        return request, metadata
-
-    def post_delete_execution(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for delete_execution
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Executions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_execution(self, request: execution.GetExecutionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[execution.GetExecutionRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_execution
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Executions server.
-        """
-        return request, metadata
-
-    def post_get_execution(self, response: execution.Execution) -> execution.Execution:
-        """Post-rpc interceptor for get_execution
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Executions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_executions(self, request: execution.ListExecutionsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[execution.ListExecutionsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_executions
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Executions server.
-        """
-        return request, metadata
-
-    def post_list_executions(self, response: execution.ListExecutionsResponse) -> execution.ListExecutionsResponse:
-        """Post-rpc interceptor for list_executions
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Executions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_operation(
-        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Executions server.
-        """
-        return request, metadata
-
-    def post_delete_operation(
-        self, response: None
-    ) -> None:
-        """Post-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Executions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_operation(
-        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Executions server.
-        """
-        return request, metadata
-
-    def post_get_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Executions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_operations(
-        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Executions server.
-        """
-        return request, metadata
-
-    def post_list_operations(
-        self, response: operations_pb2.ListOperationsResponse
-    ) -> operations_pb2.ListOperationsResponse:
-        """Post-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Executions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_wait_operation(
-        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Executions server.
-        """
-        return request, metadata
-
-    def post_wait_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Executions server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class ExecutionsRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: ExecutionsRestInterceptor
-
-
-class ExecutionsRestTransport(_BaseExecutionsRestTransport):
-    """REST backend synchronous transport for Executions.
-
-    Cloud Run Execution Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            url_scheme: str = 'https',
-            interceptor: Optional[ExecutionsRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
-                certificate to configure mutual TLS HTTP channel. It is ignored
-                if ``channel`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
-        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
-        # credentials object
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            url_scheme=url_scheme,
-            api_audience=api_audience
-        )
-        self._session = AuthorizedSession(
-            self._credentials, default_host=self.DEFAULT_HOST)
-        self._operations_client: Optional[operations_v1.AbstractOperationsClient] = None
-        if client_cert_source_for_mtls:
-            self._session.configure_mtls_channel(client_cert_source_for_mtls)
-        self._interceptor = interceptor or ExecutionsRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def operations_client(self) -> operations_v1.AbstractOperationsClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            http_options: Dict[str, List[Dict[str, str]]] = {
-                'google.longrunning.Operations.DeleteOperation': [
-                    {
-                        'method': 'delete',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-                    },
-                ],
-                'google.longrunning.Operations.GetOperation': [
-                    {
-                        'method': 'get',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-                    },
-                ],
-                'google.longrunning.Operations.ListOperations': [
-                    {
-                        'method': 'get',
-                        'uri': '/v2/{name=projects/*/locations/*}/operations',
-                    },
-                ],
-                'google.longrunning.Operations.WaitOperation': [
-                    {
-                        'method': 'post',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                        'body': '*',
-                    },
-                ],
-            }
-
-            rest_transport = operations_v1.OperationsRestTransport(
-                    host=self._host,
-                    # use the credentials which are saved
-                    credentials=self._credentials,
-                    scopes=self._scopes,
-                    http_options=http_options,
-                    path_prefix="v2")
-
-            self._operations_client = operations_v1.AbstractOperationsClient(transport=rest_transport)
-
-        # Return the client from cache.
-        return self._operations_client
-
-    class _CancelExecution(_BaseExecutionsRestTransport._BaseCancelExecution, ExecutionsRestStub):
-        def __hash__(self):
-            return hash("ExecutionsRestTransport.CancelExecution")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: execution.CancelExecutionRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the cancel execution method over HTTP.
-
-            Args:
-                request (~.execution.CancelExecutionRequest):
-                    The request object. Request message for deleting an
-                Execution.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseExecutionsRestTransport._BaseCancelExecution._get_http_options()
-            request, metadata = self._interceptor.pre_cancel_execution(request, metadata)
-            transcoded_request = _BaseExecutionsRestTransport._BaseCancelExecution._get_transcoded_request(http_options, request)
-
-            body = _BaseExecutionsRestTransport._BaseCancelExecution._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseExecutionsRestTransport._BaseCancelExecution._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ExecutionsRestTransport._CancelExecution._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_cancel_execution(resp)
-            return resp
-
-    class _DeleteExecution(_BaseExecutionsRestTransport._BaseDeleteExecution, ExecutionsRestStub):
-        def __hash__(self):
-            return hash("ExecutionsRestTransport.DeleteExecution")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: execution.DeleteExecutionRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the delete execution method over HTTP.
-
-            Args:
-                request (~.execution.DeleteExecutionRequest):
-                    The request object. Request message for deleting an
-                Execution.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseExecutionsRestTransport._BaseDeleteExecution._get_http_options()
-            request, metadata = self._interceptor.pre_delete_execution(request, metadata)
-            transcoded_request = _BaseExecutionsRestTransport._BaseDeleteExecution._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseExecutionsRestTransport._BaseDeleteExecution._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ExecutionsRestTransport._DeleteExecution._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_delete_execution(resp)
-            return resp
-
-    class _GetExecution(_BaseExecutionsRestTransport._BaseGetExecution, ExecutionsRestStub):
-        def __hash__(self):
-            return hash("ExecutionsRestTransport.GetExecution")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: execution.GetExecutionRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> execution.Execution:
-            r"""Call the get execution method over HTTP.
-
-            Args:
-                request (~.execution.GetExecutionRequest):
-                    The request object. Request message for obtaining a
-                Execution by its full name.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.execution.Execution:
-                    Execution represents the
-                configuration of a single execution. A
-                execution an immutable resource that
-                references a container image which is
-                run to completion.
-
-            """
-
-            http_options = _BaseExecutionsRestTransport._BaseGetExecution._get_http_options()
-            request, metadata = self._interceptor.pre_get_execution(request, metadata)
-            transcoded_request = _BaseExecutionsRestTransport._BaseGetExecution._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseExecutionsRestTransport._BaseGetExecution._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ExecutionsRestTransport._GetExecution._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = execution.Execution()
-            pb_resp = execution.Execution.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_get_execution(resp)
-            return resp
-
-    class _ListExecutions(_BaseExecutionsRestTransport._BaseListExecutions, ExecutionsRestStub):
-        def __hash__(self):
-            return hash("ExecutionsRestTransport.ListExecutions")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: execution.ListExecutionsRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> execution.ListExecutionsResponse:
-            r"""Call the list executions method over HTTP.
-
-            Args:
-                request (~.execution.ListExecutionsRequest):
-                    The request object. Request message for retrieving a list
-                of Executions.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.execution.ListExecutionsResponse:
-                    Response message containing a list of
-                Executions.
-
-            """
-
-            http_options = _BaseExecutionsRestTransport._BaseListExecutions._get_http_options()
-            request, metadata = self._interceptor.pre_list_executions(request, metadata)
-            transcoded_request = _BaseExecutionsRestTransport._BaseListExecutions._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseExecutionsRestTransport._BaseListExecutions._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ExecutionsRestTransport._ListExecutions._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = execution.ListExecutionsResponse()
-            pb_resp = execution.ListExecutionsResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_list_executions(resp)
-            return resp
-
-    @property
-    def cancel_execution(self) -> Callable[
-            [execution.CancelExecutionRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._CancelExecution(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_execution(self) -> Callable[
-            [execution.DeleteExecutionRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._DeleteExecution(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def get_execution(self) -> Callable[
-            [execution.GetExecutionRequest],
-            execution.Execution]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._GetExecution(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def list_executions(self) -> Callable[
-            [execution.ListExecutionsRequest],
-            execution.ListExecutionsResponse]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._ListExecutions(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_operation(self):
-        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _DeleteOperation(_BaseExecutionsRestTransport._BaseDeleteOperation, ExecutionsRestStub):
-        def __hash__(self):
-            return hash("ExecutionsRestTransport.DeleteOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.DeleteOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> None:
-
-            r"""Call the delete operation method over HTTP.
-
-            Args:
-                request (operations_pb2.DeleteOperationRequest):
-                    The request object for DeleteOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-            """
-
-            http_options = _BaseExecutionsRestTransport._BaseDeleteOperation._get_http_options()
-            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
-            transcoded_request = _BaseExecutionsRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseExecutionsRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ExecutionsRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            return self._interceptor.post_delete_operation(None)
-
-    @property
-    def get_operation(self):
-        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _GetOperation(_BaseExecutionsRestTransport._BaseGetOperation, ExecutionsRestStub):
-        def __hash__(self):
-            return hash("ExecutionsRestTransport.GetOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.GetOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the get operation method over HTTP.
-
-            Args:
-                request (operations_pb2.GetOperationRequest):
-                    The request object for GetOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from GetOperation method.
-            """
-
-            http_options = _BaseExecutionsRestTransport._BaseGetOperation._get_http_options()
-            request, metadata = self._interceptor.pre_get_operation(request, metadata)
-            transcoded_request = _BaseExecutionsRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseExecutionsRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ExecutionsRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_get_operation(resp)
-            return resp
-
-    @property
-    def list_operations(self):
-        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
-
-    class _ListOperations(_BaseExecutionsRestTransport._BaseListOperations, ExecutionsRestStub):
-        def __hash__(self):
-            return hash("ExecutionsRestTransport.ListOperations")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.ListOperationsRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.ListOperationsResponse:
-
-            r"""Call the list operations method over HTTP.
-
-            Args:
-                request (operations_pb2.ListOperationsRequest):
-                    The request object for ListOperations method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.ListOperationsResponse: Response from ListOperations method.
-            """
-
-            http_options = _BaseExecutionsRestTransport._BaseListOperations._get_http_options()
-            request, metadata = self._interceptor.pre_list_operations(request, metadata)
-            transcoded_request = _BaseExecutionsRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseExecutionsRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ExecutionsRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.ListOperationsResponse()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_list_operations(resp)
-            return resp
-
-    @property
-    def wait_operation(self):
-        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _WaitOperation(_BaseExecutionsRestTransport._BaseWaitOperation, ExecutionsRestStub):
-        def __hash__(self):
-            return hash("ExecutionsRestTransport.WaitOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.WaitOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the wait operation method over HTTP.
-
-            Args:
-                request (operations_pb2.WaitOperationRequest):
-                    The request object for WaitOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from WaitOperation method.
-            """
-
-            http_options = _BaseExecutionsRestTransport._BaseWaitOperation._get_http_options()
-            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
-            transcoded_request = _BaseExecutionsRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
-
-            body = _BaseExecutionsRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseExecutionsRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ExecutionsRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_wait_operation(resp)
-            return resp
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'ExecutionsRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest_base.py
deleted file mode 100644
index 9d79aed15e73..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/executions/transports/rest_base.py
+++ /dev/null
@@ -1,356 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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  # type: ignore
-from google.api_core import path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.cloud.location import locations_pb2 # type: ignore
-from .base import ExecutionsTransport, DEFAULT_CLIENT_INFO
-
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-
-
-from google.cloud.run_v2.types import execution
-from google.longrunning import operations_pb2  # type: ignore
-
-
-class _BaseExecutionsRestTransport(ExecutionsTransport):
-    """Base REST backend transport for Executions.
-
-    Note: This class is not meant to be used directly. Use its sync and
-    async sub-classes instead.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[Any] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            url_scheme: str = 'https',
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[Any]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
-        if maybe_url_match is None:
-            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
-
-        url_match_items = maybe_url_match.groupdict()
-
-        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
-
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience
-        )
-
-    class _BaseCancelExecution:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{name=projects/*/locations/*/jobs/*/executions/*}:cancel',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = execution.CancelExecutionRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseExecutionsRestTransport._BaseCancelExecution._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteExecution:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/jobs/*/executions/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = execution.DeleteExecutionRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseExecutionsRestTransport._BaseDeleteExecution._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseGetExecution:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/jobs/*/executions/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = execution.GetExecutionRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseExecutionsRestTransport._BaseGetExecution._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseListExecutions:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{parent=projects/*/locations/*/jobs/*}/executions',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = execution.ListExecutionsRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseExecutionsRestTransport._BaseListExecutions._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseGetOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseListOperations:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*}/operations',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseWaitOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            body = json.dumps(transcoded_request['body'])
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-
-__all__=(
-    '_BaseExecutionsRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/__init__.py
deleted file mode 100644
index 32941b54dc83..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from .client import JobsClient
-from .async_client import JobsAsyncClient
-
-__all__ = (
-    'JobsClient',
-    'JobsAsyncClient',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/async_client.py
deleted file mode 100644
index 2086e535ff29..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/async_client.py
+++ /dev/null
@@ -1,1541 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core.client_options import ClientOptions
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry_async as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-
-try:
-    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.jobs import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import execution
-from google.cloud.run_v2.types import execution_template
-from google.cloud.run_v2.types import job
-from google.cloud.run_v2.types import job as gcr_job
-from google.cloud.run_v2.types import vendor_settings
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import JobsTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import JobsGrpcAsyncIOTransport
-from .client import JobsClient
-
-
-class JobsAsyncClient:
-    """Cloud Run Job Control Plane API."""
-
-    _client: JobsClient
-
-    # Copy defaults from the synchronous client for use here.
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = JobsClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = JobsClient.DEFAULT_MTLS_ENDPOINT
-    _DEFAULT_ENDPOINT_TEMPLATE = JobsClient._DEFAULT_ENDPOINT_TEMPLATE
-    _DEFAULT_UNIVERSE = JobsClient._DEFAULT_UNIVERSE
-
-    connector_path = staticmethod(JobsClient.connector_path)
-    parse_connector_path = staticmethod(JobsClient.parse_connector_path)
-    crypto_key_path = staticmethod(JobsClient.crypto_key_path)
-    parse_crypto_key_path = staticmethod(JobsClient.parse_crypto_key_path)
-    execution_path = staticmethod(JobsClient.execution_path)
-    parse_execution_path = staticmethod(JobsClient.parse_execution_path)
-    job_path = staticmethod(JobsClient.job_path)
-    parse_job_path = staticmethod(JobsClient.parse_job_path)
-    policy_path = staticmethod(JobsClient.policy_path)
-    parse_policy_path = staticmethod(JobsClient.parse_policy_path)
-    secret_path = staticmethod(JobsClient.secret_path)
-    parse_secret_path = staticmethod(JobsClient.parse_secret_path)
-    secret_version_path = staticmethod(JobsClient.secret_version_path)
-    parse_secret_version_path = staticmethod(JobsClient.parse_secret_version_path)
-    common_billing_account_path = staticmethod(JobsClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(JobsClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(JobsClient.common_folder_path)
-    parse_common_folder_path = staticmethod(JobsClient.parse_common_folder_path)
-    common_organization_path = staticmethod(JobsClient.common_organization_path)
-    parse_common_organization_path = staticmethod(JobsClient.parse_common_organization_path)
-    common_project_path = staticmethod(JobsClient.common_project_path)
-    parse_common_project_path = staticmethod(JobsClient.parse_common_project_path)
-    common_location_path = staticmethod(JobsClient.common_location_path)
-    parse_common_location_path = staticmethod(JobsClient.parse_common_location_path)
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            JobsAsyncClient: The constructed client.
-        """
-        return JobsClient.from_service_account_info.__func__(JobsAsyncClient, info, *args, **kwargs)  # type: ignore
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            JobsAsyncClient: The constructed client.
-        """
-        return JobsClient.from_service_account_file.__func__(JobsAsyncClient, filename, *args, **kwargs)  # type: ignore
-
-    from_service_account_json = from_service_account_file
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
-        """Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-        return JobsClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> JobsTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            JobsTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._client._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used
-                by the client instance.
-        """
-        return self._client._universe_domain
-
-    get_transport_class = JobsClient.get_transport_class
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, JobsTransport, Callable[..., JobsTransport]]] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the jobs async client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,JobsTransport,Callable[..., JobsTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport to use.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the JobsTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = JobsClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def create_job(self,
-            request: Optional[Union[gcr_job.CreateJobRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            job: Optional[gcr_job.Job] = None,
-            job_id: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Creates a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_create_job():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                job = run_v2.Job()
-                job.start_execution_token = "start_execution_token_value"
-                job.template.template.max_retries = 1187
-
-                request = run_v2.CreateJobRequest(
-                    parent="parent_value",
-                    job=job,
-                    job_id="job_id_value",
-                )
-
-                # Make the request
-                operation = client.create_job(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.CreateJobRequest, dict]]):
-                The request object. Request message for creating a Job.
-            parent (:class:`str`):
-                Required. The location and project in
-                which this Job should be created.
-                Format:
-                projects/{project}/locations/{location},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            job (:class:`google.cloud.run_v2.types.Job`):
-                Required. The Job instance to create.
-                This corresponds to the ``job`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            job_id (:class:`str`):
-                Required. The unique identifier for the Job. The name of
-                the job becomes {parent}/jobs/{job_id}.
-
-                This corresponds to the ``job_id`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
-                   container image that is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent, job, job_id])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, gcr_job.CreateJobRequest):
-            request = gcr_job.CreateJobRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if parent is not None:
-            request.parent = parent
-        if job is not None:
-            request.job = job
-        if job_id is not None:
-            request.job_id = job_id
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.create_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            gcr_job.Job,
-            metadata_type=gcr_job.Job,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def get_job(self,
-            request: Optional[Union[job.GetJobRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> job.Job:
-        r"""Gets information about a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_get_job():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetJobRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = await client.get_job(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.GetJobRequest, dict]]):
-                The request object. Request message for obtaining a Job
-                by its full name.
-            name (:class:`str`):
-                Required. The full name of the Job.
-                Format:
-                projects/{project}/locations/{location}/jobs/{job},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Job:
-                Job represents the configuration of a
-                single job, which references a container
-                image that is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, job.GetJobRequest):
-            request = job.GetJobRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.get_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_jobs(self,
-            request: Optional[Union[job.ListJobsRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListJobsAsyncPager:
-        r"""Lists Jobs. Results are sorted by creation time,
-        descending.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_list_jobs():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListJobsRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_jobs(request=request)
-
-                # Handle the response
-                async for response in page_result:
-                    print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.ListJobsRequest, dict]]):
-                The request object. Request message for retrieving a list
-                of Jobs.
-            parent (:class:`str`):
-                Required. The location and project to
-                list resources on. Format:
-                projects/{project}/locations/{location},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.jobs.pagers.ListJobsAsyncPager:
-                Response message containing a list of
-                Jobs.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, job.ListJobsRequest):
-            request = job.ListJobsRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if parent is not None:
-            request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.list_jobs]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__aiter__` convenience method.
-        response = pagers.ListJobsAsyncPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def update_job(self,
-            request: Optional[Union[gcr_job.UpdateJobRequest, dict]] = None,
-            *,
-            job: Optional[gcr_job.Job] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Updates a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_update_job():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                job = run_v2.Job()
-                job.start_execution_token = "start_execution_token_value"
-                job.template.template.max_retries = 1187
-
-                request = run_v2.UpdateJobRequest(
-                    job=job,
-                )
-
-                # Make the request
-                operation = client.update_job(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.UpdateJobRequest, dict]]):
-                The request object. Request message for updating a Job.
-            job (:class:`google.cloud.run_v2.types.Job`):
-                Required. The Job to be updated.
-                This corresponds to the ``job`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
-                   container image that is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([job])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, gcr_job.UpdateJobRequest):
-            request = gcr_job.UpdateJobRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if job is not None:
-            request.job = job
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.update_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.job.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            gcr_job.Job,
-            metadata_type=gcr_job.Job,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def delete_job(self,
-            request: Optional[Union[job.DeleteJobRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Deletes a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_delete_job():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.DeleteJobRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.delete_job(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.DeleteJobRequest, dict]]):
-                The request object. Request message to delete a Job by
-                its full name.
-            name (:class:`str`):
-                Required. The full name of the Job.
-                Format:
-                projects/{project}/locations/{location}/jobs/{job},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
-                   container image that is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, job.DeleteJobRequest):
-            request = job.DeleteJobRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.delete_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            job.Job,
-            metadata_type=job.Job,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def run_job(self,
-            request: Optional[Union[job.RunJobRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Triggers creation of a new Execution of this Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_run_job():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.RunJobRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.run_job(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.RunJobRequest, dict]]):
-                The request object. Request message to create a new
-                Execution of a Job.
-            name (:class:`str`):
-                Required. The full name of the Job.
-                Format:
-                projects/{project}/locations/{location}/jobs/{job},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
-                   immutable resource that references a container image
-                   which is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, job.RunJobRequest):
-            request = job.RunJobRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.run_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            execution.Execution,
-            metadata_type=execution.Execution,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def get_iam_policy(self,
-            request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> policy_pb2.Policy:
-        r"""Gets the IAM Access Control policy currently in
-        effect for the given Job. This result does not include
-        any inherited policies.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            async def sample_get_iam_policy():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.GetIamPolicyRequest(
-                    resource="resource_value",
-                )
-
-                # Make the request
-                response = await client.get_iam_policy(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]]):
-                The request object. Request message for ``GetIamPolicy`` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.policy_pb2.Policy:
-                An Identity and Access Management (IAM) policy, which specifies access
-                   controls for Google Cloud resources.
-
-                   A Policy is a collection of bindings. A binding binds
-                   one or more members, or principals, to a single role.
-                   Principals can be user accounts, service accounts,
-                   Google groups, and domains (such as G Suite). A role
-                   is a named list of permissions; each role can be an
-                   IAM predefined role or a user-created custom role.
-
-                   For some types of Google Cloud resources, a binding
-                   can also specify a condition, which is a logical
-                   expression that allows access to a resource only if
-                   the expression evaluates to true. A condition can add
-                   constraints based on attributes of the request, the
-                   resource, or both. To learn which resources support
-                   conditions in their IAM policies, see the [IAM
-                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
-
-                   **JSON example:**
-
-                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
-
-                   **YAML example:**
-
-                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
-
-                   For a description of IAM and its features, see the
-                   [IAM
-                   documentation](\ https://cloud.google.com/iam/docs/).
-
-        """
-        # Create or coerce a protobuf request object.
-         # - The request isn't a proto-plus wrapped type,
-        #   so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = iam_policy_pb2.GetIamPolicyRequest(**request)
-        elif not request:
-            request = iam_policy_pb2.GetIamPolicyRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.get_iam_policy]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def set_iam_policy(self,
-            request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> policy_pb2.Policy:
-        r"""Sets the IAM Access control policy for the specified
-        Job. Overwrites any existing policy.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            async def sample_set_iam_policy():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.SetIamPolicyRequest(
-                    resource="resource_value",
-                )
-
-                # Make the request
-                response = await client.set_iam_policy(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]]):
-                The request object. Request message for ``SetIamPolicy`` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.policy_pb2.Policy:
-                An Identity and Access Management (IAM) policy, which specifies access
-                   controls for Google Cloud resources.
-
-                   A Policy is a collection of bindings. A binding binds
-                   one or more members, or principals, to a single role.
-                   Principals can be user accounts, service accounts,
-                   Google groups, and domains (such as G Suite). A role
-                   is a named list of permissions; each role can be an
-                   IAM predefined role or a user-created custom role.
-
-                   For some types of Google Cloud resources, a binding
-                   can also specify a condition, which is a logical
-                   expression that allows access to a resource only if
-                   the expression evaluates to true. A condition can add
-                   constraints based on attributes of the request, the
-                   resource, or both. To learn which resources support
-                   conditions in their IAM policies, see the [IAM
-                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
-
-                   **JSON example:**
-
-                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
-
-                   **YAML example:**
-
-                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
-
-                   For a description of IAM and its features, see the
-                   [IAM
-                   documentation](\ https://cloud.google.com/iam/docs/).
-
-        """
-        # Create or coerce a protobuf request object.
-         # - The request isn't a proto-plus wrapped type,
-        #   so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = iam_policy_pb2.SetIamPolicyRequest(**request)
-        elif not request:
-            request = iam_policy_pb2.SetIamPolicyRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.set_iam_policy]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def test_iam_permissions(self,
-            request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> iam_policy_pb2.TestIamPermissionsResponse:
-        r"""Returns permissions that a caller has on the
-        specified Project.
-        There are no permissions required for making this API
-        call.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            async def sample_test_iam_permissions():
-                # Create a client
-                client = run_v2.JobsAsyncClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.TestIamPermissionsRequest(
-                    resource="resource_value",
-                    permissions=['permissions_value1', 'permissions_value2'],
-                )
-
-                # Make the request
-                response = await client.test_iam_permissions(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]]):
-                The request object. Request message for ``TestIamPermissions`` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse:
-                Response message for TestIamPermissions method.
-        """
-        # Create or coerce a protobuf request object.
-         # - The request isn't a proto-plus wrapped type,
-        #   so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = iam_policy_pb2.TestIamPermissionsRequest(**request)
-        elif not request:
-            request = iam_policy_pb2.TestIamPermissionsRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.test_iam_permissions]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    async def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "JobsAsyncClient":
-        return self
-
-    async def __aexit__(self, exc_type, exc, tb):
-        await self.transport.close()
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "JobsAsyncClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/client.py
deleted file mode 100644
index bfad5d67382d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/client.py
+++ /dev/null
@@ -1,1922 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import os
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-import warnings
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core import client_options as client_options_lib
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials             # type: ignore
-from google.auth.transport import mtls                            # type: ignore
-from google.auth.transport.grpc import SslCredentials             # type: ignore
-from google.auth.exceptions import MutualTLSChannelError          # type: ignore
-from google.oauth2 import service_account                         # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.jobs import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import execution
-from google.cloud.run_v2.types import execution_template
-from google.cloud.run_v2.types import job
-from google.cloud.run_v2.types import job as gcr_job
-from google.cloud.run_v2.types import vendor_settings
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import JobsTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import JobsGrpcTransport
-from .transports.grpc_asyncio import JobsGrpcAsyncIOTransport
-from .transports.rest import JobsRestTransport
-
-
-class JobsClientMeta(type):
-    """Metaclass for the Jobs client.
-
-    This provides class-level methods for building and retrieving
-    support objects (e.g. transport) without polluting the client instance
-    objects.
-    """
-    _transport_registry = OrderedDict()  # type: Dict[str, Type[JobsTransport]]
-    _transport_registry["grpc"] = JobsGrpcTransport
-    _transport_registry["grpc_asyncio"] = JobsGrpcAsyncIOTransport
-    _transport_registry["rest"] = JobsRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[JobsTransport]:
-        """Returns an appropriate transport class.
-
-        Args:
-            label: The name of the desired transport. If none is
-                provided, then the first transport in the registry is used.
-
-        Returns:
-            The transport class to use.
-        """
-        # If a specific transport is requested, return that one.
-        if label:
-            return cls._transport_registry[label]
-
-        # No transport is requested; return the default (that is, the first one
-        # in the dictionary).
-        return next(iter(cls._transport_registry.values()))
-
-
-class JobsClient(metaclass=JobsClientMeta):
-    """Cloud Run Job Control Plane API."""
-
-    @staticmethod
-    def _get_default_mtls_endpoint(api_endpoint):
-        """Converts api endpoint to mTLS endpoint.
-
-        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
-        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
-        Args:
-            api_endpoint (Optional[str]): the api endpoint to convert.
-        Returns:
-            str: converted mTLS api endpoint.
-        """
-        if not api_endpoint:
-            return api_endpoint
-
-        mtls_endpoint_re = re.compile(
-            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
-        )
-
-        m = mtls_endpoint_re.match(api_endpoint)
-        name, mtls, sandbox, googledomain = m.groups()
-        if mtls or not googledomain:
-            return api_endpoint
-
-        if sandbox:
-            return api_endpoint.replace(
-                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
-            )
-
-        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
-
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = "run.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
-    _DEFAULT_UNIVERSE = "googleapis.com"
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            JobsClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_info(info)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            JobsClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_file(
-            filename)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    from_service_account_json = from_service_account_file
-
-    @property
-    def transport(self) -> JobsTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            JobsTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @staticmethod
-    def connector_path(project: str,location: str,connector: str,) -> str:
-        """Returns a fully-qualified connector string."""
-        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-
-    @staticmethod
-    def parse_connector_path(path: str) -> Dict[str,str]:
-        """Parses a connector path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
-        """Returns a fully-qualified crypto_key string."""
-        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-
-    @staticmethod
-    def parse_crypto_key_path(path: str) -> Dict[str,str]:
-        """Parses a crypto_key path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def execution_path(project: str,location: str,job: str,execution: str,) -> str:
-        """Returns a fully-qualified execution string."""
-        return "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
-
-    @staticmethod
-    def parse_execution_path(path: str) -> Dict[str,str]:
-        """Parses a execution path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)/executions/(?P<execution>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def job_path(project: str,location: str,job: str,) -> str:
-        """Returns a fully-qualified job string."""
-        return "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
-
-    @staticmethod
-    def parse_job_path(path: str) -> Dict[str,str]:
-        """Parses a job path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def policy_path(project: str,) -> str:
-        """Returns a fully-qualified policy string."""
-        return "projects/{project}/policy".format(project=project, )
-
-    @staticmethod
-    def parse_policy_path(path: str) -> Dict[str,str]:
-        """Parses a policy path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/policy$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_path(project: str,secret: str,) -> str:
-        """Returns a fully-qualified secret string."""
-        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-
-    @staticmethod
-    def parse_secret_path(path: str) -> Dict[str,str]:
-        """Parses a secret path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_version_path(project: str,secret: str,version: str,) -> str:
-        """Returns a fully-qualified secret_version string."""
-        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-
-    @staticmethod
-    def parse_secret_version_path(path: str) -> Dict[str,str]:
-        """Parses a secret_version path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_billing_account_path(billing_account: str, ) -> str:
-        """Returns a fully-qualified billing_account string."""
-        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-
-    @staticmethod
-    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
-        """Parse a billing_account path into its component segments."""
-        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_folder_path(folder: str, ) -> str:
-        """Returns a fully-qualified folder string."""
-        return "folders/{folder}".format(folder=folder, )
-
-    @staticmethod
-    def parse_common_folder_path(path: str) -> Dict[str,str]:
-        """Parse a folder path into its component segments."""
-        m = re.match(r"^folders/(?P<folder>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_organization_path(organization: str, ) -> str:
-        """Returns a fully-qualified organization string."""
-        return "organizations/{organization}".format(organization=organization, )
-
-    @staticmethod
-    def parse_common_organization_path(path: str) -> Dict[str,str]:
-        """Parse a organization path into its component segments."""
-        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_project_path(project: str, ) -> str:
-        """Returns a fully-qualified project string."""
-        return "projects/{project}".format(project=project, )
-
-    @staticmethod
-    def parse_common_project_path(path: str) -> Dict[str,str]:
-        """Parse a project path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_location_path(project: str, location: str, ) -> str:
-        """Returns a fully-qualified location string."""
-        return "projects/{project}/locations/{location}".format(project=project, location=location, )
-
-    @staticmethod
-    def parse_common_location_path(path: str) -> Dict[str,str]:
-        """Parse a location path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
-        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-
-        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
-            DeprecationWarning)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-
-        # Figure out the client cert source to use.
-        client_cert_source = None
-        if use_client_cert == "true":
-            if client_options.client_cert_source:
-                client_cert_source = client_options.client_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-
-        # Figure out which api endpoint to use.
-        if client_options.api_endpoint is not None:
-            api_endpoint = client_options.api_endpoint
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = cls.DEFAULT_ENDPOINT
-
-        return api_endpoint, client_cert_source
-
-    @staticmethod
-    def _read_environment_variables():
-        """Returns the environment variables used by the client.
-
-        Returns:
-            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
-            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
-
-        Raises:
-            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
-                any of ["true", "false"].
-            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
-                is not any of ["auto", "never", "always"].
-        """
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
-        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
-
-    @staticmethod
-    def _get_client_cert_source(provided_cert_source, use_cert_flag):
-        """Return the client cert source to be used by the client.
-
-        Args:
-            provided_cert_source (bytes): The client certificate source provided.
-            use_cert_flag (bool): A flag indicating whether to use the client certificate.
-
-        Returns:
-            bytes or None: The client cert source to be used by the client.
-        """
-        client_cert_source = None
-        if use_cert_flag:
-            if provided_cert_source:
-                client_cert_source = provided_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-        return client_cert_source
-
-    @staticmethod
-    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
-        """Return the API endpoint used by the client.
-
-        Args:
-            api_override (str): The API endpoint override. If specified, this is always
-                the return value of this function and the other arguments are not used.
-            client_cert_source (bytes): The client certificate source used by the client.
-            universe_domain (str): The universe domain used by the client.
-            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
-                Possible values are "always", "auto", or "never".
-
-        Returns:
-            str: The API endpoint to be used by the client.
-        """
-        if api_override is not None:
-            api_endpoint = api_override
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            _default_universe = JobsClient._DEFAULT_UNIVERSE
-            if universe_domain != _default_universe:
-                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
-            api_endpoint = JobsClient.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
-        return api_endpoint
-
-    @staticmethod
-    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
-        """Return the universe domain used by the client.
-
-        Args:
-            client_universe_domain (Optional[str]): The universe domain configured via the client options.
-            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
-
-        Returns:
-            str: The universe domain to be used by the client.
-
-        Raises:
-            ValueError: If the universe domain is an empty string.
-        """
-        universe_domain = JobsClient._DEFAULT_UNIVERSE
-        if client_universe_domain is not None:
-            universe_domain = client_universe_domain
-        elif universe_domain_env is not None:
-            universe_domain = universe_domain_env
-        if len(universe_domain.strip()) == 0:
-            raise ValueError("Universe Domain cannot be an empty string.")
-        return universe_domain
-
-    def _validate_universe_domain(self):
-        """Validates client's and credentials' universe domains are consistent.
-
-        Returns:
-            bool: True iff the configured universe domain is valid.
-
-        Raises:
-            ValueError: If the configured universe domain is not valid.
-        """
-
-        # NOTE (b/349488459): universe validation is disabled until further notice.
-        return True
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used by the client instance.
-        """
-        return self._universe_domain
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, JobsTransport, Callable[..., JobsTransport]]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the jobs client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,JobsTransport,Callable[..., JobsTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the JobsTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that the ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client_options = client_options
-        if isinstance(self._client_options, dict):
-            self._client_options = client_options_lib.from_dict(self._client_options)
-        if self._client_options is None:
-            self._client_options = client_options_lib.ClientOptions()
-        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
-
-        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
-
-        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = JobsClient._read_environment_variables()
-        self._client_cert_source = JobsClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
-        self._universe_domain = JobsClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
-        self._api_endpoint = None # updated below, depending on `transport`
-
-        # Initialize the universe domain validation.
-        self._is_universe_domain_valid = False
-
-        api_key_value = getattr(self._client_options, "api_key", None)
-        if api_key_value and credentials:
-            raise ValueError("client_options.api_key and credentials are mutually exclusive")
-
-        # Save or instantiate the transport.
-        # Ordinarily, we provide the transport, but allowing a custom transport
-        # instance provides an extensibility point for unusual situations.
-        transport_provided = isinstance(transport, JobsTransport)
-        if transport_provided:
-            # transport is a JobsTransport instance.
-            if credentials or self._client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if self._client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = cast(JobsTransport, transport)
-            self._api_endpoint = self._transport.host
-
-        self._api_endpoint = (self._api_endpoint or
-            JobsClient._get_api_endpoint(
-                self._client_options.api_endpoint,
-                self._client_cert_source,
-                self._universe_domain,
-                self._use_mtls_endpoint))
-
-        if not transport_provided:
-            import google.auth._default  # type: ignore
-
-            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
-                credentials = google.auth._default.get_api_key_credentials(api_key_value)
-
-            transport_init: Union[Type[JobsTransport], Callable[..., JobsTransport]] = (
-                JobsClient.get_transport_class(transport)
-                if isinstance(transport, str) or transport is None
-                else cast(Callable[..., JobsTransport], transport)
-            )
-            # initialize with the provided callable or the passed in class
-            self._transport = transport_init(
-                credentials=credentials,
-                credentials_file=self._client_options.credentials_file,
-                host=self._api_endpoint,
-                scopes=self._client_options.scopes,
-                client_cert_source_for_mtls=self._client_cert_source,
-                quota_project_id=self._client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=self._client_options.api_audience,
-            )
-
-    def create_job(self,
-            request: Optional[Union[gcr_job.CreateJobRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            job: Optional[gcr_job.Job] = None,
-            job_id: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Creates a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_create_job():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                job = run_v2.Job()
-                job.start_execution_token = "start_execution_token_value"
-                job.template.template.max_retries = 1187
-
-                request = run_v2.CreateJobRequest(
-                    parent="parent_value",
-                    job=job,
-                    job_id="job_id_value",
-                )
-
-                # Make the request
-                operation = client.create_job(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.CreateJobRequest, dict]):
-                The request object. Request message for creating a Job.
-            parent (str):
-                Required. The location and project in
-                which this Job should be created.
-                Format:
-                projects/{project}/locations/{location},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            job (google.cloud.run_v2.types.Job):
-                Required. The Job instance to create.
-                This corresponds to the ``job`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            job_id (str):
-                Required. The unique identifier for the Job. The name of
-                the job becomes {parent}/jobs/{job_id}.
-
-                This corresponds to the ``job_id`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
-                   container image that is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent, job, job_id])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, gcr_job.CreateJobRequest):
-            request = gcr_job.CreateJobRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if parent is not None:
-                request.parent = parent
-            if job is not None:
-                request.job = job
-            if job_id is not None:
-                request.job_id = job_id
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.create_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            gcr_job.Job,
-            metadata_type=gcr_job.Job,
-        )
-
-        # Done; return the response.
-        return response
-
-    def get_job(self,
-            request: Optional[Union[job.GetJobRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> job.Job:
-        r"""Gets information about a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_get_job():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetJobRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = client.get_job(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.GetJobRequest, dict]):
-                The request object. Request message for obtaining a Job
-                by its full name.
-            name (str):
-                Required. The full name of the Job.
-                Format:
-                projects/{project}/locations/{location}/jobs/{job},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Job:
-                Job represents the configuration of a
-                single job, which references a container
-                image that is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, job.GetJobRequest):
-            request = job.GetJobRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def list_jobs(self,
-            request: Optional[Union[job.ListJobsRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListJobsPager:
-        r"""Lists Jobs. Results are sorted by creation time,
-        descending.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_list_jobs():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListJobsRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_jobs(request=request)
-
-                # Handle the response
-                for response in page_result:
-                    print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.ListJobsRequest, dict]):
-                The request object. Request message for retrieving a list
-                of Jobs.
-            parent (str):
-                Required. The location and project to
-                list resources on. Format:
-                projects/{project}/locations/{location},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.jobs.pagers.ListJobsPager:
-                Response message containing a list of
-                Jobs.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, job.ListJobsRequest):
-            request = job.ListJobsRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if parent is not None:
-                request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_jobs]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__iter__` convenience method.
-        response = pagers.ListJobsPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def update_job(self,
-            request: Optional[Union[gcr_job.UpdateJobRequest, dict]] = None,
-            *,
-            job: Optional[gcr_job.Job] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Updates a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_update_job():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                job = run_v2.Job()
-                job.start_execution_token = "start_execution_token_value"
-                job.template.template.max_retries = 1187
-
-                request = run_v2.UpdateJobRequest(
-                    job=job,
-                )
-
-                # Make the request
-                operation = client.update_job(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.UpdateJobRequest, dict]):
-                The request object. Request message for updating a Job.
-            job (google.cloud.run_v2.types.Job):
-                Required. The Job to be updated.
-                This corresponds to the ``job`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
-                   container image that is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([job])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, gcr_job.UpdateJobRequest):
-            request = gcr_job.UpdateJobRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if job is not None:
-                request.job = job
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.update_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.job.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            gcr_job.Job,
-            metadata_type=gcr_job.Job,
-        )
-
-        # Done; return the response.
-        return response
-
-    def delete_job(self,
-            request: Optional[Union[job.DeleteJobRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Deletes a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_delete_job():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.DeleteJobRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.delete_job(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.DeleteJobRequest, dict]):
-                The request object. Request message to delete a Job by
-                its full name.
-            name (str):
-                Required. The full name of the Job.
-                Format:
-                projects/{project}/locations/{location}/jobs/{job},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Job` Job represents the configuration of a single job, which references a
-                   container image that is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, job.DeleteJobRequest):
-            request = job.DeleteJobRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            job.Job,
-            metadata_type=job.Job,
-        )
-
-        # Done; return the response.
-        return response
-
-    def run_job(self,
-            request: Optional[Union[job.RunJobRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Triggers creation of a new Execution of this Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_run_job():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.RunJobRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.run_job(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.RunJobRequest, dict]):
-                The request object. Request message to create a new
-                Execution of a Job.
-            name (str):
-                Required. The full name of the Job.
-                Format:
-                projects/{project}/locations/{location}/jobs/{job},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Execution` Execution represents the configuration of a single execution. A execution an
-                   immutable resource that references a container image
-                   which is run to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, job.RunJobRequest):
-            request = job.RunJobRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.run_job]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            execution.Execution,
-            metadata_type=execution.Execution,
-        )
-
-        # Done; return the response.
-        return response
-
-    def get_iam_policy(self,
-            request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> policy_pb2.Policy:
-        r"""Gets the IAM Access Control policy currently in
-        effect for the given Job. This result does not include
-        any inherited policies.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            def sample_get_iam_policy():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.GetIamPolicyRequest(
-                    resource="resource_value",
-                )
-
-                # Make the request
-                response = client.get_iam_policy(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]):
-                The request object. Request message for ``GetIamPolicy`` method.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.policy_pb2.Policy:
-                An Identity and Access Management (IAM) policy, which specifies access
-                   controls for Google Cloud resources.
-
-                   A Policy is a collection of bindings. A binding binds
-                   one or more members, or principals, to a single role.
-                   Principals can be user accounts, service accounts,
-                   Google groups, and domains (such as G Suite). A role
-                   is a named list of permissions; each role can be an
-                   IAM predefined role or a user-created custom role.
-
-                   For some types of Google Cloud resources, a binding
-                   can also specify a condition, which is a logical
-                   expression that allows access to a resource only if
-                   the expression evaluates to true. A condition can add
-                   constraints based on attributes of the request, the
-                   resource, or both. To learn which resources support
-                   conditions in their IAM policies, see the [IAM
-                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
-
-                   **JSON example:**
-
-                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
-
-                   **YAML example:**
-
-                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
-
-                   For a description of IAM and its features, see the
-                   [IAM
-                   documentation](\ https://cloud.google.com/iam/docs/).
-
-        """
-        # Create or coerce a protobuf request object.
-        if isinstance(request, dict):
-            # - The request isn't a proto-plus wrapped type,
-            #   so it must be constructed via keyword expansion.
-            request = iam_policy_pb2.GetIamPolicyRequest(**request)
-        elif not request:
-            # Null request, just make one.
-            request = iam_policy_pb2.GetIamPolicyRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_iam_policy]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def set_iam_policy(self,
-            request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> policy_pb2.Policy:
-        r"""Sets the IAM Access control policy for the specified
-        Job. Overwrites any existing policy.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            def sample_set_iam_policy():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.SetIamPolicyRequest(
-                    resource="resource_value",
-                )
-
-                # Make the request
-                response = client.set_iam_policy(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]):
-                The request object. Request message for ``SetIamPolicy`` method.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.policy_pb2.Policy:
-                An Identity and Access Management (IAM) policy, which specifies access
-                   controls for Google Cloud resources.
-
-                   A Policy is a collection of bindings. A binding binds
-                   one or more members, or principals, to a single role.
-                   Principals can be user accounts, service accounts,
-                   Google groups, and domains (such as G Suite). A role
-                   is a named list of permissions; each role can be an
-                   IAM predefined role or a user-created custom role.
-
-                   For some types of Google Cloud resources, a binding
-                   can also specify a condition, which is a logical
-                   expression that allows access to a resource only if
-                   the expression evaluates to true. A condition can add
-                   constraints based on attributes of the request, the
-                   resource, or both. To learn which resources support
-                   conditions in their IAM policies, see the [IAM
-                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
-
-                   **JSON example:**
-
-                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
-
-                   **YAML example:**
-
-                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
-
-                   For a description of IAM and its features, see the
-                   [IAM
-                   documentation](\ https://cloud.google.com/iam/docs/).
-
-        """
-        # Create or coerce a protobuf request object.
-        if isinstance(request, dict):
-            # - The request isn't a proto-plus wrapped type,
-            #   so it must be constructed via keyword expansion.
-            request = iam_policy_pb2.SetIamPolicyRequest(**request)
-        elif not request:
-            # Null request, just make one.
-            request = iam_policy_pb2.SetIamPolicyRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.set_iam_policy]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def test_iam_permissions(self,
-            request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> iam_policy_pb2.TestIamPermissionsResponse:
-        r"""Returns permissions that a caller has on the
-        specified Project.
-        There are no permissions required for making this API
-        call.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            def sample_test_iam_permissions():
-                # Create a client
-                client = run_v2.JobsClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.TestIamPermissionsRequest(
-                    resource="resource_value",
-                    permissions=['permissions_value1', 'permissions_value2'],
-                )
-
-                # Make the request
-                response = client.test_iam_permissions(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]):
-                The request object. Request message for ``TestIamPermissions`` method.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse:
-                Response message for TestIamPermissions method.
-        """
-        # Create or coerce a protobuf request object.
-        if isinstance(request, dict):
-            # - The request isn't a proto-plus wrapped type,
-            #   so it must be constructed via keyword expansion.
-            request = iam_policy_pb2.TestIamPermissionsRequest(**request)
-        elif not request:
-            # Null request, just make one.
-            request = iam_policy_pb2.TestIamPermissionsRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.test_iam_permissions]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "JobsClient":
-        return self
-
-    def __exit__(self, type, value, traceback):
-        """Releases underlying transport's resources.
-
-        .. warning::
-            ONLY use as a context manager if the transport is NOT shared
-            with other clients! Exiting the with block will CLOSE the transport
-            and may cause errors in other clients!
-        """
-        self.transport.close()
-
-    def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "JobsClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/pagers.py
deleted file mode 100644
index 200072a93a0d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/pagers.py
+++ /dev/null
@@ -1,162 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import retry_async as retries_async
-from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
-
-from google.cloud.run_v2.types import job
-
-
-class ListJobsPager:
-    """A pager for iterating through ``list_jobs`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListJobsResponse` object, and
-    provides an ``__iter__`` method to iterate through its
-    ``jobs`` field.
-
-    If there are more pages, the ``__iter__`` method will make additional
-    ``ListJobs`` requests and continue to iterate
-    through the ``jobs`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListJobsResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., job.ListJobsResponse],
-            request: job.ListJobsRequest,
-            response: job.ListJobsResponse,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiate the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListJobsRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListJobsResponse):
-                The initial response object.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = job.ListJobsRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    def pages(self) -> Iterator[job.ListJobsResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-
-    def __iter__(self) -> Iterator[job.Job]:
-        for page in self.pages:
-            yield from page.jobs
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
-
-
-class ListJobsAsyncPager:
-    """A pager for iterating through ``list_jobs`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListJobsResponse` object, and
-    provides an ``__aiter__`` method to iterate through its
-    ``jobs`` field.
-
-    If there are more pages, the ``__aiter__`` method will make additional
-    ``ListJobs`` requests and continue to iterate
-    through the ``jobs`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListJobsResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., Awaitable[job.ListJobsResponse]],
-            request: job.ListJobsRequest,
-            response: job.ListJobsResponse,
-            *,
-            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiates the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListJobsRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListJobsResponse):
-                The initial response object.
-            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = job.ListJobsRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    async def pages(self) -> AsyncIterator[job.ListJobsResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-    def __aiter__(self) -> AsyncIterator[job.Job]:
-        async def async_generator():
-            async for page in self.pages:
-                for response in page.jobs:
-                    yield response
-
-        return async_generator()
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/README.rst
deleted file mode 100644
index 098a69237e16..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/README.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-
-transport inheritance structure
-_______________________________
-
-`JobsTransport` is the ABC for all transports.
-- public child `JobsGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
-- public child `JobsGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
-- private child `_BaseJobsRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
-- public child `JobsRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/__init__.py
deleted file mode 100644
index f4812231df92..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-from typing import Dict, Type
-
-from .base import JobsTransport
-from .grpc import JobsGrpcTransport
-from .grpc_asyncio import JobsGrpcAsyncIOTransport
-from .rest import JobsRestTransport
-from .rest import JobsRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[JobsTransport]]
-_transport_registry['grpc'] = JobsGrpcTransport
-_transport_registry['grpc_asyncio'] = JobsGrpcAsyncIOTransport
-_transport_registry['rest'] = JobsRestTransport
-
-__all__ = (
-    'JobsTransport',
-    'JobsGrpcTransport',
-    'JobsGrpcAsyncIOTransport',
-    'JobsRestTransport',
-    'JobsRestInterceptor',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/base.py
deleted file mode 100644
index a94a8f9e129b..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/base.py
+++ /dev/null
@@ -1,333 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 abc
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-import google.auth  # type: ignore
-import google.api_core
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import operations_v1
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.oauth2 import service_account # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import job
-from google.cloud.run_v2.types import job as gcr_job
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class JobsTransport(abc.ABC):
-    """Abstract transport class for Jobs."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'run.googleapis.com'
-    def __init__(
-            self, *,
-            host: str = DEFAULT_HOST,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            **kwargs,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A list of scopes.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-        """
-
-        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
-
-        # Save the scopes.
-        self._scopes = scopes
-        if not hasattr(self, "_ignore_credentials"):
-            self._ignore_credentials: bool = False
-
-        # If no credentials are provided, then determine the appropriate
-        # defaults.
-        if credentials and credentials_file:
-            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
-
-        if credentials_file is not None:
-            credentials, _ = google.auth.load_credentials_from_file(
-                                credentials_file,
-                                **scopes_kwargs,
-                                quota_project_id=quota_project_id
-                            )
-        elif credentials is None and not self._ignore_credentials:
-            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
-            # Don't apply audience if the credentials file passed from user.
-            if hasattr(credentials, "with_gdch_audience"):
-                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
-
-        # If the credentials are service account credentials, then always try to use self signed JWT.
-        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
-            credentials = credentials.with_always_use_jwt_access(True)
-
-        # Save the credentials.
-        self._credentials = credentials
-
-        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
-        if ':' not in host:
-            host += ':443'
-        self._host = host
-
-    @property
-    def host(self):
-        return self._host
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.create_job: gapic_v1.method.wrap_method(
-                self.create_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_job: gapic_v1.method.wrap_method(
-                self.get_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_jobs: gapic_v1.method.wrap_method(
-                self.list_jobs,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.update_job: gapic_v1.method.wrap_method(
-                self.update_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_job: gapic_v1.method.wrap_method(
-                self.delete_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.run_job: gapic_v1.method.wrap_method(
-                self.run_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_iam_policy: gapic_v1.method.wrap_method(
-                self.get_iam_policy,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.set_iam_policy: gapic_v1.method.wrap_method(
-                self.set_iam_policy,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.test_iam_permissions: gapic_v1.method.wrap_method(
-                self.test_iam_permissions,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: gapic_v1.method.wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: gapic_v1.method.wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: gapic_v1.method.wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: gapic_v1.method.wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-         }
-
-    def close(self):
-        """Closes resources associated with the transport.
-
-       .. warning::
-            Only call this method if the transport is NOT shared
-            with other clients - this may cause errors in other clients!
-        """
-        raise NotImplementedError()
-
-    @property
-    def operations_client(self):
-        """Return the client designed to process long-running operations."""
-        raise NotImplementedError()
-
-    @property
-    def create_job(self) -> Callable[
-            [gcr_job.CreateJobRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def get_job(self) -> Callable[
-            [job.GetJobRequest],
-            Union[
-                job.Job,
-                Awaitable[job.Job]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_jobs(self) -> Callable[
-            [job.ListJobsRequest],
-            Union[
-                job.ListJobsResponse,
-                Awaitable[job.ListJobsResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def update_job(self) -> Callable[
-            [gcr_job.UpdateJobRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def delete_job(self) -> Callable[
-            [job.DeleteJobRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def run_job(self) -> Callable[
-            [job.RunJobRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def get_iam_policy(self) -> Callable[
-            [iam_policy_pb2.GetIamPolicyRequest],
-            Union[
-                policy_pb2.Policy,
-                Awaitable[policy_pb2.Policy]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def set_iam_policy(self) -> Callable[
-            [iam_policy_pb2.SetIamPolicyRequest],
-            Union[
-                policy_pb2.Policy,
-                Awaitable[policy_pb2.Policy]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def test_iam_permissions(self) -> Callable[
-            [iam_policy_pb2.TestIamPermissionsRequest],
-            Union[
-                iam_policy_pb2.TestIamPermissionsResponse,
-                Awaitable[iam_policy_pb2.TestIamPermissionsResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[
-        [operations_pb2.ListOperationsRequest],
-        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.GetOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.DeleteOperationRequest],
-        None,
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.WaitOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'JobsTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc.py
deleted file mode 100644
index 6b3c08fcc8d3..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc.py
+++ /dev/null
@@ -1,580 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 warnings
-from typing import Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import grpc_helpers
-from google.api_core import operations_v1
-from google.api_core import gapic_v1
-import google.auth                         # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import job
-from google.cloud.run_v2.types import job as gcr_job
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from .base import JobsTransport, DEFAULT_CLIENT_INFO
-
-
-class JobsGrpcTransport(JobsTransport):
-    """gRPC backend transport for Jobs.
-
-    Cloud Run Job Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-    _stubs: Dict[str, Callable]
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[grpc.Channel, Callable[..., 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,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if a ``channel`` instance is provided.
-            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-        self._operations_client: Optional[operations_v1.OperationsClient] = None
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, grpc.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._prep_wrapped_messages(client_info)
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> grpc.Channel:
-        """Create and return a gRPC channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            grpc.Channel: A gRPC channel object.
-
-        Raises:
-            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-
-        return grpc_helpers.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    @property
-    def grpc_channel(self) -> grpc.Channel:
-        """Return the channel designed to connect to this service.
-        """
-        return self._grpc_channel
-
-    @property
-    def operations_client(self) -> operations_v1.OperationsClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Quick check: Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            self._operations_client = operations_v1.OperationsClient(
-                self.grpc_channel
-            )
-
-        # Return the client from cache.
-        return self._operations_client
-
-    @property
-    def create_job(self) -> Callable[
-            [gcr_job.CreateJobRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the create job method over gRPC.
-
-        Creates a Job.
-
-        Returns:
-            Callable[[~.CreateJobRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'create_job' not in self._stubs:
-            self._stubs['create_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/CreateJob',
-                request_serializer=gcr_job.CreateJobRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['create_job']
-
-    @property
-    def get_job(self) -> Callable[
-            [job.GetJobRequest],
-            job.Job]:
-        r"""Return a callable for the get job method over gRPC.
-
-        Gets information about a Job.
-
-        Returns:
-            Callable[[~.GetJobRequest],
-                    ~.Job]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_job' not in self._stubs:
-            self._stubs['get_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/GetJob',
-                request_serializer=job.GetJobRequest.serialize,
-                response_deserializer=job.Job.deserialize,
-            )
-        return self._stubs['get_job']
-
-    @property
-    def list_jobs(self) -> Callable[
-            [job.ListJobsRequest],
-            job.ListJobsResponse]:
-        r"""Return a callable for the list jobs method over gRPC.
-
-        Lists Jobs. Results are sorted by creation time,
-        descending.
-
-        Returns:
-            Callable[[~.ListJobsRequest],
-                    ~.ListJobsResponse]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_jobs' not in self._stubs:
-            self._stubs['list_jobs'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/ListJobs',
-                request_serializer=job.ListJobsRequest.serialize,
-                response_deserializer=job.ListJobsResponse.deserialize,
-            )
-        return self._stubs['list_jobs']
-
-    @property
-    def update_job(self) -> Callable[
-            [gcr_job.UpdateJobRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the update job method over gRPC.
-
-        Updates a Job.
-
-        Returns:
-            Callable[[~.UpdateJobRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'update_job' not in self._stubs:
-            self._stubs['update_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/UpdateJob',
-                request_serializer=gcr_job.UpdateJobRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['update_job']
-
-    @property
-    def delete_job(self) -> Callable[
-            [job.DeleteJobRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the delete job method over gRPC.
-
-        Deletes a Job.
-
-        Returns:
-            Callable[[~.DeleteJobRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'delete_job' not in self._stubs:
-            self._stubs['delete_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/DeleteJob',
-                request_serializer=job.DeleteJobRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['delete_job']
-
-    @property
-    def run_job(self) -> Callable[
-            [job.RunJobRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the run job method over gRPC.
-
-        Triggers creation of a new Execution of this Job.
-
-        Returns:
-            Callable[[~.RunJobRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'run_job' not in self._stubs:
-            self._stubs['run_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/RunJob',
-                request_serializer=job.RunJobRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['run_job']
-
-    @property
-    def get_iam_policy(self) -> Callable[
-            [iam_policy_pb2.GetIamPolicyRequest],
-            policy_pb2.Policy]:
-        r"""Return a callable for the get iam policy method over gRPC.
-
-        Gets the IAM Access Control policy currently in
-        effect for the given Job. This result does not include
-        any inherited policies.
-
-        Returns:
-            Callable[[~.GetIamPolicyRequest],
-                    ~.Policy]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_iam_policy' not in self._stubs:
-            self._stubs['get_iam_policy'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/GetIamPolicy',
-                request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString,
-                response_deserializer=policy_pb2.Policy.FromString,
-            )
-        return self._stubs['get_iam_policy']
-
-    @property
-    def set_iam_policy(self) -> Callable[
-            [iam_policy_pb2.SetIamPolicyRequest],
-            policy_pb2.Policy]:
-        r"""Return a callable for the set iam policy method over gRPC.
-
-        Sets the IAM Access control policy for the specified
-        Job. Overwrites any existing policy.
-
-        Returns:
-            Callable[[~.SetIamPolicyRequest],
-                    ~.Policy]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'set_iam_policy' not in self._stubs:
-            self._stubs['set_iam_policy'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/SetIamPolicy',
-                request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString,
-                response_deserializer=policy_pb2.Policy.FromString,
-            )
-        return self._stubs['set_iam_policy']
-
-    @property
-    def test_iam_permissions(self) -> Callable[
-            [iam_policy_pb2.TestIamPermissionsRequest],
-            iam_policy_pb2.TestIamPermissionsResponse]:
-        r"""Return a callable for the test iam permissions method over gRPC.
-
-        Returns permissions that a caller has on the
-        specified Project.
-        There are no permissions required for making this API
-        call.
-
-        Returns:
-            Callable[[~.TestIamPermissionsRequest],
-                    ~.TestIamPermissionsResponse]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'test_iam_permissions' not in self._stubs:
-            self._stubs['test_iam_permissions'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/TestIamPermissions',
-                request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString,
-                response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString,
-            )
-        return self._stubs['test_iam_permissions']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'JobsGrpcTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc_asyncio.py
deleted file mode 100644
index cbd2fedf21b0..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,661 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 inspect
-import warnings
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry_async as retries
-from google.api_core import operations_v1
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc                        # type: ignore
-from grpc.experimental import aio  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import job
-from google.cloud.run_v2.types import job as gcr_job
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from .base import JobsTransport, DEFAULT_CLIENT_INFO
-from .grpc import JobsGrpcTransport
-
-
-class JobsGrpcAsyncIOTransport(JobsTransport):
-    """gRPC AsyncIO backend transport for Jobs.
-
-    Cloud Run Job Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-
-    _grpc_channel: aio.Channel
-    _stubs: Dict[str, Callable] = {}
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> aio.Channel:
-        """Create and return a gRPC AsyncIO channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            aio.Channel: A gRPC AsyncIO channel object.
-        """
-
-        return grpc_helpers_async.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[aio.Channel, Callable[..., 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,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, aio.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def grpc_channel(self) -> aio.Channel:
-        """Create the channel designed to connect to this service.
-
-        This property caches on the instance; repeated calls return
-        the same channel.
-        """
-        # Return the channel from cache.
-        return self._grpc_channel
-
-    @property
-    def operations_client(self) -> operations_v1.OperationsAsyncClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Quick check: Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            self._operations_client = operations_v1.OperationsAsyncClient(
-                self.grpc_channel
-            )
-
-        # Return the client from cache.
-        return self._operations_client
-
-    @property
-    def create_job(self) -> Callable[
-            [gcr_job.CreateJobRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the create job method over gRPC.
-
-        Creates a Job.
-
-        Returns:
-            Callable[[~.CreateJobRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'create_job' not in self._stubs:
-            self._stubs['create_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/CreateJob',
-                request_serializer=gcr_job.CreateJobRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['create_job']
-
-    @property
-    def get_job(self) -> Callable[
-            [job.GetJobRequest],
-            Awaitable[job.Job]]:
-        r"""Return a callable for the get job method over gRPC.
-
-        Gets information about a Job.
-
-        Returns:
-            Callable[[~.GetJobRequest],
-                    Awaitable[~.Job]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_job' not in self._stubs:
-            self._stubs['get_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/GetJob',
-                request_serializer=job.GetJobRequest.serialize,
-                response_deserializer=job.Job.deserialize,
-            )
-        return self._stubs['get_job']
-
-    @property
-    def list_jobs(self) -> Callable[
-            [job.ListJobsRequest],
-            Awaitable[job.ListJobsResponse]]:
-        r"""Return a callable for the list jobs method over gRPC.
-
-        Lists Jobs. Results are sorted by creation time,
-        descending.
-
-        Returns:
-            Callable[[~.ListJobsRequest],
-                    Awaitable[~.ListJobsResponse]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_jobs' not in self._stubs:
-            self._stubs['list_jobs'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/ListJobs',
-                request_serializer=job.ListJobsRequest.serialize,
-                response_deserializer=job.ListJobsResponse.deserialize,
-            )
-        return self._stubs['list_jobs']
-
-    @property
-    def update_job(self) -> Callable[
-            [gcr_job.UpdateJobRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the update job method over gRPC.
-
-        Updates a Job.
-
-        Returns:
-            Callable[[~.UpdateJobRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'update_job' not in self._stubs:
-            self._stubs['update_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/UpdateJob',
-                request_serializer=gcr_job.UpdateJobRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['update_job']
-
-    @property
-    def delete_job(self) -> Callable[
-            [job.DeleteJobRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the delete job method over gRPC.
-
-        Deletes a Job.
-
-        Returns:
-            Callable[[~.DeleteJobRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'delete_job' not in self._stubs:
-            self._stubs['delete_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/DeleteJob',
-                request_serializer=job.DeleteJobRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['delete_job']
-
-    @property
-    def run_job(self) -> Callable[
-            [job.RunJobRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the run job method over gRPC.
-
-        Triggers creation of a new Execution of this Job.
-
-        Returns:
-            Callable[[~.RunJobRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'run_job' not in self._stubs:
-            self._stubs['run_job'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/RunJob',
-                request_serializer=job.RunJobRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['run_job']
-
-    @property
-    def get_iam_policy(self) -> Callable[
-            [iam_policy_pb2.GetIamPolicyRequest],
-            Awaitable[policy_pb2.Policy]]:
-        r"""Return a callable for the get iam policy method over gRPC.
-
-        Gets the IAM Access Control policy currently in
-        effect for the given Job. This result does not include
-        any inherited policies.
-
-        Returns:
-            Callable[[~.GetIamPolicyRequest],
-                    Awaitable[~.Policy]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_iam_policy' not in self._stubs:
-            self._stubs['get_iam_policy'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/GetIamPolicy',
-                request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString,
-                response_deserializer=policy_pb2.Policy.FromString,
-            )
-        return self._stubs['get_iam_policy']
-
-    @property
-    def set_iam_policy(self) -> Callable[
-            [iam_policy_pb2.SetIamPolicyRequest],
-            Awaitable[policy_pb2.Policy]]:
-        r"""Return a callable for the set iam policy method over gRPC.
-
-        Sets the IAM Access control policy for the specified
-        Job. Overwrites any existing policy.
-
-        Returns:
-            Callable[[~.SetIamPolicyRequest],
-                    Awaitable[~.Policy]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'set_iam_policy' not in self._stubs:
-            self._stubs['set_iam_policy'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/SetIamPolicy',
-                request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString,
-                response_deserializer=policy_pb2.Policy.FromString,
-            )
-        return self._stubs['set_iam_policy']
-
-    @property
-    def test_iam_permissions(self) -> Callable[
-            [iam_policy_pb2.TestIamPermissionsRequest],
-            Awaitable[iam_policy_pb2.TestIamPermissionsResponse]]:
-        r"""Return a callable for the test iam permissions method over gRPC.
-
-        Returns permissions that a caller has on the
-        specified Project.
-        There are no permissions required for making this API
-        call.
-
-        Returns:
-            Callable[[~.TestIamPermissionsRequest],
-                    Awaitable[~.TestIamPermissionsResponse]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'test_iam_permissions' not in self._stubs:
-            self._stubs['test_iam_permissions'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Jobs/TestIamPermissions',
-                request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString,
-                response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString,
-            )
-        return self._stubs['test_iam_permissions']
-
-    def _prep_wrapped_messages(self, client_info):
-        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
-        self._wrapped_methods = {
-            self.create_job: self._wrap_method(
-                self.create_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_job: self._wrap_method(
-                self.get_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_jobs: self._wrap_method(
-                self.list_jobs,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.update_job: self._wrap_method(
-                self.update_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_job: self._wrap_method(
-                self.delete_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.run_job: self._wrap_method(
-                self.run_job,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_iam_policy: self._wrap_method(
-                self.get_iam_policy,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.set_iam_policy: self._wrap_method(
-                self.set_iam_policy,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.test_iam_permissions: self._wrap_method(
-                self.test_iam_permissions,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: self._wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: self._wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: self._wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: self._wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-        }
-
-    def _wrap_method(self, func, *args, **kwargs):
-        if self._wrap_with_kind:  # pragma: NO COVER
-            kwargs["kind"] = self.kind
-        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
-
-    def close(self):
-        return self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc_asyncio"
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-
-__all__ = (
-    'JobsGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest.py
deleted file mode 100644
index a2a22c7aad47..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest.py
+++ /dev/null
@@ -1,1711 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-
-from google.auth.transport.requests import AuthorizedSession  # type: ignore
-import json  # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry as retries
-from google.api_core import rest_helpers
-from google.api_core import rest_streaming
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.api_core import operations_v1
-from google.cloud.location import locations_pb2 # type: ignore
-
-from requests import __version__ as requests_version
-import dataclasses
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-
-from google.cloud.run_v2.types import job
-from google.cloud.run_v2.types import job as gcr_job
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2  # type: ignore
-
-
-from .rest_base import _BaseJobsRestTransport
-from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=f"requests@{requests_version}",
-)
-
-
-class JobsRestInterceptor:
-    """Interceptor for Jobs.
-
-    Interceptors are used to manipulate requests, request metadata, and responses
-    in arbitrary ways.
-    Example use cases include:
-    * Logging
-    * Verifying requests according to service or custom semantics
-    * Stripping extraneous information from responses
-
-    These use cases and more can be enabled by injecting an
-    instance of a custom subclass when constructing the JobsRestTransport.
-
-    .. code-block:: python
-        class MyCustomJobsInterceptor(JobsRestInterceptor):
-            def pre_create_job(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_create_job(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_delete_job(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_delete_job(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_get_iam_policy(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_get_iam_policy(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_get_job(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_get_job(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_list_jobs(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_list_jobs(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_run_job(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_run_job(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_set_iam_policy(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_set_iam_policy(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_test_iam_permissions(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_test_iam_permissions(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_update_job(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_update_job(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = JobsRestTransport(interceptor=MyCustomJobsInterceptor())
-        client = JobsClient(transport=transport)
-
-
-    """
-    def pre_create_job(self, request: gcr_job.CreateJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[gcr_job.CreateJobRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for create_job
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_create_job(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for create_job
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_job(self, request: job.DeleteJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[job.DeleteJobRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_job
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_delete_job(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for delete_job
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_iam_policy(self, request: iam_policy_pb2.GetIamPolicyRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.GetIamPolicyRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_iam_policy
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_get_iam_policy(self, response: policy_pb2.Policy) -> policy_pb2.Policy:
-        """Post-rpc interceptor for get_iam_policy
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_job(self, request: job.GetJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[job.GetJobRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_job
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_get_job(self, response: job.Job) -> job.Job:
-        """Post-rpc interceptor for get_job
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_jobs(self, request: job.ListJobsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[job.ListJobsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_jobs
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_list_jobs(self, response: job.ListJobsResponse) -> job.ListJobsResponse:
-        """Post-rpc interceptor for list_jobs
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_run_job(self, request: job.RunJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[job.RunJobRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for run_job
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_run_job(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for run_job
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_set_iam_policy(self, request: iam_policy_pb2.SetIamPolicyRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.SetIamPolicyRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for set_iam_policy
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_set_iam_policy(self, response: policy_pb2.Policy) -> policy_pb2.Policy:
-        """Post-rpc interceptor for set_iam_policy
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_test_iam_permissions(self, request: iam_policy_pb2.TestIamPermissionsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.TestIamPermissionsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for test_iam_permissions
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_test_iam_permissions(self, response: iam_policy_pb2.TestIamPermissionsResponse) -> iam_policy_pb2.TestIamPermissionsResponse:
-        """Post-rpc interceptor for test_iam_permissions
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_update_job(self, request: gcr_job.UpdateJobRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[gcr_job.UpdateJobRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for update_job
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_update_job(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for update_job
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_operation(
-        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_delete_operation(
-        self, response: None
-    ) -> None:
-        """Post-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_operation(
-        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_get_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_operations(
-        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_list_operations(
-        self, response: operations_pb2.ListOperationsResponse
-    ) -> operations_pb2.ListOperationsResponse:
-        """Post-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_wait_operation(
-        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Jobs server.
-        """
-        return request, metadata
-
-    def post_wait_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Jobs server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class JobsRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: JobsRestInterceptor
-
-
-class JobsRestTransport(_BaseJobsRestTransport):
-    """REST backend synchronous transport for Jobs.
-
-    Cloud Run Job Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            url_scheme: str = 'https',
-            interceptor: Optional[JobsRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
-                certificate to configure mutual TLS HTTP channel. It is ignored
-                if ``channel`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
-        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
-        # credentials object
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            url_scheme=url_scheme,
-            api_audience=api_audience
-        )
-        self._session = AuthorizedSession(
-            self._credentials, default_host=self.DEFAULT_HOST)
-        self._operations_client: Optional[operations_v1.AbstractOperationsClient] = None
-        if client_cert_source_for_mtls:
-            self._session.configure_mtls_channel(client_cert_source_for_mtls)
-        self._interceptor = interceptor or JobsRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def operations_client(self) -> operations_v1.AbstractOperationsClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            http_options: Dict[str, List[Dict[str, str]]] = {
-                'google.longrunning.Operations.DeleteOperation': [
-                    {
-                        'method': 'delete',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-                    },
-                ],
-                'google.longrunning.Operations.GetOperation': [
-                    {
-                        'method': 'get',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-                    },
-                ],
-                'google.longrunning.Operations.ListOperations': [
-                    {
-                        'method': 'get',
-                        'uri': '/v2/{name=projects/*/locations/*}/operations',
-                    },
-                ],
-                'google.longrunning.Operations.WaitOperation': [
-                    {
-                        'method': 'post',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                        'body': '*',
-                    },
-                ],
-            }
-
-            rest_transport = operations_v1.OperationsRestTransport(
-                    host=self._host,
-                    # use the credentials which are saved
-                    credentials=self._credentials,
-                    scopes=self._scopes,
-                    http_options=http_options,
-                    path_prefix="v2")
-
-            self._operations_client = operations_v1.AbstractOperationsClient(transport=rest_transport)
-
-        # Return the client from cache.
-        return self._operations_client
-
-    class _CreateJob(_BaseJobsRestTransport._BaseCreateJob, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.CreateJob")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: gcr_job.CreateJobRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the create job method over HTTP.
-
-            Args:
-                request (~.gcr_job.CreateJobRequest):
-                    The request object. Request message for creating a Job.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseJobsRestTransport._BaseCreateJob._get_http_options()
-            request, metadata = self._interceptor.pre_create_job(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseCreateJob._get_transcoded_request(http_options, request)
-
-            body = _BaseJobsRestTransport._BaseCreateJob._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseCreateJob._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._CreateJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_create_job(resp)
-            return resp
-
-    class _DeleteJob(_BaseJobsRestTransport._BaseDeleteJob, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.DeleteJob")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: job.DeleteJobRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the delete job method over HTTP.
-
-            Args:
-                request (~.job.DeleteJobRequest):
-                    The request object. Request message to delete a Job by
-                its full name.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseJobsRestTransport._BaseDeleteJob._get_http_options()
-            request, metadata = self._interceptor.pre_delete_job(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseDeleteJob._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseDeleteJob._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._DeleteJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_delete_job(resp)
-            return resp
-
-    class _GetIamPolicy(_BaseJobsRestTransport._BaseGetIamPolicy, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.GetIamPolicy")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: iam_policy_pb2.GetIamPolicyRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> policy_pb2.Policy:
-            r"""Call the get iam policy method over HTTP.
-
-            Args:
-                request (~.iam_policy_pb2.GetIamPolicyRequest):
-                    The request object. Request message for ``GetIamPolicy`` method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.policy_pb2.Policy:
-                    An Identity and Access Management (IAM) policy, which
-                specifies access controls for Google Cloud resources.
-
-                A ``Policy`` is a collection of ``bindings``. A
-                ``binding`` binds one or more ``members``, or
-                principals, to a single ``role``. Principals can be user
-                accounts, service accounts, Google groups, and domains
-                (such as G Suite). A ``role`` is a named list of
-                permissions; each ``role`` can be an IAM predefined role
-                or a user-created custom role.
-
-                For some types of Google Cloud resources, a ``binding``
-                can also specify a ``condition``, which is a logical
-                expression that allows access to a resource only if the
-                expression evaluates to ``true``. A condition can add
-                constraints based on attributes of the request, the
-                resource, or both. To learn which resources support
-                conditions in their IAM policies, see the `IAM
-                documentation <https://cloud.google.com/iam/help/conditions/resource-policies>`__.
-
-                **JSON example:**
-
-                ::
-
-                       {
-                         "bindings": [
-                           {
-                             "role": "roles/resourcemanager.organizationAdmin",
-                             "members": [
-                               "user:mike@example.com",
-                               "group:admins@example.com",
-                               "domain:google.com",
-                               "serviceAccount:my-project-id@appspot.gserviceaccount.com"
-                             ]
-                           },
-                           {
-                             "role": "roles/resourcemanager.organizationViewer",
-                             "members": [
-                               "user:eve@example.com"
-                             ],
-                             "condition": {
-                               "title": "expirable access",
-                               "description": "Does not grant access after Sep 2020",
-                               "expression": "request.time <
-                               timestamp('2020-10-01T00:00:00.000Z')",
-                             }
-                           }
-                         ],
-                         "etag": "BwWWja0YfJA=",
-                         "version": 3
-                       }
-
-                **YAML example:**
-
-                ::
-
-                       bindings:
-                       - members:
-                         - user:mike@example.com
-                         - group:admins@example.com
-                         - domain:google.com
-                         - serviceAccount:my-project-id@appspot.gserviceaccount.com
-                         role: roles/resourcemanager.organizationAdmin
-                       - members:
-                         - user:eve@example.com
-                         role: roles/resourcemanager.organizationViewer
-                         condition:
-                           title: expirable access
-                           description: Does not grant access after Sep 2020
-                           expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
-                       etag: BwWWja0YfJA=
-                       version: 3
-
-                For a description of IAM and its features, see the `IAM
-                documentation <https://cloud.google.com/iam/docs/>`__.
-
-            """
-
-            http_options = _BaseJobsRestTransport._BaseGetIamPolicy._get_http_options()
-            request, metadata = self._interceptor.pre_get_iam_policy(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseGetIamPolicy._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseGetIamPolicy._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._GetIamPolicy._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = policy_pb2.Policy()
-            pb_resp = resp
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_get_iam_policy(resp)
-            return resp
-
-    class _GetJob(_BaseJobsRestTransport._BaseGetJob, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.GetJob")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: job.GetJobRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> job.Job:
-            r"""Call the get job method over HTTP.
-
-            Args:
-                request (~.job.GetJobRequest):
-                    The request object. Request message for obtaining a Job
-                by its full name.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.job.Job:
-                    Job represents the configuration of a
-                single job, which references a container
-                image that is run to completion.
-
-            """
-
-            http_options = _BaseJobsRestTransport._BaseGetJob._get_http_options()
-            request, metadata = self._interceptor.pre_get_job(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseGetJob._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseGetJob._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._GetJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = job.Job()
-            pb_resp = job.Job.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_get_job(resp)
-            return resp
-
-    class _ListJobs(_BaseJobsRestTransport._BaseListJobs, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.ListJobs")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: job.ListJobsRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> job.ListJobsResponse:
-            r"""Call the list jobs method over HTTP.
-
-            Args:
-                request (~.job.ListJobsRequest):
-                    The request object. Request message for retrieving a list
-                of Jobs.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.job.ListJobsResponse:
-                    Response message containing a list of
-                Jobs.
-
-            """
-
-            http_options = _BaseJobsRestTransport._BaseListJobs._get_http_options()
-            request, metadata = self._interceptor.pre_list_jobs(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseListJobs._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseListJobs._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._ListJobs._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = job.ListJobsResponse()
-            pb_resp = job.ListJobsResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_list_jobs(resp)
-            return resp
-
-    class _RunJob(_BaseJobsRestTransport._BaseRunJob, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.RunJob")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: job.RunJobRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the run job method over HTTP.
-
-            Args:
-                request (~.job.RunJobRequest):
-                    The request object. Request message to create a new
-                Execution of a Job.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseJobsRestTransport._BaseRunJob._get_http_options()
-            request, metadata = self._interceptor.pre_run_job(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseRunJob._get_transcoded_request(http_options, request)
-
-            body = _BaseJobsRestTransport._BaseRunJob._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseRunJob._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._RunJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_run_job(resp)
-            return resp
-
-    class _SetIamPolicy(_BaseJobsRestTransport._BaseSetIamPolicy, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.SetIamPolicy")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: iam_policy_pb2.SetIamPolicyRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> policy_pb2.Policy:
-            r"""Call the set iam policy method over HTTP.
-
-            Args:
-                request (~.iam_policy_pb2.SetIamPolicyRequest):
-                    The request object. Request message for ``SetIamPolicy`` method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.policy_pb2.Policy:
-                    An Identity and Access Management (IAM) policy, which
-                specifies access controls for Google Cloud resources.
-
-                A ``Policy`` is a collection of ``bindings``. A
-                ``binding`` binds one or more ``members``, or
-                principals, to a single ``role``. Principals can be user
-                accounts, service accounts, Google groups, and domains
-                (such as G Suite). A ``role`` is a named list of
-                permissions; each ``role`` can be an IAM predefined role
-                or a user-created custom role.
-
-                For some types of Google Cloud resources, a ``binding``
-                can also specify a ``condition``, which is a logical
-                expression that allows access to a resource only if the
-                expression evaluates to ``true``. A condition can add
-                constraints based on attributes of the request, the
-                resource, or both. To learn which resources support
-                conditions in their IAM policies, see the `IAM
-                documentation <https://cloud.google.com/iam/help/conditions/resource-policies>`__.
-
-                **JSON example:**
-
-                ::
-
-                       {
-                         "bindings": [
-                           {
-                             "role": "roles/resourcemanager.organizationAdmin",
-                             "members": [
-                               "user:mike@example.com",
-                               "group:admins@example.com",
-                               "domain:google.com",
-                               "serviceAccount:my-project-id@appspot.gserviceaccount.com"
-                             ]
-                           },
-                           {
-                             "role": "roles/resourcemanager.organizationViewer",
-                             "members": [
-                               "user:eve@example.com"
-                             ],
-                             "condition": {
-                               "title": "expirable access",
-                               "description": "Does not grant access after Sep 2020",
-                               "expression": "request.time <
-                               timestamp('2020-10-01T00:00:00.000Z')",
-                             }
-                           }
-                         ],
-                         "etag": "BwWWja0YfJA=",
-                         "version": 3
-                       }
-
-                **YAML example:**
-
-                ::
-
-                       bindings:
-                       - members:
-                         - user:mike@example.com
-                         - group:admins@example.com
-                         - domain:google.com
-                         - serviceAccount:my-project-id@appspot.gserviceaccount.com
-                         role: roles/resourcemanager.organizationAdmin
-                       - members:
-                         - user:eve@example.com
-                         role: roles/resourcemanager.organizationViewer
-                         condition:
-                           title: expirable access
-                           description: Does not grant access after Sep 2020
-                           expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
-                       etag: BwWWja0YfJA=
-                       version: 3
-
-                For a description of IAM and its features, see the `IAM
-                documentation <https://cloud.google.com/iam/docs/>`__.
-
-            """
-
-            http_options = _BaseJobsRestTransport._BaseSetIamPolicy._get_http_options()
-            request, metadata = self._interceptor.pre_set_iam_policy(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseSetIamPolicy._get_transcoded_request(http_options, request)
-
-            body = _BaseJobsRestTransport._BaseSetIamPolicy._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseSetIamPolicy._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._SetIamPolicy._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = policy_pb2.Policy()
-            pb_resp = resp
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_set_iam_policy(resp)
-            return resp
-
-    class _TestIamPermissions(_BaseJobsRestTransport._BaseTestIamPermissions, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.TestIamPermissions")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: iam_policy_pb2.TestIamPermissionsRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> iam_policy_pb2.TestIamPermissionsResponse:
-            r"""Call the test iam permissions method over HTTP.
-
-            Args:
-                request (~.iam_policy_pb2.TestIamPermissionsRequest):
-                    The request object. Request message for ``TestIamPermissions`` method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.iam_policy_pb2.TestIamPermissionsResponse:
-                    Response message for ``TestIamPermissions`` method.
-            """
-
-            http_options = _BaseJobsRestTransport._BaseTestIamPermissions._get_http_options()
-            request, metadata = self._interceptor.pre_test_iam_permissions(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseTestIamPermissions._get_transcoded_request(http_options, request)
-
-            body = _BaseJobsRestTransport._BaseTestIamPermissions._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseTestIamPermissions._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._TestIamPermissions._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = iam_policy_pb2.TestIamPermissionsResponse()
-            pb_resp = resp
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_test_iam_permissions(resp)
-            return resp
-
-    class _UpdateJob(_BaseJobsRestTransport._BaseUpdateJob, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.UpdateJob")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: gcr_job.UpdateJobRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the update job method over HTTP.
-
-            Args:
-                request (~.gcr_job.UpdateJobRequest):
-                    The request object. Request message for updating a Job.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseJobsRestTransport._BaseUpdateJob._get_http_options()
-            request, metadata = self._interceptor.pre_update_job(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseUpdateJob._get_transcoded_request(http_options, request)
-
-            body = _BaseJobsRestTransport._BaseUpdateJob._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseUpdateJob._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._UpdateJob._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_update_job(resp)
-            return resp
-
-    @property
-    def create_job(self) -> Callable[
-            [gcr_job.CreateJobRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._CreateJob(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_job(self) -> Callable[
-            [job.DeleteJobRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._DeleteJob(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def get_iam_policy(self) -> Callable[
-            [iam_policy_pb2.GetIamPolicyRequest],
-            policy_pb2.Policy]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._GetIamPolicy(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def get_job(self) -> Callable[
-            [job.GetJobRequest],
-            job.Job]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._GetJob(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def list_jobs(self) -> Callable[
-            [job.ListJobsRequest],
-            job.ListJobsResponse]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._ListJobs(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def run_job(self) -> Callable[
-            [job.RunJobRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._RunJob(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def set_iam_policy(self) -> Callable[
-            [iam_policy_pb2.SetIamPolicyRequest],
-            policy_pb2.Policy]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._SetIamPolicy(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def test_iam_permissions(self) -> Callable[
-            [iam_policy_pb2.TestIamPermissionsRequest],
-            iam_policy_pb2.TestIamPermissionsResponse]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._TestIamPermissions(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def update_job(self) -> Callable[
-            [gcr_job.UpdateJobRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._UpdateJob(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_operation(self):
-        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _DeleteOperation(_BaseJobsRestTransport._BaseDeleteOperation, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.DeleteOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.DeleteOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> None:
-
-            r"""Call the delete operation method over HTTP.
-
-            Args:
-                request (operations_pb2.DeleteOperationRequest):
-                    The request object for DeleteOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-            """
-
-            http_options = _BaseJobsRestTransport._BaseDeleteOperation._get_http_options()
-            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            return self._interceptor.post_delete_operation(None)
-
-    @property
-    def get_operation(self):
-        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _GetOperation(_BaseJobsRestTransport._BaseGetOperation, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.GetOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.GetOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the get operation method over HTTP.
-
-            Args:
-                request (operations_pb2.GetOperationRequest):
-                    The request object for GetOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from GetOperation method.
-            """
-
-            http_options = _BaseJobsRestTransport._BaseGetOperation._get_http_options()
-            request, metadata = self._interceptor.pre_get_operation(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_get_operation(resp)
-            return resp
-
-    @property
-    def list_operations(self):
-        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
-
-    class _ListOperations(_BaseJobsRestTransport._BaseListOperations, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.ListOperations")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.ListOperationsRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.ListOperationsResponse:
-
-            r"""Call the list operations method over HTTP.
-
-            Args:
-                request (operations_pb2.ListOperationsRequest):
-                    The request object for ListOperations method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.ListOperationsResponse: Response from ListOperations method.
-            """
-
-            http_options = _BaseJobsRestTransport._BaseListOperations._get_http_options()
-            request, metadata = self._interceptor.pre_list_operations(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.ListOperationsResponse()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_list_operations(resp)
-            return resp
-
-    @property
-    def wait_operation(self):
-        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _WaitOperation(_BaseJobsRestTransport._BaseWaitOperation, JobsRestStub):
-        def __hash__(self):
-            return hash("JobsRestTransport.WaitOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.WaitOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the wait operation method over HTTP.
-
-            Args:
-                request (operations_pb2.WaitOperationRequest):
-                    The request object for WaitOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from WaitOperation method.
-            """
-
-            http_options = _BaseJobsRestTransport._BaseWaitOperation._get_http_options()
-            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
-            transcoded_request = _BaseJobsRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
-
-            body = _BaseJobsRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseJobsRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = JobsRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_wait_operation(resp)
-            return resp
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'JobsRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest_base.py
deleted file mode 100644
index e3edb3fc23b9..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/jobs/transports/rest_base.py
+++ /dev/null
@@ -1,584 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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  # type: ignore
-from google.api_core import path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.cloud.location import locations_pb2 # type: ignore
-from .base import JobsTransport, DEFAULT_CLIENT_INFO
-
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-
-
-from google.cloud.run_v2.types import job
-from google.cloud.run_v2.types import job as gcr_job
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2  # type: ignore
-
-
-class _BaseJobsRestTransport(JobsTransport):
-    """Base REST backend transport for Jobs.
-
-    Note: This class is not meant to be used directly. Use its sync and
-    async sub-classes instead.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[Any] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            url_scheme: str = 'https',
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[Any]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
-        if maybe_url_match is None:
-            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
-
-        url_match_items = maybe_url_match.groupdict()
-
-        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
-
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience
-        )
-
-    class _BaseCreateJob:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-            "jobId" : "",        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{parent=projects/*/locations/*}/jobs',
-                'body': 'job',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = gcr_job.CreateJobRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseCreateJob._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteJob:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/jobs/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = job.DeleteJobRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseDeleteJob._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseGetIamPolicy:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{resource=projects/*/locations/*/jobs/*}:getIamPolicy',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = request
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseGetIamPolicy._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseGetJob:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/jobs/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = job.GetJobRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseGetJob._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseListJobs:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{parent=projects/*/locations/*}/jobs',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = job.ListJobsRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseListJobs._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseRunJob:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{name=projects/*/locations/*/jobs/*}:run',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = job.RunJobRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseRunJob._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseSetIamPolicy:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{resource=projects/*/locations/*/jobs/*}:setIamPolicy',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = request
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseSetIamPolicy._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseTestIamPermissions:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{resource=projects/*/locations/*/jobs/*}:testIamPermissions',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = request
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseTestIamPermissions._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseUpdateJob:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'patch',
-                'uri': '/v2/{job.name=projects/*/locations/*/jobs/*}',
-                'body': 'job',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = gcr_job.UpdateJobRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseJobsRestTransport._BaseUpdateJob._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseGetOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseListOperations:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*}/operations',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseWaitOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            body = json.dumps(transcoded_request['body'])
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-
-__all__=(
-    '_BaseJobsRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/__init__.py
deleted file mode 100644
index 00ff1866adbe..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from .client import RevisionsClient
-from .async_client import RevisionsAsyncClient
-
-__all__ = (
-    'RevisionsClient',
-    'RevisionsAsyncClient',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/async_client.py
deleted file mode 100644
index aa8325ddadde..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/async_client.py
+++ /dev/null
@@ -1,834 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core.client_options import ClientOptions
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry_async as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-
-try:
-    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.revisions import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import revision
-from google.cloud.run_v2.types import status
-from google.cloud.run_v2.types import vendor_settings
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import RevisionsTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import RevisionsGrpcAsyncIOTransport
-from .client import RevisionsClient
-
-
-class RevisionsAsyncClient:
-    """Cloud Run Revision Control Plane API."""
-
-    _client: RevisionsClient
-
-    # Copy defaults from the synchronous client for use here.
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = RevisionsClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = RevisionsClient.DEFAULT_MTLS_ENDPOINT
-    _DEFAULT_ENDPOINT_TEMPLATE = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE
-    _DEFAULT_UNIVERSE = RevisionsClient._DEFAULT_UNIVERSE
-
-    connector_path = staticmethod(RevisionsClient.connector_path)
-    parse_connector_path = staticmethod(RevisionsClient.parse_connector_path)
-    crypto_key_path = staticmethod(RevisionsClient.crypto_key_path)
-    parse_crypto_key_path = staticmethod(RevisionsClient.parse_crypto_key_path)
-    mesh_path = staticmethod(RevisionsClient.mesh_path)
-    parse_mesh_path = staticmethod(RevisionsClient.parse_mesh_path)
-    revision_path = staticmethod(RevisionsClient.revision_path)
-    parse_revision_path = staticmethod(RevisionsClient.parse_revision_path)
-    secret_path = staticmethod(RevisionsClient.secret_path)
-    parse_secret_path = staticmethod(RevisionsClient.parse_secret_path)
-    secret_version_path = staticmethod(RevisionsClient.secret_version_path)
-    parse_secret_version_path = staticmethod(RevisionsClient.parse_secret_version_path)
-    service_path = staticmethod(RevisionsClient.service_path)
-    parse_service_path = staticmethod(RevisionsClient.parse_service_path)
-    common_billing_account_path = staticmethod(RevisionsClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(RevisionsClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(RevisionsClient.common_folder_path)
-    parse_common_folder_path = staticmethod(RevisionsClient.parse_common_folder_path)
-    common_organization_path = staticmethod(RevisionsClient.common_organization_path)
-    parse_common_organization_path = staticmethod(RevisionsClient.parse_common_organization_path)
-    common_project_path = staticmethod(RevisionsClient.common_project_path)
-    parse_common_project_path = staticmethod(RevisionsClient.parse_common_project_path)
-    common_location_path = staticmethod(RevisionsClient.common_location_path)
-    parse_common_location_path = staticmethod(RevisionsClient.parse_common_location_path)
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            RevisionsAsyncClient: The constructed client.
-        """
-        return RevisionsClient.from_service_account_info.__func__(RevisionsAsyncClient, info, *args, **kwargs)  # type: ignore
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            RevisionsAsyncClient: The constructed client.
-        """
-        return RevisionsClient.from_service_account_file.__func__(RevisionsAsyncClient, filename, *args, **kwargs)  # type: ignore
-
-    from_service_account_json = from_service_account_file
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
-        """Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-        return RevisionsClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> RevisionsTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            RevisionsTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._client._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used
-                by the client instance.
-        """
-        return self._client._universe_domain
-
-    get_transport_class = RevisionsClient.get_transport_class
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, RevisionsTransport, Callable[..., RevisionsTransport]]] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the revisions async client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,RevisionsTransport,Callable[..., RevisionsTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport to use.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the RevisionsTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = RevisionsClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def get_revision(self,
-            request: Optional[Union[revision.GetRevisionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> revision.Revision:
-        r"""Gets information about a Revision.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_get_revision():
-                # Create a client
-                client = run_v2.RevisionsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetRevisionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = await client.get_revision(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.GetRevisionRequest, dict]]):
-                The request object. Request message for obtaining a
-                Revision by its full name.
-            name (:class:`str`):
-                Required. The full name of the
-                Revision. Format:
-
-                projects/{project}/locations/{location}/services/{service}/revisions/{revision}
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Revision:
-                A Revision is an immutable snapshot
-                of code and configuration.  A Revision
-                references a container image. Revisions
-                are only created by updates to its
-                parent Service.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, revision.GetRevisionRequest):
-            request = revision.GetRevisionRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.get_revision]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_revisions(self,
-            request: Optional[Union[revision.ListRevisionsRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListRevisionsAsyncPager:
-        r"""Lists Revisions from a given Service, or from a given
-        location.  Results are sorted by creation time,
-        descending.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_list_revisions():
-                # Create a client
-                client = run_v2.RevisionsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListRevisionsRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_revisions(request=request)
-
-                # Handle the response
-                async for response in page_result:
-                    print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.ListRevisionsRequest, dict]]):
-                The request object. Request message for retrieving a list
-                of Revisions.
-            parent (:class:`str`):
-                Required. The Service from which the
-                Revisions should be listed. To list all
-                Revisions across Services, use "-"
-                instead of Service name. Format:
-
-                projects/{project}/locations/{location}/services/{service}
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.revisions.pagers.ListRevisionsAsyncPager:
-                Response message containing a list of
-                Revisions.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, revision.ListRevisionsRequest):
-            request = revision.ListRevisionsRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if parent is not None:
-            request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.list_revisions]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__aiter__` convenience method.
-        response = pagers.ListRevisionsAsyncPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def delete_revision(self,
-            request: Optional[Union[revision.DeleteRevisionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Deletes a Revision.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_delete_revision():
-                # Create a client
-                client = run_v2.RevisionsAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.DeleteRevisionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.delete_revision(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.DeleteRevisionRequest, dict]]):
-                The request object. Request message for deleting a
-                retired Revision. Revision lifecycle is
-                usually managed by making changes to the
-                parent Service. Only retired revisions
-                can be deleted with this API.
-            name (:class:`str`):
-                Required. The name of the Revision to
-                delete. Format:
-
-                projects/{project}/locations/{location}/services/{service}/revisions/{revision}
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Revision` A Revision is an immutable snapshot of code and configuration. A Revision
-                   references a container image. Revisions are only
-                   created by updates to its parent Service.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, revision.DeleteRevisionRequest):
-            request = revision.DeleteRevisionRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.delete_revision]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            revision.Revision,
-            metadata_type=revision.Revision,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    async def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "RevisionsAsyncClient":
-        return self
-
-    async def __aexit__(self, exc_type, exc, tb):
-        await self.transport.close()
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "RevisionsAsyncClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/client.py
deleted file mode 100644
index 6145da966620..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/client.py
+++ /dev/null
@@ -1,1215 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import os
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-import warnings
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core import client_options as client_options_lib
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials             # type: ignore
-from google.auth.transport import mtls                            # type: ignore
-from google.auth.transport.grpc import SslCredentials             # type: ignore
-from google.auth.exceptions import MutualTLSChannelError          # type: ignore
-from google.oauth2 import service_account                         # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.revisions import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import revision
-from google.cloud.run_v2.types import status
-from google.cloud.run_v2.types import vendor_settings
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import RevisionsTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import RevisionsGrpcTransport
-from .transports.grpc_asyncio import RevisionsGrpcAsyncIOTransport
-from .transports.rest import RevisionsRestTransport
-
-
-class RevisionsClientMeta(type):
-    """Metaclass for the Revisions client.
-
-    This provides class-level methods for building and retrieving
-    support objects (e.g. transport) without polluting the client instance
-    objects.
-    """
-    _transport_registry = OrderedDict()  # type: Dict[str, Type[RevisionsTransport]]
-    _transport_registry["grpc"] = RevisionsGrpcTransport
-    _transport_registry["grpc_asyncio"] = RevisionsGrpcAsyncIOTransport
-    _transport_registry["rest"] = RevisionsRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[RevisionsTransport]:
-        """Returns an appropriate transport class.
-
-        Args:
-            label: The name of the desired transport. If none is
-                provided, then the first transport in the registry is used.
-
-        Returns:
-            The transport class to use.
-        """
-        # If a specific transport is requested, return that one.
-        if label:
-            return cls._transport_registry[label]
-
-        # No transport is requested; return the default (that is, the first one
-        # in the dictionary).
-        return next(iter(cls._transport_registry.values()))
-
-
-class RevisionsClient(metaclass=RevisionsClientMeta):
-    """Cloud Run Revision Control Plane API."""
-
-    @staticmethod
-    def _get_default_mtls_endpoint(api_endpoint):
-        """Converts api endpoint to mTLS endpoint.
-
-        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
-        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
-        Args:
-            api_endpoint (Optional[str]): the api endpoint to convert.
-        Returns:
-            str: converted mTLS api endpoint.
-        """
-        if not api_endpoint:
-            return api_endpoint
-
-        mtls_endpoint_re = re.compile(
-            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
-        )
-
-        m = mtls_endpoint_re.match(api_endpoint)
-        name, mtls, sandbox, googledomain = m.groups()
-        if mtls or not googledomain:
-            return api_endpoint
-
-        if sandbox:
-            return api_endpoint.replace(
-                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
-            )
-
-        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
-
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = "run.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
-    _DEFAULT_UNIVERSE = "googleapis.com"
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            RevisionsClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_info(info)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            RevisionsClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_file(
-            filename)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    from_service_account_json = from_service_account_file
-
-    @property
-    def transport(self) -> RevisionsTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            RevisionsTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @staticmethod
-    def connector_path(project: str,location: str,connector: str,) -> str:
-        """Returns a fully-qualified connector string."""
-        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-
-    @staticmethod
-    def parse_connector_path(path: str) -> Dict[str,str]:
-        """Parses a connector path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
-        """Returns a fully-qualified crypto_key string."""
-        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-
-    @staticmethod
-    def parse_crypto_key_path(path: str) -> Dict[str,str]:
-        """Parses a crypto_key path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def mesh_path(project: str,location: str,mesh: str,) -> str:
-        """Returns a fully-qualified mesh string."""
-        return "projects/{project}/locations/{location}/meshes/{mesh}".format(project=project, location=location, mesh=mesh, )
-
-    @staticmethod
-    def parse_mesh_path(path: str) -> Dict[str,str]:
-        """Parses a mesh path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/meshes/(?P<mesh>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def revision_path(project: str,location: str,service: str,revision: str,) -> str:
-        """Returns a fully-qualified revision string."""
-        return "projects/{project}/locations/{location}/services/{service}/revisions/{revision}".format(project=project, location=location, service=service, revision=revision, )
-
-    @staticmethod
-    def parse_revision_path(path: str) -> Dict[str,str]:
-        """Parses a revision path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/services/(?P<service>.+?)/revisions/(?P<revision>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_path(project: str,secret: str,) -> str:
-        """Returns a fully-qualified secret string."""
-        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-
-    @staticmethod
-    def parse_secret_path(path: str) -> Dict[str,str]:
-        """Parses a secret path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_version_path(project: str,secret: str,version: str,) -> str:
-        """Returns a fully-qualified secret_version string."""
-        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-
-    @staticmethod
-    def parse_secret_version_path(path: str) -> Dict[str,str]:
-        """Parses a secret_version path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def service_path(project: str,location: str,service: str,) -> str:
-        """Returns a fully-qualified service string."""
-        return "projects/{project}/locations/{location}/services/{service}".format(project=project, location=location, service=service, )
-
-    @staticmethod
-    def parse_service_path(path: str) -> Dict[str,str]:
-        """Parses a service path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/services/(?P<service>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_billing_account_path(billing_account: str, ) -> str:
-        """Returns a fully-qualified billing_account string."""
-        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-
-    @staticmethod
-    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
-        """Parse a billing_account path into its component segments."""
-        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_folder_path(folder: str, ) -> str:
-        """Returns a fully-qualified folder string."""
-        return "folders/{folder}".format(folder=folder, )
-
-    @staticmethod
-    def parse_common_folder_path(path: str) -> Dict[str,str]:
-        """Parse a folder path into its component segments."""
-        m = re.match(r"^folders/(?P<folder>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_organization_path(organization: str, ) -> str:
-        """Returns a fully-qualified organization string."""
-        return "organizations/{organization}".format(organization=organization, )
-
-    @staticmethod
-    def parse_common_organization_path(path: str) -> Dict[str,str]:
-        """Parse a organization path into its component segments."""
-        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_project_path(project: str, ) -> str:
-        """Returns a fully-qualified project string."""
-        return "projects/{project}".format(project=project, )
-
-    @staticmethod
-    def parse_common_project_path(path: str) -> Dict[str,str]:
-        """Parse a project path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_location_path(project: str, location: str, ) -> str:
-        """Returns a fully-qualified location string."""
-        return "projects/{project}/locations/{location}".format(project=project, location=location, )
-
-    @staticmethod
-    def parse_common_location_path(path: str) -> Dict[str,str]:
-        """Parse a location path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
-        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-
-        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
-            DeprecationWarning)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-
-        # Figure out the client cert source to use.
-        client_cert_source = None
-        if use_client_cert == "true":
-            if client_options.client_cert_source:
-                client_cert_source = client_options.client_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-
-        # Figure out which api endpoint to use.
-        if client_options.api_endpoint is not None:
-            api_endpoint = client_options.api_endpoint
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = cls.DEFAULT_ENDPOINT
-
-        return api_endpoint, client_cert_source
-
-    @staticmethod
-    def _read_environment_variables():
-        """Returns the environment variables used by the client.
-
-        Returns:
-            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
-            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
-
-        Raises:
-            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
-                any of ["true", "false"].
-            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
-                is not any of ["auto", "never", "always"].
-        """
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
-        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
-
-    @staticmethod
-    def _get_client_cert_source(provided_cert_source, use_cert_flag):
-        """Return the client cert source to be used by the client.
-
-        Args:
-            provided_cert_source (bytes): The client certificate source provided.
-            use_cert_flag (bool): A flag indicating whether to use the client certificate.
-
-        Returns:
-            bytes or None: The client cert source to be used by the client.
-        """
-        client_cert_source = None
-        if use_cert_flag:
-            if provided_cert_source:
-                client_cert_source = provided_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-        return client_cert_source
-
-    @staticmethod
-    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
-        """Return the API endpoint used by the client.
-
-        Args:
-            api_override (str): The API endpoint override. If specified, this is always
-                the return value of this function and the other arguments are not used.
-            client_cert_source (bytes): The client certificate source used by the client.
-            universe_domain (str): The universe domain used by the client.
-            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
-                Possible values are "always", "auto", or "never".
-
-        Returns:
-            str: The API endpoint to be used by the client.
-        """
-        if api_override is not None:
-            api_endpoint = api_override
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            _default_universe = RevisionsClient._DEFAULT_UNIVERSE
-            if universe_domain != _default_universe:
-                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
-            api_endpoint = RevisionsClient.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
-        return api_endpoint
-
-    @staticmethod
-    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
-        """Return the universe domain used by the client.
-
-        Args:
-            client_universe_domain (Optional[str]): The universe domain configured via the client options.
-            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
-
-        Returns:
-            str: The universe domain to be used by the client.
-
-        Raises:
-            ValueError: If the universe domain is an empty string.
-        """
-        universe_domain = RevisionsClient._DEFAULT_UNIVERSE
-        if client_universe_domain is not None:
-            universe_domain = client_universe_domain
-        elif universe_domain_env is not None:
-            universe_domain = universe_domain_env
-        if len(universe_domain.strip()) == 0:
-            raise ValueError("Universe Domain cannot be an empty string.")
-        return universe_domain
-
-    def _validate_universe_domain(self):
-        """Validates client's and credentials' universe domains are consistent.
-
-        Returns:
-            bool: True iff the configured universe domain is valid.
-
-        Raises:
-            ValueError: If the configured universe domain is not valid.
-        """
-
-        # NOTE (b/349488459): universe validation is disabled until further notice.
-        return True
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used by the client instance.
-        """
-        return self._universe_domain
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, RevisionsTransport, Callable[..., RevisionsTransport]]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the revisions client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,RevisionsTransport,Callable[..., RevisionsTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the RevisionsTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that the ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client_options = client_options
-        if isinstance(self._client_options, dict):
-            self._client_options = client_options_lib.from_dict(self._client_options)
-        if self._client_options is None:
-            self._client_options = client_options_lib.ClientOptions()
-        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
-
-        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
-
-        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = RevisionsClient._read_environment_variables()
-        self._client_cert_source = RevisionsClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
-        self._universe_domain = RevisionsClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
-        self._api_endpoint = None # updated below, depending on `transport`
-
-        # Initialize the universe domain validation.
-        self._is_universe_domain_valid = False
-
-        api_key_value = getattr(self._client_options, "api_key", None)
-        if api_key_value and credentials:
-            raise ValueError("client_options.api_key and credentials are mutually exclusive")
-
-        # Save or instantiate the transport.
-        # Ordinarily, we provide the transport, but allowing a custom transport
-        # instance provides an extensibility point for unusual situations.
-        transport_provided = isinstance(transport, RevisionsTransport)
-        if transport_provided:
-            # transport is a RevisionsTransport instance.
-            if credentials or self._client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if self._client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = cast(RevisionsTransport, transport)
-            self._api_endpoint = self._transport.host
-
-        self._api_endpoint = (self._api_endpoint or
-            RevisionsClient._get_api_endpoint(
-                self._client_options.api_endpoint,
-                self._client_cert_source,
-                self._universe_domain,
-                self._use_mtls_endpoint))
-
-        if not transport_provided:
-            import google.auth._default  # type: ignore
-
-            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
-                credentials = google.auth._default.get_api_key_credentials(api_key_value)
-
-            transport_init: Union[Type[RevisionsTransport], Callable[..., RevisionsTransport]] = (
-                RevisionsClient.get_transport_class(transport)
-                if isinstance(transport, str) or transport is None
-                else cast(Callable[..., RevisionsTransport], transport)
-            )
-            # initialize with the provided callable or the passed in class
-            self._transport = transport_init(
-                credentials=credentials,
-                credentials_file=self._client_options.credentials_file,
-                host=self._api_endpoint,
-                scopes=self._client_options.scopes,
-                client_cert_source_for_mtls=self._client_cert_source,
-                quota_project_id=self._client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=self._client_options.api_audience,
-            )
-
-    def get_revision(self,
-            request: Optional[Union[revision.GetRevisionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> revision.Revision:
-        r"""Gets information about a Revision.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_get_revision():
-                # Create a client
-                client = run_v2.RevisionsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetRevisionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = client.get_revision(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.GetRevisionRequest, dict]):
-                The request object. Request message for obtaining a
-                Revision by its full name.
-            name (str):
-                Required. The full name of the
-                Revision. Format:
-
-                projects/{project}/locations/{location}/services/{service}/revisions/{revision}
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Revision:
-                A Revision is an immutable snapshot
-                of code and configuration.  A Revision
-                references a container image. Revisions
-                are only created by updates to its
-                parent Service.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, revision.GetRevisionRequest):
-            request = revision.GetRevisionRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_revision]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def list_revisions(self,
-            request: Optional[Union[revision.ListRevisionsRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListRevisionsPager:
-        r"""Lists Revisions from a given Service, or from a given
-        location.  Results are sorted by creation time,
-        descending.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_list_revisions():
-                # Create a client
-                client = run_v2.RevisionsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListRevisionsRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_revisions(request=request)
-
-                # Handle the response
-                for response in page_result:
-                    print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.ListRevisionsRequest, dict]):
-                The request object. Request message for retrieving a list
-                of Revisions.
-            parent (str):
-                Required. The Service from which the
-                Revisions should be listed. To list all
-                Revisions across Services, use "-"
-                instead of Service name. Format:
-
-                projects/{project}/locations/{location}/services/{service}
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.revisions.pagers.ListRevisionsPager:
-                Response message containing a list of
-                Revisions.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, revision.ListRevisionsRequest):
-            request = revision.ListRevisionsRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if parent is not None:
-                request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_revisions]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__iter__` convenience method.
-        response = pagers.ListRevisionsPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def delete_revision(self,
-            request: Optional[Union[revision.DeleteRevisionRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Deletes a Revision.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_delete_revision():
-                # Create a client
-                client = run_v2.RevisionsClient()
-
-                # Initialize request argument(s)
-                request = run_v2.DeleteRevisionRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.delete_revision(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.DeleteRevisionRequest, dict]):
-                The request object. Request message for deleting a
-                retired Revision. Revision lifecycle is
-                usually managed by making changes to the
-                parent Service. Only retired revisions
-                can be deleted with this API.
-            name (str):
-                Required. The name of the Revision to
-                delete. Format:
-
-                projects/{project}/locations/{location}/services/{service}/revisions/{revision}
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Revision` A Revision is an immutable snapshot of code and configuration. A Revision
-                   references a container image. Revisions are only
-                   created by updates to its parent Service.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, revision.DeleteRevisionRequest):
-            request = revision.DeleteRevisionRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_revision]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            revision.Revision,
-            metadata_type=revision.Revision,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "RevisionsClient":
-        return self
-
-    def __exit__(self, type, value, traceback):
-        """Releases underlying transport's resources.
-
-        .. warning::
-            ONLY use as a context manager if the transport is NOT shared
-            with other clients! Exiting the with block will CLOSE the transport
-            and may cause errors in other clients!
-        """
-        self.transport.close()
-
-    def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "RevisionsClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/pagers.py
deleted file mode 100644
index 8a289a1c9e86..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/pagers.py
+++ /dev/null
@@ -1,162 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import retry_async as retries_async
-from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
-
-from google.cloud.run_v2.types import revision
-
-
-class ListRevisionsPager:
-    """A pager for iterating through ``list_revisions`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListRevisionsResponse` object, and
-    provides an ``__iter__`` method to iterate through its
-    ``revisions`` field.
-
-    If there are more pages, the ``__iter__`` method will make additional
-    ``ListRevisions`` requests and continue to iterate
-    through the ``revisions`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListRevisionsResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., revision.ListRevisionsResponse],
-            request: revision.ListRevisionsRequest,
-            response: revision.ListRevisionsResponse,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiate the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListRevisionsRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListRevisionsResponse):
-                The initial response object.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = revision.ListRevisionsRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    def pages(self) -> Iterator[revision.ListRevisionsResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-
-    def __iter__(self) -> Iterator[revision.Revision]:
-        for page in self.pages:
-            yield from page.revisions
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
-
-
-class ListRevisionsAsyncPager:
-    """A pager for iterating through ``list_revisions`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListRevisionsResponse` object, and
-    provides an ``__aiter__`` method to iterate through its
-    ``revisions`` field.
-
-    If there are more pages, the ``__aiter__`` method will make additional
-    ``ListRevisions`` requests and continue to iterate
-    through the ``revisions`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListRevisionsResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., Awaitable[revision.ListRevisionsResponse]],
-            request: revision.ListRevisionsRequest,
-            response: revision.ListRevisionsResponse,
-            *,
-            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiates the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListRevisionsRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListRevisionsResponse):
-                The initial response object.
-            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = revision.ListRevisionsRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    async def pages(self) -> AsyncIterator[revision.ListRevisionsResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-    def __aiter__(self) -> AsyncIterator[revision.Revision]:
-        async def async_generator():
-            async for page in self.pages:
-                for response in page.revisions:
-                    yield response
-
-        return async_generator()
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/README.rst
deleted file mode 100644
index 81dc915c3637..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/README.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-
-transport inheritance structure
-_______________________________
-
-`RevisionsTransport` is the ABC for all transports.
-- public child `RevisionsGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
-- public child `RevisionsGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
-- private child `_BaseRevisionsRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
-- public child `RevisionsRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/__init__.py
deleted file mode 100644
index 668b1b7a8e0d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-from typing import Dict, Type
-
-from .base import RevisionsTransport
-from .grpc import RevisionsGrpcTransport
-from .grpc_asyncio import RevisionsGrpcAsyncIOTransport
-from .rest import RevisionsRestTransport
-from .rest import RevisionsRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[RevisionsTransport]]
-_transport_registry['grpc'] = RevisionsGrpcTransport
-_transport_registry['grpc_asyncio'] = RevisionsGrpcAsyncIOTransport
-_transport_registry['rest'] = RevisionsRestTransport
-
-__all__ = (
-    'RevisionsTransport',
-    'RevisionsGrpcTransport',
-    'RevisionsGrpcAsyncIOTransport',
-    'RevisionsRestTransport',
-    'RevisionsRestInterceptor',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/base.py
deleted file mode 100644
index effb9620423f..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/base.py
+++ /dev/null
@@ -1,246 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 abc
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-import google.auth  # type: ignore
-import google.api_core
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import operations_v1
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.oauth2 import service_account # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import revision
-from google.longrunning import operations_pb2 # type: ignore
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class RevisionsTransport(abc.ABC):
-    """Abstract transport class for Revisions."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'run.googleapis.com'
-    def __init__(
-            self, *,
-            host: str = DEFAULT_HOST,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            **kwargs,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A list of scopes.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-        """
-
-        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
-
-        # Save the scopes.
-        self._scopes = scopes
-        if not hasattr(self, "_ignore_credentials"):
-            self._ignore_credentials: bool = False
-
-        # If no credentials are provided, then determine the appropriate
-        # defaults.
-        if credentials and credentials_file:
-            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
-
-        if credentials_file is not None:
-            credentials, _ = google.auth.load_credentials_from_file(
-                                credentials_file,
-                                **scopes_kwargs,
-                                quota_project_id=quota_project_id
-                            )
-        elif credentials is None and not self._ignore_credentials:
-            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
-            # Don't apply audience if the credentials file passed from user.
-            if hasattr(credentials, "with_gdch_audience"):
-                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
-
-        # If the credentials are service account credentials, then always try to use self signed JWT.
-        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
-            credentials = credentials.with_always_use_jwt_access(True)
-
-        # Save the credentials.
-        self._credentials = credentials
-
-        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
-        if ':' not in host:
-            host += ':443'
-        self._host = host
-
-    @property
-    def host(self):
-        return self._host
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.get_revision: gapic_v1.method.wrap_method(
-                self.get_revision,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_revisions: gapic_v1.method.wrap_method(
-                self.list_revisions,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_revision: gapic_v1.method.wrap_method(
-                self.delete_revision,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: gapic_v1.method.wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: gapic_v1.method.wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: gapic_v1.method.wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: gapic_v1.method.wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-         }
-
-    def close(self):
-        """Closes resources associated with the transport.
-
-       .. warning::
-            Only call this method if the transport is NOT shared
-            with other clients - this may cause errors in other clients!
-        """
-        raise NotImplementedError()
-
-    @property
-    def operations_client(self):
-        """Return the client designed to process long-running operations."""
-        raise NotImplementedError()
-
-    @property
-    def get_revision(self) -> Callable[
-            [revision.GetRevisionRequest],
-            Union[
-                revision.Revision,
-                Awaitable[revision.Revision]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_revisions(self) -> Callable[
-            [revision.ListRevisionsRequest],
-            Union[
-                revision.ListRevisionsResponse,
-                Awaitable[revision.ListRevisionsResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def delete_revision(self) -> Callable[
-            [revision.DeleteRevisionRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[
-        [operations_pb2.ListOperationsRequest],
-        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.GetOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.DeleteOperationRequest],
-        None,
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.WaitOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'RevisionsTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc.py
deleted file mode 100644
index 654b11fcb540..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc.py
+++ /dev/null
@@ -1,416 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 warnings
-from typing import Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import grpc_helpers
-from google.api_core import operations_v1
-from google.api_core import gapic_v1
-import google.auth                         # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import revision
-from google.longrunning import operations_pb2 # type: ignore
-from .base import RevisionsTransport, DEFAULT_CLIENT_INFO
-
-
-class RevisionsGrpcTransport(RevisionsTransport):
-    """gRPC backend transport for Revisions.
-
-    Cloud Run Revision Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-    _stubs: Dict[str, Callable]
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[grpc.Channel, Callable[..., 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,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if a ``channel`` instance is provided.
-            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-        self._operations_client: Optional[operations_v1.OperationsClient] = None
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, grpc.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._prep_wrapped_messages(client_info)
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> grpc.Channel:
-        """Create and return a gRPC channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            grpc.Channel: A gRPC channel object.
-
-        Raises:
-            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-
-        return grpc_helpers.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    @property
-    def grpc_channel(self) -> grpc.Channel:
-        """Return the channel designed to connect to this service.
-        """
-        return self._grpc_channel
-
-    @property
-    def operations_client(self) -> operations_v1.OperationsClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Quick check: Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            self._operations_client = operations_v1.OperationsClient(
-                self.grpc_channel
-            )
-
-        # Return the client from cache.
-        return self._operations_client
-
-    @property
-    def get_revision(self) -> Callable[
-            [revision.GetRevisionRequest],
-            revision.Revision]:
-        r"""Return a callable for the get revision method over gRPC.
-
-        Gets information about a Revision.
-
-        Returns:
-            Callable[[~.GetRevisionRequest],
-                    ~.Revision]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_revision' not in self._stubs:
-            self._stubs['get_revision'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Revisions/GetRevision',
-                request_serializer=revision.GetRevisionRequest.serialize,
-                response_deserializer=revision.Revision.deserialize,
-            )
-        return self._stubs['get_revision']
-
-    @property
-    def list_revisions(self) -> Callable[
-            [revision.ListRevisionsRequest],
-            revision.ListRevisionsResponse]:
-        r"""Return a callable for the list revisions method over gRPC.
-
-        Lists Revisions from a given Service, or from a given
-        location.  Results are sorted by creation time,
-        descending.
-
-        Returns:
-            Callable[[~.ListRevisionsRequest],
-                    ~.ListRevisionsResponse]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_revisions' not in self._stubs:
-            self._stubs['list_revisions'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Revisions/ListRevisions',
-                request_serializer=revision.ListRevisionsRequest.serialize,
-                response_deserializer=revision.ListRevisionsResponse.deserialize,
-            )
-        return self._stubs['list_revisions']
-
-    @property
-    def delete_revision(self) -> Callable[
-            [revision.DeleteRevisionRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the delete revision method over gRPC.
-
-        Deletes a Revision.
-
-        Returns:
-            Callable[[~.DeleteRevisionRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'delete_revision' not in self._stubs:
-            self._stubs['delete_revision'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Revisions/DeleteRevision',
-                request_serializer=revision.DeleteRevisionRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['delete_revision']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'RevisionsGrpcTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc_asyncio.py
deleted file mode 100644
index 1e1f0d31f514..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,467 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 inspect
-import warnings
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry_async as retries
-from google.api_core import operations_v1
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc                        # type: ignore
-from grpc.experimental import aio  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import revision
-from google.longrunning import operations_pb2 # type: ignore
-from .base import RevisionsTransport, DEFAULT_CLIENT_INFO
-from .grpc import RevisionsGrpcTransport
-
-
-class RevisionsGrpcAsyncIOTransport(RevisionsTransport):
-    """gRPC AsyncIO backend transport for Revisions.
-
-    Cloud Run Revision Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-
-    _grpc_channel: aio.Channel
-    _stubs: Dict[str, Callable] = {}
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> aio.Channel:
-        """Create and return a gRPC AsyncIO channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            aio.Channel: A gRPC AsyncIO channel object.
-        """
-
-        return grpc_helpers_async.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[aio.Channel, Callable[..., 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,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, aio.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def grpc_channel(self) -> aio.Channel:
-        """Create the channel designed to connect to this service.
-
-        This property caches on the instance; repeated calls return
-        the same channel.
-        """
-        # Return the channel from cache.
-        return self._grpc_channel
-
-    @property
-    def operations_client(self) -> operations_v1.OperationsAsyncClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Quick check: Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            self._operations_client = operations_v1.OperationsAsyncClient(
-                self.grpc_channel
-            )
-
-        # Return the client from cache.
-        return self._operations_client
-
-    @property
-    def get_revision(self) -> Callable[
-            [revision.GetRevisionRequest],
-            Awaitable[revision.Revision]]:
-        r"""Return a callable for the get revision method over gRPC.
-
-        Gets information about a Revision.
-
-        Returns:
-            Callable[[~.GetRevisionRequest],
-                    Awaitable[~.Revision]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_revision' not in self._stubs:
-            self._stubs['get_revision'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Revisions/GetRevision',
-                request_serializer=revision.GetRevisionRequest.serialize,
-                response_deserializer=revision.Revision.deserialize,
-            )
-        return self._stubs['get_revision']
-
-    @property
-    def list_revisions(self) -> Callable[
-            [revision.ListRevisionsRequest],
-            Awaitable[revision.ListRevisionsResponse]]:
-        r"""Return a callable for the list revisions method over gRPC.
-
-        Lists Revisions from a given Service, or from a given
-        location.  Results are sorted by creation time,
-        descending.
-
-        Returns:
-            Callable[[~.ListRevisionsRequest],
-                    Awaitable[~.ListRevisionsResponse]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_revisions' not in self._stubs:
-            self._stubs['list_revisions'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Revisions/ListRevisions',
-                request_serializer=revision.ListRevisionsRequest.serialize,
-                response_deserializer=revision.ListRevisionsResponse.deserialize,
-            )
-        return self._stubs['list_revisions']
-
-    @property
-    def delete_revision(self) -> Callable[
-            [revision.DeleteRevisionRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the delete revision method over gRPC.
-
-        Deletes a Revision.
-
-        Returns:
-            Callable[[~.DeleteRevisionRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'delete_revision' not in self._stubs:
-            self._stubs['delete_revision'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Revisions/DeleteRevision',
-                request_serializer=revision.DeleteRevisionRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['delete_revision']
-
-    def _prep_wrapped_messages(self, client_info):
-        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
-        self._wrapped_methods = {
-            self.get_revision: self._wrap_method(
-                self.get_revision,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_revisions: self._wrap_method(
-                self.list_revisions,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_revision: self._wrap_method(
-                self.delete_revision,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: self._wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: self._wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: self._wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: self._wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-        }
-
-    def _wrap_method(self, func, *args, **kwargs):
-        if self._wrap_with_kind:  # pragma: NO COVER
-            kwargs["kind"] = self.kind
-        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
-
-    def close(self):
-        return self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc_asyncio"
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-
-__all__ = (
-    'RevisionsGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest.py
deleted file mode 100644
index a79e87ca7bb7..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest.py
+++ /dev/null
@@ -1,920 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-
-from google.auth.transport.requests import AuthorizedSession  # type: ignore
-import json  # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry as retries
-from google.api_core import rest_helpers
-from google.api_core import rest_streaming
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.api_core import operations_v1
-from google.cloud.location import locations_pb2 # type: ignore
-
-from requests import __version__ as requests_version
-import dataclasses
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-
-from google.cloud.run_v2.types import revision
-from google.longrunning import operations_pb2  # type: ignore
-
-
-from .rest_base import _BaseRevisionsRestTransport
-from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=f"requests@{requests_version}",
-)
-
-
-class RevisionsRestInterceptor:
-    """Interceptor for Revisions.
-
-    Interceptors are used to manipulate requests, request metadata, and responses
-    in arbitrary ways.
-    Example use cases include:
-    * Logging
-    * Verifying requests according to service or custom semantics
-    * Stripping extraneous information from responses
-
-    These use cases and more can be enabled by injecting an
-    instance of a custom subclass when constructing the RevisionsRestTransport.
-
-    .. code-block:: python
-        class MyCustomRevisionsInterceptor(RevisionsRestInterceptor):
-            def pre_delete_revision(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_delete_revision(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_get_revision(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_get_revision(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_list_revisions(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_list_revisions(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = RevisionsRestTransport(interceptor=MyCustomRevisionsInterceptor())
-        client = RevisionsClient(transport=transport)
-
-
-    """
-    def pre_delete_revision(self, request: revision.DeleteRevisionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[revision.DeleteRevisionRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_revision
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Revisions server.
-        """
-        return request, metadata
-
-    def post_delete_revision(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for delete_revision
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Revisions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_revision(self, request: revision.GetRevisionRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[revision.GetRevisionRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_revision
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Revisions server.
-        """
-        return request, metadata
-
-    def post_get_revision(self, response: revision.Revision) -> revision.Revision:
-        """Post-rpc interceptor for get_revision
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Revisions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_revisions(self, request: revision.ListRevisionsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[revision.ListRevisionsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_revisions
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Revisions server.
-        """
-        return request, metadata
-
-    def post_list_revisions(self, response: revision.ListRevisionsResponse) -> revision.ListRevisionsResponse:
-        """Post-rpc interceptor for list_revisions
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Revisions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_operation(
-        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Revisions server.
-        """
-        return request, metadata
-
-    def post_delete_operation(
-        self, response: None
-    ) -> None:
-        """Post-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Revisions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_operation(
-        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Revisions server.
-        """
-        return request, metadata
-
-    def post_get_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Revisions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_operations(
-        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Revisions server.
-        """
-        return request, metadata
-
-    def post_list_operations(
-        self, response: operations_pb2.ListOperationsResponse
-    ) -> operations_pb2.ListOperationsResponse:
-        """Post-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Revisions server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_wait_operation(
-        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Revisions server.
-        """
-        return request, metadata
-
-    def post_wait_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Revisions server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class RevisionsRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: RevisionsRestInterceptor
-
-
-class RevisionsRestTransport(_BaseRevisionsRestTransport):
-    """REST backend synchronous transport for Revisions.
-
-    Cloud Run Revision Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            url_scheme: str = 'https',
-            interceptor: Optional[RevisionsRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
-                certificate to configure mutual TLS HTTP channel. It is ignored
-                if ``channel`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
-        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
-        # credentials object
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            url_scheme=url_scheme,
-            api_audience=api_audience
-        )
-        self._session = AuthorizedSession(
-            self._credentials, default_host=self.DEFAULT_HOST)
-        self._operations_client: Optional[operations_v1.AbstractOperationsClient] = None
-        if client_cert_source_for_mtls:
-            self._session.configure_mtls_channel(client_cert_source_for_mtls)
-        self._interceptor = interceptor or RevisionsRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def operations_client(self) -> operations_v1.AbstractOperationsClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            http_options: Dict[str, List[Dict[str, str]]] = {
-                'google.longrunning.Operations.DeleteOperation': [
-                    {
-                        'method': 'delete',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-                    },
-                ],
-                'google.longrunning.Operations.GetOperation': [
-                    {
-                        'method': 'get',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-                    },
-                ],
-                'google.longrunning.Operations.ListOperations': [
-                    {
-                        'method': 'get',
-                        'uri': '/v2/{name=projects/*/locations/*}/operations',
-                    },
-                ],
-                'google.longrunning.Operations.WaitOperation': [
-                    {
-                        'method': 'post',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                        'body': '*',
-                    },
-                ],
-            }
-
-            rest_transport = operations_v1.OperationsRestTransport(
-                    host=self._host,
-                    # use the credentials which are saved
-                    credentials=self._credentials,
-                    scopes=self._scopes,
-                    http_options=http_options,
-                    path_prefix="v2")
-
-            self._operations_client = operations_v1.AbstractOperationsClient(transport=rest_transport)
-
-        # Return the client from cache.
-        return self._operations_client
-
-    class _DeleteRevision(_BaseRevisionsRestTransport._BaseDeleteRevision, RevisionsRestStub):
-        def __hash__(self):
-            return hash("RevisionsRestTransport.DeleteRevision")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: revision.DeleteRevisionRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the delete revision method over HTTP.
-
-            Args:
-                request (~.revision.DeleteRevisionRequest):
-                    The request object. Request message for deleting a
-                retired Revision. Revision lifecycle is
-                usually managed by making changes to the
-                parent Service. Only retired revisions
-                can be deleted with this API.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseRevisionsRestTransport._BaseDeleteRevision._get_http_options()
-            request, metadata = self._interceptor.pre_delete_revision(request, metadata)
-            transcoded_request = _BaseRevisionsRestTransport._BaseDeleteRevision._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseRevisionsRestTransport._BaseDeleteRevision._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = RevisionsRestTransport._DeleteRevision._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_delete_revision(resp)
-            return resp
-
-    class _GetRevision(_BaseRevisionsRestTransport._BaseGetRevision, RevisionsRestStub):
-        def __hash__(self):
-            return hash("RevisionsRestTransport.GetRevision")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: revision.GetRevisionRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> revision.Revision:
-            r"""Call the get revision method over HTTP.
-
-            Args:
-                request (~.revision.GetRevisionRequest):
-                    The request object. Request message for obtaining a
-                Revision by its full name.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.revision.Revision:
-                    A Revision is an immutable snapshot
-                of code and configuration.  A Revision
-                references a container image. Revisions
-                are only created by updates to its
-                parent Service.
-
-            """
-
-            http_options = _BaseRevisionsRestTransport._BaseGetRevision._get_http_options()
-            request, metadata = self._interceptor.pre_get_revision(request, metadata)
-            transcoded_request = _BaseRevisionsRestTransport._BaseGetRevision._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseRevisionsRestTransport._BaseGetRevision._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = RevisionsRestTransport._GetRevision._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = revision.Revision()
-            pb_resp = revision.Revision.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_get_revision(resp)
-            return resp
-
-    class _ListRevisions(_BaseRevisionsRestTransport._BaseListRevisions, RevisionsRestStub):
-        def __hash__(self):
-            return hash("RevisionsRestTransport.ListRevisions")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: revision.ListRevisionsRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> revision.ListRevisionsResponse:
-            r"""Call the list revisions method over HTTP.
-
-            Args:
-                request (~.revision.ListRevisionsRequest):
-                    The request object. Request message for retrieving a list
-                of Revisions.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.revision.ListRevisionsResponse:
-                    Response message containing a list of
-                Revisions.
-
-            """
-
-            http_options = _BaseRevisionsRestTransport._BaseListRevisions._get_http_options()
-            request, metadata = self._interceptor.pre_list_revisions(request, metadata)
-            transcoded_request = _BaseRevisionsRestTransport._BaseListRevisions._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseRevisionsRestTransport._BaseListRevisions._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = RevisionsRestTransport._ListRevisions._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = revision.ListRevisionsResponse()
-            pb_resp = revision.ListRevisionsResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_list_revisions(resp)
-            return resp
-
-    @property
-    def delete_revision(self) -> Callable[
-            [revision.DeleteRevisionRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._DeleteRevision(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def get_revision(self) -> Callable[
-            [revision.GetRevisionRequest],
-            revision.Revision]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._GetRevision(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def list_revisions(self) -> Callable[
-            [revision.ListRevisionsRequest],
-            revision.ListRevisionsResponse]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._ListRevisions(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_operation(self):
-        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _DeleteOperation(_BaseRevisionsRestTransport._BaseDeleteOperation, RevisionsRestStub):
-        def __hash__(self):
-            return hash("RevisionsRestTransport.DeleteOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.DeleteOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> None:
-
-            r"""Call the delete operation method over HTTP.
-
-            Args:
-                request (operations_pb2.DeleteOperationRequest):
-                    The request object for DeleteOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-            """
-
-            http_options = _BaseRevisionsRestTransport._BaseDeleteOperation._get_http_options()
-            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
-            transcoded_request = _BaseRevisionsRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseRevisionsRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = RevisionsRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            return self._interceptor.post_delete_operation(None)
-
-    @property
-    def get_operation(self):
-        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _GetOperation(_BaseRevisionsRestTransport._BaseGetOperation, RevisionsRestStub):
-        def __hash__(self):
-            return hash("RevisionsRestTransport.GetOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.GetOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the get operation method over HTTP.
-
-            Args:
-                request (operations_pb2.GetOperationRequest):
-                    The request object for GetOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from GetOperation method.
-            """
-
-            http_options = _BaseRevisionsRestTransport._BaseGetOperation._get_http_options()
-            request, metadata = self._interceptor.pre_get_operation(request, metadata)
-            transcoded_request = _BaseRevisionsRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseRevisionsRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = RevisionsRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_get_operation(resp)
-            return resp
-
-    @property
-    def list_operations(self):
-        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
-
-    class _ListOperations(_BaseRevisionsRestTransport._BaseListOperations, RevisionsRestStub):
-        def __hash__(self):
-            return hash("RevisionsRestTransport.ListOperations")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.ListOperationsRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.ListOperationsResponse:
-
-            r"""Call the list operations method over HTTP.
-
-            Args:
-                request (operations_pb2.ListOperationsRequest):
-                    The request object for ListOperations method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.ListOperationsResponse: Response from ListOperations method.
-            """
-
-            http_options = _BaseRevisionsRestTransport._BaseListOperations._get_http_options()
-            request, metadata = self._interceptor.pre_list_operations(request, metadata)
-            transcoded_request = _BaseRevisionsRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseRevisionsRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = RevisionsRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.ListOperationsResponse()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_list_operations(resp)
-            return resp
-
-    @property
-    def wait_operation(self):
-        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _WaitOperation(_BaseRevisionsRestTransport._BaseWaitOperation, RevisionsRestStub):
-        def __hash__(self):
-            return hash("RevisionsRestTransport.WaitOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.WaitOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the wait operation method over HTTP.
-
-            Args:
-                request (operations_pb2.WaitOperationRequest):
-                    The request object for WaitOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from WaitOperation method.
-            """
-
-            http_options = _BaseRevisionsRestTransport._BaseWaitOperation._get_http_options()
-            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
-            transcoded_request = _BaseRevisionsRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
-
-            body = _BaseRevisionsRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseRevisionsRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = RevisionsRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_wait_operation(resp)
-            return resp
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'RevisionsRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest_base.py
deleted file mode 100644
index c9449f26cd35..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/revisions/transports/rest_base.py
+++ /dev/null
@@ -1,309 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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  # type: ignore
-from google.api_core import path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.cloud.location import locations_pb2 # type: ignore
-from .base import RevisionsTransport, DEFAULT_CLIENT_INFO
-
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-
-
-from google.cloud.run_v2.types import revision
-from google.longrunning import operations_pb2  # type: ignore
-
-
-class _BaseRevisionsRestTransport(RevisionsTransport):
-    """Base REST backend transport for Revisions.
-
-    Note: This class is not meant to be used directly. Use its sync and
-    async sub-classes instead.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[Any] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            url_scheme: str = 'https',
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[Any]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
-        if maybe_url_match is None:
-            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
-
-        url_match_items = maybe_url_match.groupdict()
-
-        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
-
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience
-        )
-
-    class _BaseDeleteRevision:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/services/*/revisions/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = revision.DeleteRevisionRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseRevisionsRestTransport._BaseDeleteRevision._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseGetRevision:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/services/*/revisions/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = revision.GetRevisionRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseRevisionsRestTransport._BaseGetRevision._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseListRevisions:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{parent=projects/*/locations/*/services/*}/revisions',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = revision.ListRevisionsRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseRevisionsRestTransport._BaseListRevisions._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseGetOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseListOperations:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*}/operations',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseWaitOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            body = json.dumps(transcoded_request['body'])
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-
-__all__=(
-    '_BaseRevisionsRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/__init__.py
deleted file mode 100644
index 84358a0d50c5..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from .client import ServicesClient
-from .async_client import ServicesAsyncClient
-
-__all__ = (
-    'ServicesClient',
-    'ServicesAsyncClient',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/async_client.py
deleted file mode 100644
index 9ad4423d0275..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/async_client.py
+++ /dev/null
@@ -1,1452 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core.client_options import ClientOptions
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry_async as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-
-try:
-    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.services import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import revision_template
-from google.cloud.run_v2.types import service
-from google.cloud.run_v2.types import service as gcr_service
-from google.cloud.run_v2.types import traffic_target
-from google.cloud.run_v2.types import vendor_settings
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import field_mask_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import ServicesTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import ServicesGrpcAsyncIOTransport
-from .client import ServicesClient
-
-
-class ServicesAsyncClient:
-    """Cloud Run Service Control Plane API"""
-
-    _client: ServicesClient
-
-    # Copy defaults from the synchronous client for use here.
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = ServicesClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = ServicesClient.DEFAULT_MTLS_ENDPOINT
-    _DEFAULT_ENDPOINT_TEMPLATE = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE
-    _DEFAULT_UNIVERSE = ServicesClient._DEFAULT_UNIVERSE
-
-    connector_path = staticmethod(ServicesClient.connector_path)
-    parse_connector_path = staticmethod(ServicesClient.parse_connector_path)
-    crypto_key_path = staticmethod(ServicesClient.crypto_key_path)
-    parse_crypto_key_path = staticmethod(ServicesClient.parse_crypto_key_path)
-    mesh_path = staticmethod(ServicesClient.mesh_path)
-    parse_mesh_path = staticmethod(ServicesClient.parse_mesh_path)
-    policy_path = staticmethod(ServicesClient.policy_path)
-    parse_policy_path = staticmethod(ServicesClient.parse_policy_path)
-    revision_path = staticmethod(ServicesClient.revision_path)
-    parse_revision_path = staticmethod(ServicesClient.parse_revision_path)
-    secret_path = staticmethod(ServicesClient.secret_path)
-    parse_secret_path = staticmethod(ServicesClient.parse_secret_path)
-    secret_version_path = staticmethod(ServicesClient.secret_version_path)
-    parse_secret_version_path = staticmethod(ServicesClient.parse_secret_version_path)
-    service_path = staticmethod(ServicesClient.service_path)
-    parse_service_path = staticmethod(ServicesClient.parse_service_path)
-    common_billing_account_path = staticmethod(ServicesClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(ServicesClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(ServicesClient.common_folder_path)
-    parse_common_folder_path = staticmethod(ServicesClient.parse_common_folder_path)
-    common_organization_path = staticmethod(ServicesClient.common_organization_path)
-    parse_common_organization_path = staticmethod(ServicesClient.parse_common_organization_path)
-    common_project_path = staticmethod(ServicesClient.common_project_path)
-    parse_common_project_path = staticmethod(ServicesClient.parse_common_project_path)
-    common_location_path = staticmethod(ServicesClient.common_location_path)
-    parse_common_location_path = staticmethod(ServicesClient.parse_common_location_path)
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            ServicesAsyncClient: The constructed client.
-        """
-        return ServicesClient.from_service_account_info.__func__(ServicesAsyncClient, info, *args, **kwargs)  # type: ignore
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            ServicesAsyncClient: The constructed client.
-        """
-        return ServicesClient.from_service_account_file.__func__(ServicesAsyncClient, filename, *args, **kwargs)  # type: ignore
-
-    from_service_account_json = from_service_account_file
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
-        """Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-        return ServicesClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> ServicesTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ServicesTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._client._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used
-                by the client instance.
-        """
-        return self._client._universe_domain
-
-    get_transport_class = ServicesClient.get_transport_class
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, ServicesTransport, Callable[..., ServicesTransport]]] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the services async client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,ServicesTransport,Callable[..., ServicesTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport to use.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the ServicesTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = ServicesClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def create_service(self,
-            request: Optional[Union[gcr_service.CreateServiceRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            service: Optional[gcr_service.Service] = None,
-            service_id: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Creates a new Service in a given project and
-        location.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_create_service():
-                # Create a client
-                client = run_v2.ServicesAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.CreateServiceRequest(
-                    parent="parent_value",
-                    service_id="service_id_value",
-                )
-
-                # Make the request
-                operation = client.create_service(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.CreateServiceRequest, dict]]):
-                The request object. Request message for creating a
-                Service.
-            parent (:class:`str`):
-                Required. The location and project in
-                which this service should be created.
-                Format:
-                projects/{project}/locations/{location},
-                where {project} can be project id or
-                number. Only lowercase characters,
-                digits, and hyphens.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            service (:class:`google.cloud.run_v2.types.Service`):
-                Required. The Service instance to
-                create.
-
-                This corresponds to the ``service`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            service_id (:class:`str`):
-                Required. The unique identifier for the Service. It must
-                begin with letter, and cannot end with hyphen; must
-                contain fewer than 50 characters. The name of the
-                service becomes {parent}/services/{service_id}.
-
-                This corresponds to the ``service_id`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
-                   configurations and revision templates which implement
-                   a network service. Service exists to provide a
-                   singular abstraction which can be access controlled,
-                   reasoned about, and which encapsulates software
-                   lifecycle decisions such as rollout policy and team
-                   resource ownership.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent, service, service_id])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, gcr_service.CreateServiceRequest):
-            request = gcr_service.CreateServiceRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if parent is not None:
-            request.parent = parent
-        if service is not None:
-            request.service = service
-        if service_id is not None:
-            request.service_id = service_id
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.create_service]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            gcr_service.Service,
-            metadata_type=gcr_service.Service,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def get_service(self,
-            request: Optional[Union[service.GetServiceRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> service.Service:
-        r"""Gets information about a Service.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_get_service():
-                # Create a client
-                client = run_v2.ServicesAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetServiceRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = await client.get_service(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.GetServiceRequest, dict]]):
-                The request object. Request message for obtaining a
-                Service by its full name.
-            name (:class:`str`):
-                Required. The full name of the
-                Service. Format:
-                projects/{project}/locations/{location}/services/{service},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Service:
-                Service acts as a top-level container
-                that manages a set of configurations and
-                revision templates which implement a
-                network service. Service exists to
-                provide a singular abstraction which can
-                be access controlled, reasoned about,
-                and which encapsulates software
-                lifecycle decisions such as rollout
-                policy and team resource ownership.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, service.GetServiceRequest):
-            request = service.GetServiceRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.get_service]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_services(self,
-            request: Optional[Union[service.ListServicesRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListServicesAsyncPager:
-        r"""Lists Services. Results are sorted by creation time,
-        descending.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_list_services():
-                # Create a client
-                client = run_v2.ServicesAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListServicesRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_services(request=request)
-
-                # Handle the response
-                async for response in page_result:
-                    print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.ListServicesRequest, dict]]):
-                The request object. Request message for retrieving a list
-                of Services.
-            parent (:class:`str`):
-                Required. The location and project to
-                list resources on. Location must be a
-                valid Google Cloud region, and cannot be
-                the "-" wildcard. Format:
-                projects/{project}/locations/{location},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.services.pagers.ListServicesAsyncPager:
-                Response message containing a list of
-                Services.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, service.ListServicesRequest):
-            request = service.ListServicesRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if parent is not None:
-            request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.list_services]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__aiter__` convenience method.
-        response = pagers.ListServicesAsyncPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def update_service(self,
-            request: Optional[Union[gcr_service.UpdateServiceRequest, dict]] = None,
-            *,
-            service: Optional[gcr_service.Service] = None,
-            update_mask: Optional[field_mask_pb2.FieldMask] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Updates a Service.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_update_service():
-                # Create a client
-                client = run_v2.ServicesAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.UpdateServiceRequest(
-                )
-
-                # Make the request
-                operation = client.update_service(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.UpdateServiceRequest, dict]]):
-                The request object. Request message for updating a
-                service.
-            service (:class:`google.cloud.run_v2.types.Service`):
-                Required. The Service to be updated.
-                This corresponds to the ``service`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`):
-                Optional. The list of fields to be
-                updated.
-
-                This corresponds to the ``update_mask`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
-                   configurations and revision templates which implement
-                   a network service. Service exists to provide a
-                   singular abstraction which can be access controlled,
-                   reasoned about, and which encapsulates software
-                   lifecycle decisions such as rollout policy and team
-                   resource ownership.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([service, update_mask])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, gcr_service.UpdateServiceRequest):
-            request = gcr_service.UpdateServiceRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if service is not None:
-            request.service = service
-        if update_mask is not None:
-            request.update_mask = update_mask
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.update_service]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.service.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            gcr_service.Service,
-            metadata_type=gcr_service.Service,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def delete_service(self,
-            request: Optional[Union[service.DeleteServiceRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation_async.AsyncOperation:
-        r"""Deletes a Service.
-        This will cause the Service to stop serving traffic and
-        will delete all revisions.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_delete_service():
-                # Create a client
-                client = run_v2.ServicesAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.DeleteServiceRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.delete_service(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = (await operation).result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.DeleteServiceRequest, dict]]):
-                The request object. Request message to delete a Service
-                by its full name.
-            name (:class:`str`):
-                Required. The full name of the
-                Service. Format:
-                projects/{project}/locations/{location}/services/{service},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation_async.AsyncOperation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
-                   configurations and revision templates which implement
-                   a network service. Service exists to provide a
-                   singular abstraction which can be access controlled,
-                   reasoned about, and which encapsulates software
-                   lifecycle decisions such as rollout policy and team
-                   resource ownership.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, service.DeleteServiceRequest):
-            request = service.DeleteServiceRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.delete_service]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation_async.from_gapic(
-            response,
-            self._client._transport.operations_client,
-            service.Service,
-            metadata_type=service.Service,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def get_iam_policy(self,
-            request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> policy_pb2.Policy:
-        r"""Gets the IAM Access Control policy currently in
-        effect for the given Cloud Run Service. This result does
-        not include any inherited policies.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            async def sample_get_iam_policy():
-                # Create a client
-                client = run_v2.ServicesAsyncClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.GetIamPolicyRequest(
-                    resource="resource_value",
-                )
-
-                # Make the request
-                response = await client.get_iam_policy(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]]):
-                The request object. Request message for ``GetIamPolicy`` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.policy_pb2.Policy:
-                An Identity and Access Management (IAM) policy, which specifies access
-                   controls for Google Cloud resources.
-
-                   A Policy is a collection of bindings. A binding binds
-                   one or more members, or principals, to a single role.
-                   Principals can be user accounts, service accounts,
-                   Google groups, and domains (such as G Suite). A role
-                   is a named list of permissions; each role can be an
-                   IAM predefined role or a user-created custom role.
-
-                   For some types of Google Cloud resources, a binding
-                   can also specify a condition, which is a logical
-                   expression that allows access to a resource only if
-                   the expression evaluates to true. A condition can add
-                   constraints based on attributes of the request, the
-                   resource, or both. To learn which resources support
-                   conditions in their IAM policies, see the [IAM
-                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
-
-                   **JSON example:**
-
-                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
-
-                   **YAML example:**
-
-                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
-
-                   For a description of IAM and its features, see the
-                   [IAM
-                   documentation](\ https://cloud.google.com/iam/docs/).
-
-        """
-        # Create or coerce a protobuf request object.
-         # - The request isn't a proto-plus wrapped type,
-        #   so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = iam_policy_pb2.GetIamPolicyRequest(**request)
-        elif not request:
-            request = iam_policy_pb2.GetIamPolicyRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.get_iam_policy]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def set_iam_policy(self,
-            request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> policy_pb2.Policy:
-        r"""Sets the IAM Access control policy for the specified
-        Service. Overwrites any existing policy.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            async def sample_set_iam_policy():
-                # Create a client
-                client = run_v2.ServicesAsyncClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.SetIamPolicyRequest(
-                    resource="resource_value",
-                )
-
-                # Make the request
-                response = await client.set_iam_policy(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]]):
-                The request object. Request message for ``SetIamPolicy`` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.policy_pb2.Policy:
-                An Identity and Access Management (IAM) policy, which specifies access
-                   controls for Google Cloud resources.
-
-                   A Policy is a collection of bindings. A binding binds
-                   one or more members, or principals, to a single role.
-                   Principals can be user accounts, service accounts,
-                   Google groups, and domains (such as G Suite). A role
-                   is a named list of permissions; each role can be an
-                   IAM predefined role or a user-created custom role.
-
-                   For some types of Google Cloud resources, a binding
-                   can also specify a condition, which is a logical
-                   expression that allows access to a resource only if
-                   the expression evaluates to true. A condition can add
-                   constraints based on attributes of the request, the
-                   resource, or both. To learn which resources support
-                   conditions in their IAM policies, see the [IAM
-                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
-
-                   **JSON example:**
-
-                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
-
-                   **YAML example:**
-
-                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
-
-                   For a description of IAM and its features, see the
-                   [IAM
-                   documentation](\ https://cloud.google.com/iam/docs/).
-
-        """
-        # Create or coerce a protobuf request object.
-         # - The request isn't a proto-plus wrapped type,
-        #   so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = iam_policy_pb2.SetIamPolicyRequest(**request)
-        elif not request:
-            request = iam_policy_pb2.SetIamPolicyRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.set_iam_policy]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def test_iam_permissions(self,
-            request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> iam_policy_pb2.TestIamPermissionsResponse:
-        r"""Returns permissions that a caller has on the
-        specified Project.
-        There are no permissions required for making this API
-        call.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            async def sample_test_iam_permissions():
-                # Create a client
-                client = run_v2.ServicesAsyncClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.TestIamPermissionsRequest(
-                    resource="resource_value",
-                    permissions=['permissions_value1', 'permissions_value2'],
-                )
-
-                # Make the request
-                response = await client.test_iam_permissions(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]]):
-                The request object. Request message for ``TestIamPermissions`` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse:
-                Response message for TestIamPermissions method.
-        """
-        # Create or coerce a protobuf request object.
-         # - The request isn't a proto-plus wrapped type,
-        #   so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = iam_policy_pb2.TestIamPermissionsRequest(**request)
-        elif not request:
-            request = iam_policy_pb2.TestIamPermissionsRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.test_iam_permissions]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    async def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "ServicesAsyncClient":
-        return self
-
-    async def __aexit__(self, exc_type, exc, tb):
-        await self.transport.close()
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "ServicesAsyncClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/client.py
deleted file mode 100644
index 9bd8e801428a..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/client.py
+++ /dev/null
@@ -1,1843 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import os
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-import warnings
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core import client_options as client_options_lib
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials             # type: ignore
-from google.auth.transport import mtls                            # type: ignore
-from google.auth.transport.grpc import SslCredentials             # type: ignore
-from google.auth.exceptions import MutualTLSChannelError          # type: ignore
-from google.oauth2 import service_account                         # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.services import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import revision_template
-from google.cloud.run_v2.types import service
-from google.cloud.run_v2.types import service as gcr_service
-from google.cloud.run_v2.types import traffic_target
-from google.cloud.run_v2.types import vendor_settings
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import field_mask_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import ServicesTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import ServicesGrpcTransport
-from .transports.grpc_asyncio import ServicesGrpcAsyncIOTransport
-from .transports.rest import ServicesRestTransport
-
-
-class ServicesClientMeta(type):
-    """Metaclass for the Services client.
-
-    This provides class-level methods for building and retrieving
-    support objects (e.g. transport) without polluting the client instance
-    objects.
-    """
-    _transport_registry = OrderedDict()  # type: Dict[str, Type[ServicesTransport]]
-    _transport_registry["grpc"] = ServicesGrpcTransport
-    _transport_registry["grpc_asyncio"] = ServicesGrpcAsyncIOTransport
-    _transport_registry["rest"] = ServicesRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[ServicesTransport]:
-        """Returns an appropriate transport class.
-
-        Args:
-            label: The name of the desired transport. If none is
-                provided, then the first transport in the registry is used.
-
-        Returns:
-            The transport class to use.
-        """
-        # If a specific transport is requested, return that one.
-        if label:
-            return cls._transport_registry[label]
-
-        # No transport is requested; return the default (that is, the first one
-        # in the dictionary).
-        return next(iter(cls._transport_registry.values()))
-
-
-class ServicesClient(metaclass=ServicesClientMeta):
-    """Cloud Run Service Control Plane API"""
-
-    @staticmethod
-    def _get_default_mtls_endpoint(api_endpoint):
-        """Converts api endpoint to mTLS endpoint.
-
-        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
-        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
-        Args:
-            api_endpoint (Optional[str]): the api endpoint to convert.
-        Returns:
-            str: converted mTLS api endpoint.
-        """
-        if not api_endpoint:
-            return api_endpoint
-
-        mtls_endpoint_re = re.compile(
-            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
-        )
-
-        m = mtls_endpoint_re.match(api_endpoint)
-        name, mtls, sandbox, googledomain = m.groups()
-        if mtls or not googledomain:
-            return api_endpoint
-
-        if sandbox:
-            return api_endpoint.replace(
-                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
-            )
-
-        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
-
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = "run.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
-    _DEFAULT_UNIVERSE = "googleapis.com"
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            ServicesClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_info(info)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            ServicesClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_file(
-            filename)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    from_service_account_json = from_service_account_file
-
-    @property
-    def transport(self) -> ServicesTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ServicesTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @staticmethod
-    def connector_path(project: str,location: str,connector: str,) -> str:
-        """Returns a fully-qualified connector string."""
-        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-
-    @staticmethod
-    def parse_connector_path(path: str) -> Dict[str,str]:
-        """Parses a connector path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
-        """Returns a fully-qualified crypto_key string."""
-        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-
-    @staticmethod
-    def parse_crypto_key_path(path: str) -> Dict[str,str]:
-        """Parses a crypto_key path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def mesh_path(project: str,location: str,mesh: str,) -> str:
-        """Returns a fully-qualified mesh string."""
-        return "projects/{project}/locations/{location}/meshes/{mesh}".format(project=project, location=location, mesh=mesh, )
-
-    @staticmethod
-    def parse_mesh_path(path: str) -> Dict[str,str]:
-        """Parses a mesh path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/meshes/(?P<mesh>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def policy_path(project: str,) -> str:
-        """Returns a fully-qualified policy string."""
-        return "projects/{project}/policy".format(project=project, )
-
-    @staticmethod
-    def parse_policy_path(path: str) -> Dict[str,str]:
-        """Parses a policy path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/policy$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def revision_path(project: str,location: str,service: str,revision: str,) -> str:
-        """Returns a fully-qualified revision string."""
-        return "projects/{project}/locations/{location}/services/{service}/revisions/{revision}".format(project=project, location=location, service=service, revision=revision, )
-
-    @staticmethod
-    def parse_revision_path(path: str) -> Dict[str,str]:
-        """Parses a revision path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/services/(?P<service>.+?)/revisions/(?P<revision>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_path(project: str,secret: str,) -> str:
-        """Returns a fully-qualified secret string."""
-        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-
-    @staticmethod
-    def parse_secret_path(path: str) -> Dict[str,str]:
-        """Parses a secret path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_version_path(project: str,secret: str,version: str,) -> str:
-        """Returns a fully-qualified secret_version string."""
-        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-
-    @staticmethod
-    def parse_secret_version_path(path: str) -> Dict[str,str]:
-        """Parses a secret_version path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def service_path(project: str,location: str,service: str,) -> str:
-        """Returns a fully-qualified service string."""
-        return "projects/{project}/locations/{location}/services/{service}".format(project=project, location=location, service=service, )
-
-    @staticmethod
-    def parse_service_path(path: str) -> Dict[str,str]:
-        """Parses a service path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/services/(?P<service>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_billing_account_path(billing_account: str, ) -> str:
-        """Returns a fully-qualified billing_account string."""
-        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-
-    @staticmethod
-    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
-        """Parse a billing_account path into its component segments."""
-        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_folder_path(folder: str, ) -> str:
-        """Returns a fully-qualified folder string."""
-        return "folders/{folder}".format(folder=folder, )
-
-    @staticmethod
-    def parse_common_folder_path(path: str) -> Dict[str,str]:
-        """Parse a folder path into its component segments."""
-        m = re.match(r"^folders/(?P<folder>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_organization_path(organization: str, ) -> str:
-        """Returns a fully-qualified organization string."""
-        return "organizations/{organization}".format(organization=organization, )
-
-    @staticmethod
-    def parse_common_organization_path(path: str) -> Dict[str,str]:
-        """Parse a organization path into its component segments."""
-        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_project_path(project: str, ) -> str:
-        """Returns a fully-qualified project string."""
-        return "projects/{project}".format(project=project, )
-
-    @staticmethod
-    def parse_common_project_path(path: str) -> Dict[str,str]:
-        """Parse a project path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_location_path(project: str, location: str, ) -> str:
-        """Returns a fully-qualified location string."""
-        return "projects/{project}/locations/{location}".format(project=project, location=location, )
-
-    @staticmethod
-    def parse_common_location_path(path: str) -> Dict[str,str]:
-        """Parse a location path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
-        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-
-        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
-            DeprecationWarning)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-
-        # Figure out the client cert source to use.
-        client_cert_source = None
-        if use_client_cert == "true":
-            if client_options.client_cert_source:
-                client_cert_source = client_options.client_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-
-        # Figure out which api endpoint to use.
-        if client_options.api_endpoint is not None:
-            api_endpoint = client_options.api_endpoint
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = cls.DEFAULT_ENDPOINT
-
-        return api_endpoint, client_cert_source
-
-    @staticmethod
-    def _read_environment_variables():
-        """Returns the environment variables used by the client.
-
-        Returns:
-            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
-            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
-
-        Raises:
-            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
-                any of ["true", "false"].
-            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
-                is not any of ["auto", "never", "always"].
-        """
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
-        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
-
-    @staticmethod
-    def _get_client_cert_source(provided_cert_source, use_cert_flag):
-        """Return the client cert source to be used by the client.
-
-        Args:
-            provided_cert_source (bytes): The client certificate source provided.
-            use_cert_flag (bool): A flag indicating whether to use the client certificate.
-
-        Returns:
-            bytes or None: The client cert source to be used by the client.
-        """
-        client_cert_source = None
-        if use_cert_flag:
-            if provided_cert_source:
-                client_cert_source = provided_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-        return client_cert_source
-
-    @staticmethod
-    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
-        """Return the API endpoint used by the client.
-
-        Args:
-            api_override (str): The API endpoint override. If specified, this is always
-                the return value of this function and the other arguments are not used.
-            client_cert_source (bytes): The client certificate source used by the client.
-            universe_domain (str): The universe domain used by the client.
-            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
-                Possible values are "always", "auto", or "never".
-
-        Returns:
-            str: The API endpoint to be used by the client.
-        """
-        if api_override is not None:
-            api_endpoint = api_override
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            _default_universe = ServicesClient._DEFAULT_UNIVERSE
-            if universe_domain != _default_universe:
-                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
-            api_endpoint = ServicesClient.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
-        return api_endpoint
-
-    @staticmethod
-    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
-        """Return the universe domain used by the client.
-
-        Args:
-            client_universe_domain (Optional[str]): The universe domain configured via the client options.
-            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
-
-        Returns:
-            str: The universe domain to be used by the client.
-
-        Raises:
-            ValueError: If the universe domain is an empty string.
-        """
-        universe_domain = ServicesClient._DEFAULT_UNIVERSE
-        if client_universe_domain is not None:
-            universe_domain = client_universe_domain
-        elif universe_domain_env is not None:
-            universe_domain = universe_domain_env
-        if len(universe_domain.strip()) == 0:
-            raise ValueError("Universe Domain cannot be an empty string.")
-        return universe_domain
-
-    def _validate_universe_domain(self):
-        """Validates client's and credentials' universe domains are consistent.
-
-        Returns:
-            bool: True iff the configured universe domain is valid.
-
-        Raises:
-            ValueError: If the configured universe domain is not valid.
-        """
-
-        # NOTE (b/349488459): universe validation is disabled until further notice.
-        return True
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used by the client instance.
-        """
-        return self._universe_domain
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, ServicesTransport, Callable[..., ServicesTransport]]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the services client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,ServicesTransport,Callable[..., ServicesTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the ServicesTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that the ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client_options = client_options
-        if isinstance(self._client_options, dict):
-            self._client_options = client_options_lib.from_dict(self._client_options)
-        if self._client_options is None:
-            self._client_options = client_options_lib.ClientOptions()
-        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
-
-        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
-
-        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = ServicesClient._read_environment_variables()
-        self._client_cert_source = ServicesClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
-        self._universe_domain = ServicesClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
-        self._api_endpoint = None # updated below, depending on `transport`
-
-        # Initialize the universe domain validation.
-        self._is_universe_domain_valid = False
-
-        api_key_value = getattr(self._client_options, "api_key", None)
-        if api_key_value and credentials:
-            raise ValueError("client_options.api_key and credentials are mutually exclusive")
-
-        # Save or instantiate the transport.
-        # Ordinarily, we provide the transport, but allowing a custom transport
-        # instance provides an extensibility point for unusual situations.
-        transport_provided = isinstance(transport, ServicesTransport)
-        if transport_provided:
-            # transport is a ServicesTransport instance.
-            if credentials or self._client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if self._client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = cast(ServicesTransport, transport)
-            self._api_endpoint = self._transport.host
-
-        self._api_endpoint = (self._api_endpoint or
-            ServicesClient._get_api_endpoint(
-                self._client_options.api_endpoint,
-                self._client_cert_source,
-                self._universe_domain,
-                self._use_mtls_endpoint))
-
-        if not transport_provided:
-            import google.auth._default  # type: ignore
-
-            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
-                credentials = google.auth._default.get_api_key_credentials(api_key_value)
-
-            transport_init: Union[Type[ServicesTransport], Callable[..., ServicesTransport]] = (
-                ServicesClient.get_transport_class(transport)
-                if isinstance(transport, str) or transport is None
-                else cast(Callable[..., ServicesTransport], transport)
-            )
-            # initialize with the provided callable or the passed in class
-            self._transport = transport_init(
-                credentials=credentials,
-                credentials_file=self._client_options.credentials_file,
-                host=self._api_endpoint,
-                scopes=self._client_options.scopes,
-                client_cert_source_for_mtls=self._client_cert_source,
-                quota_project_id=self._client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=self._client_options.api_audience,
-            )
-
-    def create_service(self,
-            request: Optional[Union[gcr_service.CreateServiceRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            service: Optional[gcr_service.Service] = None,
-            service_id: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Creates a new Service in a given project and
-        location.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_create_service():
-                # Create a client
-                client = run_v2.ServicesClient()
-
-                # Initialize request argument(s)
-                request = run_v2.CreateServiceRequest(
-                    parent="parent_value",
-                    service_id="service_id_value",
-                )
-
-                # Make the request
-                operation = client.create_service(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.CreateServiceRequest, dict]):
-                The request object. Request message for creating a
-                Service.
-            parent (str):
-                Required. The location and project in
-                which this service should be created.
-                Format:
-                projects/{project}/locations/{location},
-                where {project} can be project id or
-                number. Only lowercase characters,
-                digits, and hyphens.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            service (google.cloud.run_v2.types.Service):
-                Required. The Service instance to
-                create.
-
-                This corresponds to the ``service`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            service_id (str):
-                Required. The unique identifier for the Service. It must
-                begin with letter, and cannot end with hyphen; must
-                contain fewer than 50 characters. The name of the
-                service becomes {parent}/services/{service_id}.
-
-                This corresponds to the ``service_id`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
-                   configurations and revision templates which implement
-                   a network service. Service exists to provide a
-                   singular abstraction which can be access controlled,
-                   reasoned about, and which encapsulates software
-                   lifecycle decisions such as rollout policy and team
-                   resource ownership.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent, service, service_id])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, gcr_service.CreateServiceRequest):
-            request = gcr_service.CreateServiceRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if parent is not None:
-                request.parent = parent
-            if service is not None:
-                request.service = service
-            if service_id is not None:
-                request.service_id = service_id
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.create_service]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            gcr_service.Service,
-            metadata_type=gcr_service.Service,
-        )
-
-        # Done; return the response.
-        return response
-
-    def get_service(self,
-            request: Optional[Union[service.GetServiceRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> service.Service:
-        r"""Gets information about a Service.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_get_service():
-                # Create a client
-                client = run_v2.ServicesClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetServiceRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = client.get_service(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.GetServiceRequest, dict]):
-                The request object. Request message for obtaining a
-                Service by its full name.
-            name (str):
-                Required. The full name of the
-                Service. Format:
-                projects/{project}/locations/{location}/services/{service},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Service:
-                Service acts as a top-level container
-                that manages a set of configurations and
-                revision templates which implement a
-                network service. Service exists to
-                provide a singular abstraction which can
-                be access controlled, reasoned about,
-                and which encapsulates software
-                lifecycle decisions such as rollout
-                policy and team resource ownership.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, service.GetServiceRequest):
-            request = service.GetServiceRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_service]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def list_services(self,
-            request: Optional[Union[service.ListServicesRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListServicesPager:
-        r"""Lists Services. Results are sorted by creation time,
-        descending.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_list_services():
-                # Create a client
-                client = run_v2.ServicesClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListServicesRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_services(request=request)
-
-                # Handle the response
-                for response in page_result:
-                    print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.ListServicesRequest, dict]):
-                The request object. Request message for retrieving a list
-                of Services.
-            parent (str):
-                Required. The location and project to
-                list resources on. Location must be a
-                valid Google Cloud region, and cannot be
-                the "-" wildcard. Format:
-                projects/{project}/locations/{location},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.services.pagers.ListServicesPager:
-                Response message containing a list of
-                Services.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, service.ListServicesRequest):
-            request = service.ListServicesRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if parent is not None:
-                request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_services]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)$')
-        regex_match = routing_param_regex.match(request.parent)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__iter__` convenience method.
-        response = pagers.ListServicesPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def update_service(self,
-            request: Optional[Union[gcr_service.UpdateServiceRequest, dict]] = None,
-            *,
-            service: Optional[gcr_service.Service] = None,
-            update_mask: Optional[field_mask_pb2.FieldMask] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Updates a Service.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_update_service():
-                # Create a client
-                client = run_v2.ServicesClient()
-
-                # Initialize request argument(s)
-                request = run_v2.UpdateServiceRequest(
-                )
-
-                # Make the request
-                operation = client.update_service(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.UpdateServiceRequest, dict]):
-                The request object. Request message for updating a
-                service.
-            service (google.cloud.run_v2.types.Service):
-                Required. The Service to be updated.
-                This corresponds to the ``service`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            update_mask (google.protobuf.field_mask_pb2.FieldMask):
-                Optional. The list of fields to be
-                updated.
-
-                This corresponds to the ``update_mask`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
-                   configurations and revision templates which implement
-                   a network service. Service exists to provide a
-                   singular abstraction which can be access controlled,
-                   reasoned about, and which encapsulates software
-                   lifecycle decisions such as rollout policy and team
-                   resource ownership.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([service, update_mask])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, gcr_service.UpdateServiceRequest):
-            request = gcr_service.UpdateServiceRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if service is not None:
-                request.service = service
-            if update_mask is not None:
-                request.update_mask = update_mask
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.update_service]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.service.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            gcr_service.Service,
-            metadata_type=gcr_service.Service,
-        )
-
-        # Done; return the response.
-        return response
-
-    def delete_service(self,
-            request: Optional[Union[service.DeleteServiceRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> operation.Operation:
-        r"""Deletes a Service.
-        This will cause the Service to stop serving traffic and
-        will delete all revisions.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_delete_service():
-                # Create a client
-                client = run_v2.ServicesClient()
-
-                # Initialize request argument(s)
-                request = run_v2.DeleteServiceRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                operation = client.delete_service(request=request)
-
-                print("Waiting for operation to complete...")
-
-                response = operation.result()
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.DeleteServiceRequest, dict]):
-                The request object. Request message to delete a Service
-                by its full name.
-            name (str):
-                Required. The full name of the
-                Service. Format:
-                projects/{project}/locations/{location}/services/{service},
-                where {project} can be project id or
-                number.
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.api_core.operation.Operation:
-                An object representing a long-running operation.
-
-                The result type for the operation will be :class:`google.cloud.run_v2.types.Service` Service acts as a top-level container that manages a set of
-                   configurations and revision templates which implement
-                   a network service. Service exists to provide a
-                   singular abstraction which can be access controlled,
-                   reasoned about, and which encapsulates software
-                   lifecycle decisions such as rollout policy and team
-                   resource ownership.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, service.DeleteServiceRequest):
-            request = service.DeleteServiceRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_service]
-
-        header_params = {}
-
-        routing_param_regex = re.compile('^projects/[^/]+/locations/(?P<location>[^/]+)(?:/.*)?$')
-        regex_match = routing_param_regex.match(request.name)
-        if regex_match and regex_match.group("location"):
-            header_params["location"] = regex_match.group("location")
-
-        if header_params:
-            metadata = tuple(metadata) + (
-                gapic_v1.routing_header.to_grpc_metadata(header_params),
-            )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Wrap the response in an operation future.
-        response = operation.from_gapic(
-            response,
-            self._transport.operations_client,
-            service.Service,
-            metadata_type=service.Service,
-        )
-
-        # Done; return the response.
-        return response
-
-    def get_iam_policy(self,
-            request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> policy_pb2.Policy:
-        r"""Gets the IAM Access Control policy currently in
-        effect for the given Cloud Run Service. This result does
-        not include any inherited policies.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            def sample_get_iam_policy():
-                # Create a client
-                client = run_v2.ServicesClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.GetIamPolicyRequest(
-                    resource="resource_value",
-                )
-
-                # Make the request
-                response = client.get_iam_policy(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]):
-                The request object. Request message for ``GetIamPolicy`` method.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.policy_pb2.Policy:
-                An Identity and Access Management (IAM) policy, which specifies access
-                   controls for Google Cloud resources.
-
-                   A Policy is a collection of bindings. A binding binds
-                   one or more members, or principals, to a single role.
-                   Principals can be user accounts, service accounts,
-                   Google groups, and domains (such as G Suite). A role
-                   is a named list of permissions; each role can be an
-                   IAM predefined role or a user-created custom role.
-
-                   For some types of Google Cloud resources, a binding
-                   can also specify a condition, which is a logical
-                   expression that allows access to a resource only if
-                   the expression evaluates to true. A condition can add
-                   constraints based on attributes of the request, the
-                   resource, or both. To learn which resources support
-                   conditions in their IAM policies, see the [IAM
-                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
-
-                   **JSON example:**
-
-                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
-
-                   **YAML example:**
-
-                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
-
-                   For a description of IAM and its features, see the
-                   [IAM
-                   documentation](\ https://cloud.google.com/iam/docs/).
-
-        """
-        # Create or coerce a protobuf request object.
-        if isinstance(request, dict):
-            # - The request isn't a proto-plus wrapped type,
-            #   so it must be constructed via keyword expansion.
-            request = iam_policy_pb2.GetIamPolicyRequest(**request)
-        elif not request:
-            # Null request, just make one.
-            request = iam_policy_pb2.GetIamPolicyRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_iam_policy]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def set_iam_policy(self,
-            request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> policy_pb2.Policy:
-        r"""Sets the IAM Access control policy for the specified
-        Service. Overwrites any existing policy.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            def sample_set_iam_policy():
-                # Create a client
-                client = run_v2.ServicesClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.SetIamPolicyRequest(
-                    resource="resource_value",
-                )
-
-                # Make the request
-                response = client.set_iam_policy(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]):
-                The request object. Request message for ``SetIamPolicy`` method.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.policy_pb2.Policy:
-                An Identity and Access Management (IAM) policy, which specifies access
-                   controls for Google Cloud resources.
-
-                   A Policy is a collection of bindings. A binding binds
-                   one or more members, or principals, to a single role.
-                   Principals can be user accounts, service accounts,
-                   Google groups, and domains (such as G Suite). A role
-                   is a named list of permissions; each role can be an
-                   IAM predefined role or a user-created custom role.
-
-                   For some types of Google Cloud resources, a binding
-                   can also specify a condition, which is a logical
-                   expression that allows access to a resource only if
-                   the expression evaluates to true. A condition can add
-                   constraints based on attributes of the request, the
-                   resource, or both. To learn which resources support
-                   conditions in their IAM policies, see the [IAM
-                   documentation](\ https://cloud.google.com/iam/help/conditions/resource-policies).
-
-                   **JSON example:**
-
-                   :literal:`\`     {       "bindings": [         {           "role": "roles/resourcemanager.organizationAdmin",           "members": [             "user:mike@example.com",             "group:admins@example.com",             "domain:google.com",             "serviceAccount:my-project-id@appspot.gserviceaccount.com"           ]         },         {           "role": "roles/resourcemanager.organizationViewer",           "members": [             "user:eve@example.com"           ],           "condition": {             "title": "expirable access",             "description": "Does not grant access after Sep 2020",             "expression": "request.time <             timestamp('2020-10-01T00:00:00.000Z')",           }         }       ],       "etag": "BwWWja0YfJA=",       "version": 3     }`\ \`
-
-                   **YAML example:**
-
-                   :literal:`\`     bindings:     - members:       - user:mike@example.com       - group:admins@example.com       - domain:google.com       - serviceAccount:my-project-id@appspot.gserviceaccount.com       role: roles/resourcemanager.organizationAdmin     - members:       - user:eve@example.com       role: roles/resourcemanager.organizationViewer       condition:         title: expirable access         description: Does not grant access after Sep 2020         expression: request.time < timestamp('2020-10-01T00:00:00.000Z')     etag: BwWWja0YfJA=     version: 3`\ \`
-
-                   For a description of IAM and its features, see the
-                   [IAM
-                   documentation](\ https://cloud.google.com/iam/docs/).
-
-        """
-        # Create or coerce a protobuf request object.
-        if isinstance(request, dict):
-            # - The request isn't a proto-plus wrapped type,
-            #   so it must be constructed via keyword expansion.
-            request = iam_policy_pb2.SetIamPolicyRequest(**request)
-        elif not request:
-            # Null request, just make one.
-            request = iam_policy_pb2.SetIamPolicyRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.set_iam_policy]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def test_iam_permissions(self,
-            request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> iam_policy_pb2.TestIamPermissionsResponse:
-        r"""Returns permissions that a caller has on the
-        specified Project.
-        There are no permissions required for making this API
-        call.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-            from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-            def sample_test_iam_permissions():
-                # Create a client
-                client = run_v2.ServicesClient()
-
-                # Initialize request argument(s)
-                request = iam_policy_pb2.TestIamPermissionsRequest(
-                    resource="resource_value",
-                    permissions=['permissions_value1', 'permissions_value2'],
-                )
-
-                # Make the request
-                response = client.test_iam_permissions(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]):
-                The request object. Request message for ``TestIamPermissions`` method.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse:
-                Response message for TestIamPermissions method.
-        """
-        # Create or coerce a protobuf request object.
-        if isinstance(request, dict):
-            # - The request isn't a proto-plus wrapped type,
-            #   so it must be constructed via keyword expansion.
-            request = iam_policy_pb2.TestIamPermissionsRequest(**request)
-        elif not request:
-            # Null request, just make one.
-            request = iam_policy_pb2.TestIamPermissionsRequest()
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.test_iam_permissions]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("resource", request.resource),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "ServicesClient":
-        return self
-
-    def __exit__(self, type, value, traceback):
-        """Releases underlying transport's resources.
-
-        .. warning::
-            ONLY use as a context manager if the transport is NOT shared
-            with other clients! Exiting the with block will CLOSE the transport
-            and may cause errors in other clients!
-        """
-        self.transport.close()
-
-    def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "ServicesClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/pagers.py
deleted file mode 100644
index f475d60bb0df..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/pagers.py
+++ /dev/null
@@ -1,162 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import retry_async as retries_async
-from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
-
-from google.cloud.run_v2.types import service
-
-
-class ListServicesPager:
-    """A pager for iterating through ``list_services`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListServicesResponse` object, and
-    provides an ``__iter__`` method to iterate through its
-    ``services`` field.
-
-    If there are more pages, the ``__iter__`` method will make additional
-    ``ListServices`` requests and continue to iterate
-    through the ``services`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListServicesResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., service.ListServicesResponse],
-            request: service.ListServicesRequest,
-            response: service.ListServicesResponse,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiate the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListServicesRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListServicesResponse):
-                The initial response object.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = service.ListServicesRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    def pages(self) -> Iterator[service.ListServicesResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-
-    def __iter__(self) -> Iterator[service.Service]:
-        for page in self.pages:
-            yield from page.services
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
-
-
-class ListServicesAsyncPager:
-    """A pager for iterating through ``list_services`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListServicesResponse` object, and
-    provides an ``__aiter__`` method to iterate through its
-    ``services`` field.
-
-    If there are more pages, the ``__aiter__`` method will make additional
-    ``ListServices`` requests and continue to iterate
-    through the ``services`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListServicesResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., Awaitable[service.ListServicesResponse]],
-            request: service.ListServicesRequest,
-            response: service.ListServicesResponse,
-            *,
-            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiates the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListServicesRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListServicesResponse):
-                The initial response object.
-            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = service.ListServicesRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    async def pages(self) -> AsyncIterator[service.ListServicesResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-    def __aiter__(self) -> AsyncIterator[service.Service]:
-        async def async_generator():
-            async for page in self.pages:
-                for response in page.services:
-                    yield response
-
-        return async_generator()
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/README.rst
deleted file mode 100644
index ac1c48dcd4e6..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/README.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-
-transport inheritance structure
-_______________________________
-
-`ServicesTransport` is the ABC for all transports.
-- public child `ServicesGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
-- public child `ServicesGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
-- private child `_BaseServicesRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
-- public child `ServicesRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/__init__.py
deleted file mode 100644
index 1a162d4b23e2..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-from typing import Dict, Type
-
-from .base import ServicesTransport
-from .grpc import ServicesGrpcTransport
-from .grpc_asyncio import ServicesGrpcAsyncIOTransport
-from .rest import ServicesRestTransport
-from .rest import ServicesRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[ServicesTransport]]
-_transport_registry['grpc'] = ServicesGrpcTransport
-_transport_registry['grpc_asyncio'] = ServicesGrpcAsyncIOTransport
-_transport_registry['rest'] = ServicesRestTransport
-
-__all__ = (
-    'ServicesTransport',
-    'ServicesGrpcTransport',
-    'ServicesGrpcAsyncIOTransport',
-    'ServicesRestTransport',
-    'ServicesRestInterceptor',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/base.py
deleted file mode 100644
index 20e01d8bdcd0..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/base.py
+++ /dev/null
@@ -1,337 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 abc
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-import google.auth  # type: ignore
-import google.api_core
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import operations_v1
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.oauth2 import service_account # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import service
-from google.cloud.run_v2.types import service as gcr_service
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class ServicesTransport(abc.ABC):
-    """Abstract transport class for Services."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'run.googleapis.com'
-    def __init__(
-            self, *,
-            host: str = DEFAULT_HOST,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            **kwargs,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A list of scopes.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-        """
-
-        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
-
-        # Save the scopes.
-        self._scopes = scopes
-        if not hasattr(self, "_ignore_credentials"):
-            self._ignore_credentials: bool = False
-
-        # If no credentials are provided, then determine the appropriate
-        # defaults.
-        if credentials and credentials_file:
-            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
-
-        if credentials_file is not None:
-            credentials, _ = google.auth.load_credentials_from_file(
-                                credentials_file,
-                                **scopes_kwargs,
-                                quota_project_id=quota_project_id
-                            )
-        elif credentials is None and not self._ignore_credentials:
-            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
-            # Don't apply audience if the credentials file passed from user.
-            if hasattr(credentials, "with_gdch_audience"):
-                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
-
-        # If the credentials are service account credentials, then always try to use self signed JWT.
-        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
-            credentials = credentials.with_always_use_jwt_access(True)
-
-        # Save the credentials.
-        self._credentials = credentials
-
-        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
-        if ':' not in host:
-            host += ':443'
-        self._host = host
-
-    @property
-    def host(self):
-        return self._host
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.create_service: gapic_v1.method.wrap_method(
-                self.create_service,
-                default_timeout=15.0,
-                client_info=client_info,
-            ),
-            self.get_service: gapic_v1.method.wrap_method(
-                self.get_service,
-                default_retry=retries.Retry(
-                    initial=1.0,
-                    maximum=10.0,
-                    multiplier=1.3,
-                    predicate=retries.if_exception_type(
-                        core_exceptions.ServiceUnavailable,
-                    ),
-                    deadline=10.0,
-                ),
-                default_timeout=10.0,
-                client_info=client_info,
-            ),
-            self.list_services: gapic_v1.method.wrap_method(
-                self.list_services,
-                default_retry=retries.Retry(
-                    initial=1.0,
-                    maximum=10.0,
-                    multiplier=1.3,
-                    predicate=retries.if_exception_type(
-                        core_exceptions.ServiceUnavailable,
-                    ),
-                    deadline=10.0,
-                ),
-                default_timeout=10.0,
-                client_info=client_info,
-            ),
-            self.update_service: gapic_v1.method.wrap_method(
-                self.update_service,
-                default_timeout=15.0,
-                client_info=client_info,
-            ),
-            self.delete_service: gapic_v1.method.wrap_method(
-                self.delete_service,
-                default_timeout=10.0,
-                client_info=client_info,
-            ),
-            self.get_iam_policy: gapic_v1.method.wrap_method(
-                self.get_iam_policy,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.set_iam_policy: gapic_v1.method.wrap_method(
-                self.set_iam_policy,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.test_iam_permissions: gapic_v1.method.wrap_method(
-                self.test_iam_permissions,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: gapic_v1.method.wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: gapic_v1.method.wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: gapic_v1.method.wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: gapic_v1.method.wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-         }
-
-    def close(self):
-        """Closes resources associated with the transport.
-
-       .. warning::
-            Only call this method if the transport is NOT shared
-            with other clients - this may cause errors in other clients!
-        """
-        raise NotImplementedError()
-
-    @property
-    def operations_client(self):
-        """Return the client designed to process long-running operations."""
-        raise NotImplementedError()
-
-    @property
-    def create_service(self) -> Callable[
-            [gcr_service.CreateServiceRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def get_service(self) -> Callable[
-            [service.GetServiceRequest],
-            Union[
-                service.Service,
-                Awaitable[service.Service]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_services(self) -> Callable[
-            [service.ListServicesRequest],
-            Union[
-                service.ListServicesResponse,
-                Awaitable[service.ListServicesResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def update_service(self) -> Callable[
-            [gcr_service.UpdateServiceRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def delete_service(self) -> Callable[
-            [service.DeleteServiceRequest],
-            Union[
-                operations_pb2.Operation,
-                Awaitable[operations_pb2.Operation]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def get_iam_policy(self) -> Callable[
-            [iam_policy_pb2.GetIamPolicyRequest],
-            Union[
-                policy_pb2.Policy,
-                Awaitable[policy_pb2.Policy]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def set_iam_policy(self) -> Callable[
-            [iam_policy_pb2.SetIamPolicyRequest],
-            Union[
-                policy_pb2.Policy,
-                Awaitable[policy_pb2.Policy]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def test_iam_permissions(self) -> Callable[
-            [iam_policy_pb2.TestIamPermissionsRequest],
-            Union[
-                iam_policy_pb2.TestIamPermissionsResponse,
-                Awaitable[iam_policy_pb2.TestIamPermissionsResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[
-        [operations_pb2.ListOperationsRequest],
-        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.GetOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.DeleteOperationRequest],
-        None,
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.WaitOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'ServicesTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc.py
deleted file mode 100644
index 4530f0891d03..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc.py
+++ /dev/null
@@ -1,557 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 warnings
-from typing import Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import grpc_helpers
-from google.api_core import operations_v1
-from google.api_core import gapic_v1
-import google.auth                         # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import service
-from google.cloud.run_v2.types import service as gcr_service
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from .base import ServicesTransport, DEFAULT_CLIENT_INFO
-
-
-class ServicesGrpcTransport(ServicesTransport):
-    """gRPC backend transport for Services.
-
-    Cloud Run Service Control Plane API
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-    _stubs: Dict[str, Callable]
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[grpc.Channel, Callable[..., 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,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if a ``channel`` instance is provided.
-            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-        self._operations_client: Optional[operations_v1.OperationsClient] = None
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, grpc.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._prep_wrapped_messages(client_info)
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> grpc.Channel:
-        """Create and return a gRPC channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            grpc.Channel: A gRPC channel object.
-
-        Raises:
-            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-
-        return grpc_helpers.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    @property
-    def grpc_channel(self) -> grpc.Channel:
-        """Return the channel designed to connect to this service.
-        """
-        return self._grpc_channel
-
-    @property
-    def operations_client(self) -> operations_v1.OperationsClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Quick check: Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            self._operations_client = operations_v1.OperationsClient(
-                self.grpc_channel
-            )
-
-        # Return the client from cache.
-        return self._operations_client
-
-    @property
-    def create_service(self) -> Callable[
-            [gcr_service.CreateServiceRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the create service method over gRPC.
-
-        Creates a new Service in a given project and
-        location.
-
-        Returns:
-            Callable[[~.CreateServiceRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'create_service' not in self._stubs:
-            self._stubs['create_service'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/CreateService',
-                request_serializer=gcr_service.CreateServiceRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['create_service']
-
-    @property
-    def get_service(self) -> Callable[
-            [service.GetServiceRequest],
-            service.Service]:
-        r"""Return a callable for the get service method over gRPC.
-
-        Gets information about a Service.
-
-        Returns:
-            Callable[[~.GetServiceRequest],
-                    ~.Service]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_service' not in self._stubs:
-            self._stubs['get_service'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/GetService',
-                request_serializer=service.GetServiceRequest.serialize,
-                response_deserializer=service.Service.deserialize,
-            )
-        return self._stubs['get_service']
-
-    @property
-    def list_services(self) -> Callable[
-            [service.ListServicesRequest],
-            service.ListServicesResponse]:
-        r"""Return a callable for the list services method over gRPC.
-
-        Lists Services. Results are sorted by creation time,
-        descending.
-
-        Returns:
-            Callable[[~.ListServicesRequest],
-                    ~.ListServicesResponse]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_services' not in self._stubs:
-            self._stubs['list_services'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/ListServices',
-                request_serializer=service.ListServicesRequest.serialize,
-                response_deserializer=service.ListServicesResponse.deserialize,
-            )
-        return self._stubs['list_services']
-
-    @property
-    def update_service(self) -> Callable[
-            [gcr_service.UpdateServiceRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the update service method over gRPC.
-
-        Updates a Service.
-
-        Returns:
-            Callable[[~.UpdateServiceRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'update_service' not in self._stubs:
-            self._stubs['update_service'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/UpdateService',
-                request_serializer=gcr_service.UpdateServiceRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['update_service']
-
-    @property
-    def delete_service(self) -> Callable[
-            [service.DeleteServiceRequest],
-            operations_pb2.Operation]:
-        r"""Return a callable for the delete service method over gRPC.
-
-        Deletes a Service.
-        This will cause the Service to stop serving traffic and
-        will delete all revisions.
-
-        Returns:
-            Callable[[~.DeleteServiceRequest],
-                    ~.Operation]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'delete_service' not in self._stubs:
-            self._stubs['delete_service'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/DeleteService',
-                request_serializer=service.DeleteServiceRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['delete_service']
-
-    @property
-    def get_iam_policy(self) -> Callable[
-            [iam_policy_pb2.GetIamPolicyRequest],
-            policy_pb2.Policy]:
-        r"""Return a callable for the get iam policy method over gRPC.
-
-        Gets the IAM Access Control policy currently in
-        effect for the given Cloud Run Service. This result does
-        not include any inherited policies.
-
-        Returns:
-            Callable[[~.GetIamPolicyRequest],
-                    ~.Policy]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_iam_policy' not in self._stubs:
-            self._stubs['get_iam_policy'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/GetIamPolicy',
-                request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString,
-                response_deserializer=policy_pb2.Policy.FromString,
-            )
-        return self._stubs['get_iam_policy']
-
-    @property
-    def set_iam_policy(self) -> Callable[
-            [iam_policy_pb2.SetIamPolicyRequest],
-            policy_pb2.Policy]:
-        r"""Return a callable for the set iam policy method over gRPC.
-
-        Sets the IAM Access control policy for the specified
-        Service. Overwrites any existing policy.
-
-        Returns:
-            Callable[[~.SetIamPolicyRequest],
-                    ~.Policy]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'set_iam_policy' not in self._stubs:
-            self._stubs['set_iam_policy'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/SetIamPolicy',
-                request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString,
-                response_deserializer=policy_pb2.Policy.FromString,
-            )
-        return self._stubs['set_iam_policy']
-
-    @property
-    def test_iam_permissions(self) -> Callable[
-            [iam_policy_pb2.TestIamPermissionsRequest],
-            iam_policy_pb2.TestIamPermissionsResponse]:
-        r"""Return a callable for the test iam permissions method over gRPC.
-
-        Returns permissions that a caller has on the
-        specified Project.
-        There are no permissions required for making this API
-        call.
-
-        Returns:
-            Callable[[~.TestIamPermissionsRequest],
-                    ~.TestIamPermissionsResponse]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'test_iam_permissions' not in self._stubs:
-            self._stubs['test_iam_permissions'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/TestIamPermissions',
-                request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString,
-                response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString,
-            )
-        return self._stubs['test_iam_permissions']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'ServicesGrpcTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc_asyncio.py
deleted file mode 100644
index 3ff74e2c64b6..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,651 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 inspect
-import warnings
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry_async as retries
-from google.api_core import operations_v1
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc                        # type: ignore
-from grpc.experimental import aio  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import service
-from google.cloud.run_v2.types import service as gcr_service
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from .base import ServicesTransport, DEFAULT_CLIENT_INFO
-from .grpc import ServicesGrpcTransport
-
-
-class ServicesGrpcAsyncIOTransport(ServicesTransport):
-    """gRPC AsyncIO backend transport for Services.
-
-    Cloud Run Service Control Plane API
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-
-    _grpc_channel: aio.Channel
-    _stubs: Dict[str, Callable] = {}
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> aio.Channel:
-        """Create and return a gRPC AsyncIO channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            aio.Channel: A gRPC AsyncIO channel object.
-        """
-
-        return grpc_helpers_async.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[aio.Channel, Callable[..., 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,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, aio.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def grpc_channel(self) -> aio.Channel:
-        """Create the channel designed to connect to this service.
-
-        This property caches on the instance; repeated calls return
-        the same channel.
-        """
-        # Return the channel from cache.
-        return self._grpc_channel
-
-    @property
-    def operations_client(self) -> operations_v1.OperationsAsyncClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Quick check: Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            self._operations_client = operations_v1.OperationsAsyncClient(
-                self.grpc_channel
-            )
-
-        # Return the client from cache.
-        return self._operations_client
-
-    @property
-    def create_service(self) -> Callable[
-            [gcr_service.CreateServiceRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the create service method over gRPC.
-
-        Creates a new Service in a given project and
-        location.
-
-        Returns:
-            Callable[[~.CreateServiceRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'create_service' not in self._stubs:
-            self._stubs['create_service'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/CreateService',
-                request_serializer=gcr_service.CreateServiceRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['create_service']
-
-    @property
-    def get_service(self) -> Callable[
-            [service.GetServiceRequest],
-            Awaitable[service.Service]]:
-        r"""Return a callable for the get service method over gRPC.
-
-        Gets information about a Service.
-
-        Returns:
-            Callable[[~.GetServiceRequest],
-                    Awaitable[~.Service]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_service' not in self._stubs:
-            self._stubs['get_service'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/GetService',
-                request_serializer=service.GetServiceRequest.serialize,
-                response_deserializer=service.Service.deserialize,
-            )
-        return self._stubs['get_service']
-
-    @property
-    def list_services(self) -> Callable[
-            [service.ListServicesRequest],
-            Awaitable[service.ListServicesResponse]]:
-        r"""Return a callable for the list services method over gRPC.
-
-        Lists Services. Results are sorted by creation time,
-        descending.
-
-        Returns:
-            Callable[[~.ListServicesRequest],
-                    Awaitable[~.ListServicesResponse]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_services' not in self._stubs:
-            self._stubs['list_services'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/ListServices',
-                request_serializer=service.ListServicesRequest.serialize,
-                response_deserializer=service.ListServicesResponse.deserialize,
-            )
-        return self._stubs['list_services']
-
-    @property
-    def update_service(self) -> Callable[
-            [gcr_service.UpdateServiceRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the update service method over gRPC.
-
-        Updates a Service.
-
-        Returns:
-            Callable[[~.UpdateServiceRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'update_service' not in self._stubs:
-            self._stubs['update_service'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/UpdateService',
-                request_serializer=gcr_service.UpdateServiceRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['update_service']
-
-    @property
-    def delete_service(self) -> Callable[
-            [service.DeleteServiceRequest],
-            Awaitable[operations_pb2.Operation]]:
-        r"""Return a callable for the delete service method over gRPC.
-
-        Deletes a Service.
-        This will cause the Service to stop serving traffic and
-        will delete all revisions.
-
-        Returns:
-            Callable[[~.DeleteServiceRequest],
-                    Awaitable[~.Operation]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'delete_service' not in self._stubs:
-            self._stubs['delete_service'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/DeleteService',
-                request_serializer=service.DeleteServiceRequest.serialize,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs['delete_service']
-
-    @property
-    def get_iam_policy(self) -> Callable[
-            [iam_policy_pb2.GetIamPolicyRequest],
-            Awaitable[policy_pb2.Policy]]:
-        r"""Return a callable for the get iam policy method over gRPC.
-
-        Gets the IAM Access Control policy currently in
-        effect for the given Cloud Run Service. This result does
-        not include any inherited policies.
-
-        Returns:
-            Callable[[~.GetIamPolicyRequest],
-                    Awaitable[~.Policy]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_iam_policy' not in self._stubs:
-            self._stubs['get_iam_policy'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/GetIamPolicy',
-                request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString,
-                response_deserializer=policy_pb2.Policy.FromString,
-            )
-        return self._stubs['get_iam_policy']
-
-    @property
-    def set_iam_policy(self) -> Callable[
-            [iam_policy_pb2.SetIamPolicyRequest],
-            Awaitable[policy_pb2.Policy]]:
-        r"""Return a callable for the set iam policy method over gRPC.
-
-        Sets the IAM Access control policy for the specified
-        Service. Overwrites any existing policy.
-
-        Returns:
-            Callable[[~.SetIamPolicyRequest],
-                    Awaitable[~.Policy]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'set_iam_policy' not in self._stubs:
-            self._stubs['set_iam_policy'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/SetIamPolicy',
-                request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString,
-                response_deserializer=policy_pb2.Policy.FromString,
-            )
-        return self._stubs['set_iam_policy']
-
-    @property
-    def test_iam_permissions(self) -> Callable[
-            [iam_policy_pb2.TestIamPermissionsRequest],
-            Awaitable[iam_policy_pb2.TestIamPermissionsResponse]]:
-        r"""Return a callable for the test iam permissions method over gRPC.
-
-        Returns permissions that a caller has on the
-        specified Project.
-        There are no permissions required for making this API
-        call.
-
-        Returns:
-            Callable[[~.TestIamPermissionsRequest],
-                    Awaitable[~.TestIamPermissionsResponse]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'test_iam_permissions' not in self._stubs:
-            self._stubs['test_iam_permissions'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Services/TestIamPermissions',
-                request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString,
-                response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString,
-            )
-        return self._stubs['test_iam_permissions']
-
-    def _prep_wrapped_messages(self, client_info):
-        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
-        self._wrapped_methods = {
-            self.create_service: self._wrap_method(
-                self.create_service,
-                default_timeout=15.0,
-                client_info=client_info,
-            ),
-            self.get_service: self._wrap_method(
-                self.get_service,
-                default_retry=retries.AsyncRetry(
-                    initial=1.0,
-                    maximum=10.0,
-                    multiplier=1.3,
-                    predicate=retries.if_exception_type(
-                        core_exceptions.ServiceUnavailable,
-                    ),
-                    deadline=10.0,
-                ),
-                default_timeout=10.0,
-                client_info=client_info,
-            ),
-            self.list_services: self._wrap_method(
-                self.list_services,
-                default_retry=retries.AsyncRetry(
-                    initial=1.0,
-                    maximum=10.0,
-                    multiplier=1.3,
-                    predicate=retries.if_exception_type(
-                        core_exceptions.ServiceUnavailable,
-                    ),
-                    deadline=10.0,
-                ),
-                default_timeout=10.0,
-                client_info=client_info,
-            ),
-            self.update_service: self._wrap_method(
-                self.update_service,
-                default_timeout=15.0,
-                client_info=client_info,
-            ),
-            self.delete_service: self._wrap_method(
-                self.delete_service,
-                default_timeout=10.0,
-                client_info=client_info,
-            ),
-            self.get_iam_policy: self._wrap_method(
-                self.get_iam_policy,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.set_iam_policy: self._wrap_method(
-                self.set_iam_policy,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.test_iam_permissions: self._wrap_method(
-                self.test_iam_permissions,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: self._wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: self._wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: self._wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: self._wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-        }
-
-    def _wrap_method(self, func, *args, **kwargs):
-        if self._wrap_with_kind:  # pragma: NO COVER
-            kwargs["kind"] = self.kind
-        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
-
-    def close(self):
-        return self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc_asyncio"
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-
-__all__ = (
-    'ServicesGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest.py
deleted file mode 100644
index 057f1a3869c4..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest.py
+++ /dev/null
@@ -1,1610 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-
-from google.auth.transport.requests import AuthorizedSession  # type: ignore
-import json  # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry as retries
-from google.api_core import rest_helpers
-from google.api_core import rest_streaming
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.api_core import operations_v1
-from google.cloud.location import locations_pb2 # type: ignore
-
-from requests import __version__ as requests_version
-import dataclasses
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-
-from google.cloud.run_v2.types import service
-from google.cloud.run_v2.types import service as gcr_service
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2  # type: ignore
-
-
-from .rest_base import _BaseServicesRestTransport
-from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=f"requests@{requests_version}",
-)
-
-
-class ServicesRestInterceptor:
-    """Interceptor for Services.
-
-    Interceptors are used to manipulate requests, request metadata, and responses
-    in arbitrary ways.
-    Example use cases include:
-    * Logging
-    * Verifying requests according to service or custom semantics
-    * Stripping extraneous information from responses
-
-    These use cases and more can be enabled by injecting an
-    instance of a custom subclass when constructing the ServicesRestTransport.
-
-    .. code-block:: python
-        class MyCustomServicesInterceptor(ServicesRestInterceptor):
-            def pre_create_service(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_create_service(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_delete_service(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_delete_service(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_get_iam_policy(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_get_iam_policy(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_get_service(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_get_service(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_list_services(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_list_services(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_set_iam_policy(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_set_iam_policy(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_test_iam_permissions(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_test_iam_permissions(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_update_service(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_update_service(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = ServicesRestTransport(interceptor=MyCustomServicesInterceptor())
-        client = ServicesClient(transport=transport)
-
-
-    """
-    def pre_create_service(self, request: gcr_service.CreateServiceRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[gcr_service.CreateServiceRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for create_service
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_create_service(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for create_service
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_service(self, request: service.DeleteServiceRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[service.DeleteServiceRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_service
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_delete_service(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for delete_service
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_iam_policy(self, request: iam_policy_pb2.GetIamPolicyRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.GetIamPolicyRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_iam_policy
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_get_iam_policy(self, response: policy_pb2.Policy) -> policy_pb2.Policy:
-        """Post-rpc interceptor for get_iam_policy
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_service(self, request: service.GetServiceRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[service.GetServiceRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_service
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_get_service(self, response: service.Service) -> service.Service:
-        """Post-rpc interceptor for get_service
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_services(self, request: service.ListServicesRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[service.ListServicesRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_services
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_list_services(self, response: service.ListServicesResponse) -> service.ListServicesResponse:
-        """Post-rpc interceptor for list_services
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_set_iam_policy(self, request: iam_policy_pb2.SetIamPolicyRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.SetIamPolicyRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for set_iam_policy
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_set_iam_policy(self, response: policy_pb2.Policy) -> policy_pb2.Policy:
-        """Post-rpc interceptor for set_iam_policy
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_test_iam_permissions(self, request: iam_policy_pb2.TestIamPermissionsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[iam_policy_pb2.TestIamPermissionsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for test_iam_permissions
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_test_iam_permissions(self, response: iam_policy_pb2.TestIamPermissionsResponse) -> iam_policy_pb2.TestIamPermissionsResponse:
-        """Post-rpc interceptor for test_iam_permissions
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_update_service(self, request: gcr_service.UpdateServiceRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[gcr_service.UpdateServiceRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for update_service
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_update_service(self, response: operations_pb2.Operation) -> operations_pb2.Operation:
-        """Post-rpc interceptor for update_service
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_operation(
-        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_delete_operation(
-        self, response: None
-    ) -> None:
-        """Post-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_operation(
-        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_get_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_operations(
-        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_list_operations(
-        self, response: operations_pb2.ListOperationsResponse
-    ) -> operations_pb2.ListOperationsResponse:
-        """Post-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_wait_operation(
-        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Services server.
-        """
-        return request, metadata
-
-    def post_wait_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Services server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class ServicesRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: ServicesRestInterceptor
-
-
-class ServicesRestTransport(_BaseServicesRestTransport):
-    """REST backend synchronous transport for Services.
-
-    Cloud Run Service Control Plane API
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            url_scheme: str = 'https',
-            interceptor: Optional[ServicesRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
-                certificate to configure mutual TLS HTTP channel. It is ignored
-                if ``channel`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
-        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
-        # credentials object
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            url_scheme=url_scheme,
-            api_audience=api_audience
-        )
-        self._session = AuthorizedSession(
-            self._credentials, default_host=self.DEFAULT_HOST)
-        self._operations_client: Optional[operations_v1.AbstractOperationsClient] = None
-        if client_cert_source_for_mtls:
-            self._session.configure_mtls_channel(client_cert_source_for_mtls)
-        self._interceptor = interceptor or ServicesRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def operations_client(self) -> operations_v1.AbstractOperationsClient:
-        """Create the client designed to process long-running operations.
-
-        This property caches on the instance; repeated calls return the same
-        client.
-        """
-        # Only create a new client if we do not already have one.
-        if self._operations_client is None:
-            http_options: Dict[str, List[Dict[str, str]]] = {
-                'google.longrunning.Operations.DeleteOperation': [
-                    {
-                        'method': 'delete',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-                    },
-                ],
-                'google.longrunning.Operations.GetOperation': [
-                    {
-                        'method': 'get',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-                    },
-                ],
-                'google.longrunning.Operations.ListOperations': [
-                    {
-                        'method': 'get',
-                        'uri': '/v2/{name=projects/*/locations/*}/operations',
-                    },
-                ],
-                'google.longrunning.Operations.WaitOperation': [
-                    {
-                        'method': 'post',
-                        'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                        'body': '*',
-                    },
-                ],
-            }
-
-            rest_transport = operations_v1.OperationsRestTransport(
-                    host=self._host,
-                    # use the credentials which are saved
-                    credentials=self._credentials,
-                    scopes=self._scopes,
-                    http_options=http_options,
-                    path_prefix="v2")
-
-            self._operations_client = operations_v1.AbstractOperationsClient(transport=rest_transport)
-
-        # Return the client from cache.
-        return self._operations_client
-
-    class _CreateService(_BaseServicesRestTransport._BaseCreateService, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.CreateService")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: gcr_service.CreateServiceRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the create service method over HTTP.
-
-            Args:
-                request (~.gcr_service.CreateServiceRequest):
-                    The request object. Request message for creating a
-                Service.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseServicesRestTransport._BaseCreateService._get_http_options()
-            request, metadata = self._interceptor.pre_create_service(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseCreateService._get_transcoded_request(http_options, request)
-
-            body = _BaseServicesRestTransport._BaseCreateService._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseCreateService._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._CreateService._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_create_service(resp)
-            return resp
-
-    class _DeleteService(_BaseServicesRestTransport._BaseDeleteService, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.DeleteService")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: service.DeleteServiceRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the delete service method over HTTP.
-
-            Args:
-                request (~.service.DeleteServiceRequest):
-                    The request object. Request message to delete a Service
-                by its full name.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseServicesRestTransport._BaseDeleteService._get_http_options()
-            request, metadata = self._interceptor.pre_delete_service(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseDeleteService._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseDeleteService._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._DeleteService._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_delete_service(resp)
-            return resp
-
-    class _GetIamPolicy(_BaseServicesRestTransport._BaseGetIamPolicy, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.GetIamPolicy")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: iam_policy_pb2.GetIamPolicyRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> policy_pb2.Policy:
-            r"""Call the get iam policy method over HTTP.
-
-            Args:
-                request (~.iam_policy_pb2.GetIamPolicyRequest):
-                    The request object. Request message for ``GetIamPolicy`` method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.policy_pb2.Policy:
-                    An Identity and Access Management (IAM) policy, which
-                specifies access controls for Google Cloud resources.
-
-                A ``Policy`` is a collection of ``bindings``. A
-                ``binding`` binds one or more ``members``, or
-                principals, to a single ``role``. Principals can be user
-                accounts, service accounts, Google groups, and domains
-                (such as G Suite). A ``role`` is a named list of
-                permissions; each ``role`` can be an IAM predefined role
-                or a user-created custom role.
-
-                For some types of Google Cloud resources, a ``binding``
-                can also specify a ``condition``, which is a logical
-                expression that allows access to a resource only if the
-                expression evaluates to ``true``. A condition can add
-                constraints based on attributes of the request, the
-                resource, or both. To learn which resources support
-                conditions in their IAM policies, see the `IAM
-                documentation <https://cloud.google.com/iam/help/conditions/resource-policies>`__.
-
-                **JSON example:**
-
-                ::
-
-                       {
-                         "bindings": [
-                           {
-                             "role": "roles/resourcemanager.organizationAdmin",
-                             "members": [
-                               "user:mike@example.com",
-                               "group:admins@example.com",
-                               "domain:google.com",
-                               "serviceAccount:my-project-id@appspot.gserviceaccount.com"
-                             ]
-                           },
-                           {
-                             "role": "roles/resourcemanager.organizationViewer",
-                             "members": [
-                               "user:eve@example.com"
-                             ],
-                             "condition": {
-                               "title": "expirable access",
-                               "description": "Does not grant access after Sep 2020",
-                               "expression": "request.time <
-                               timestamp('2020-10-01T00:00:00.000Z')",
-                             }
-                           }
-                         ],
-                         "etag": "BwWWja0YfJA=",
-                         "version": 3
-                       }
-
-                **YAML example:**
-
-                ::
-
-                       bindings:
-                       - members:
-                         - user:mike@example.com
-                         - group:admins@example.com
-                         - domain:google.com
-                         - serviceAccount:my-project-id@appspot.gserviceaccount.com
-                         role: roles/resourcemanager.organizationAdmin
-                       - members:
-                         - user:eve@example.com
-                         role: roles/resourcemanager.organizationViewer
-                         condition:
-                           title: expirable access
-                           description: Does not grant access after Sep 2020
-                           expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
-                       etag: BwWWja0YfJA=
-                       version: 3
-
-                For a description of IAM and its features, see the `IAM
-                documentation <https://cloud.google.com/iam/docs/>`__.
-
-            """
-
-            http_options = _BaseServicesRestTransport._BaseGetIamPolicy._get_http_options()
-            request, metadata = self._interceptor.pre_get_iam_policy(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseGetIamPolicy._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseGetIamPolicy._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._GetIamPolicy._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = policy_pb2.Policy()
-            pb_resp = resp
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_get_iam_policy(resp)
-            return resp
-
-    class _GetService(_BaseServicesRestTransport._BaseGetService, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.GetService")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: service.GetServiceRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> service.Service:
-            r"""Call the get service method over HTTP.
-
-            Args:
-                request (~.service.GetServiceRequest):
-                    The request object. Request message for obtaining a
-                Service by its full name.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.service.Service:
-                    Service acts as a top-level container
-                that manages a set of configurations and
-                revision templates which implement a
-                network service. Service exists to
-                provide a singular abstraction which can
-                be access controlled, reasoned about,
-                and which encapsulates software
-                lifecycle decisions such as rollout
-                policy and team resource ownership.
-
-            """
-
-            http_options = _BaseServicesRestTransport._BaseGetService._get_http_options()
-            request, metadata = self._interceptor.pre_get_service(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseGetService._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseGetService._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._GetService._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = service.Service()
-            pb_resp = service.Service.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_get_service(resp)
-            return resp
-
-    class _ListServices(_BaseServicesRestTransport._BaseListServices, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.ListServices")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: service.ListServicesRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> service.ListServicesResponse:
-            r"""Call the list services method over HTTP.
-
-            Args:
-                request (~.service.ListServicesRequest):
-                    The request object. Request message for retrieving a list
-                of Services.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.service.ListServicesResponse:
-                    Response message containing a list of
-                Services.
-
-            """
-
-            http_options = _BaseServicesRestTransport._BaseListServices._get_http_options()
-            request, metadata = self._interceptor.pre_list_services(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseListServices._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseListServices._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._ListServices._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = service.ListServicesResponse()
-            pb_resp = service.ListServicesResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_list_services(resp)
-            return resp
-
-    class _SetIamPolicy(_BaseServicesRestTransport._BaseSetIamPolicy, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.SetIamPolicy")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: iam_policy_pb2.SetIamPolicyRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> policy_pb2.Policy:
-            r"""Call the set iam policy method over HTTP.
-
-            Args:
-                request (~.iam_policy_pb2.SetIamPolicyRequest):
-                    The request object. Request message for ``SetIamPolicy`` method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.policy_pb2.Policy:
-                    An Identity and Access Management (IAM) policy, which
-                specifies access controls for Google Cloud resources.
-
-                A ``Policy`` is a collection of ``bindings``. A
-                ``binding`` binds one or more ``members``, or
-                principals, to a single ``role``. Principals can be user
-                accounts, service accounts, Google groups, and domains
-                (such as G Suite). A ``role`` is a named list of
-                permissions; each ``role`` can be an IAM predefined role
-                or a user-created custom role.
-
-                For some types of Google Cloud resources, a ``binding``
-                can also specify a ``condition``, which is a logical
-                expression that allows access to a resource only if the
-                expression evaluates to ``true``. A condition can add
-                constraints based on attributes of the request, the
-                resource, or both. To learn which resources support
-                conditions in their IAM policies, see the `IAM
-                documentation <https://cloud.google.com/iam/help/conditions/resource-policies>`__.
-
-                **JSON example:**
-
-                ::
-
-                       {
-                         "bindings": [
-                           {
-                             "role": "roles/resourcemanager.organizationAdmin",
-                             "members": [
-                               "user:mike@example.com",
-                               "group:admins@example.com",
-                               "domain:google.com",
-                               "serviceAccount:my-project-id@appspot.gserviceaccount.com"
-                             ]
-                           },
-                           {
-                             "role": "roles/resourcemanager.organizationViewer",
-                             "members": [
-                               "user:eve@example.com"
-                             ],
-                             "condition": {
-                               "title": "expirable access",
-                               "description": "Does not grant access after Sep 2020",
-                               "expression": "request.time <
-                               timestamp('2020-10-01T00:00:00.000Z')",
-                             }
-                           }
-                         ],
-                         "etag": "BwWWja0YfJA=",
-                         "version": 3
-                       }
-
-                **YAML example:**
-
-                ::
-
-                       bindings:
-                       - members:
-                         - user:mike@example.com
-                         - group:admins@example.com
-                         - domain:google.com
-                         - serviceAccount:my-project-id@appspot.gserviceaccount.com
-                         role: roles/resourcemanager.organizationAdmin
-                       - members:
-                         - user:eve@example.com
-                         role: roles/resourcemanager.organizationViewer
-                         condition:
-                           title: expirable access
-                           description: Does not grant access after Sep 2020
-                           expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
-                       etag: BwWWja0YfJA=
-                       version: 3
-
-                For a description of IAM and its features, see the `IAM
-                documentation <https://cloud.google.com/iam/docs/>`__.
-
-            """
-
-            http_options = _BaseServicesRestTransport._BaseSetIamPolicy._get_http_options()
-            request, metadata = self._interceptor.pre_set_iam_policy(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseSetIamPolicy._get_transcoded_request(http_options, request)
-
-            body = _BaseServicesRestTransport._BaseSetIamPolicy._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseSetIamPolicy._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._SetIamPolicy._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = policy_pb2.Policy()
-            pb_resp = resp
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_set_iam_policy(resp)
-            return resp
-
-    class _TestIamPermissions(_BaseServicesRestTransport._BaseTestIamPermissions, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.TestIamPermissions")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: iam_policy_pb2.TestIamPermissionsRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> iam_policy_pb2.TestIamPermissionsResponse:
-            r"""Call the test iam permissions method over HTTP.
-
-            Args:
-                request (~.iam_policy_pb2.TestIamPermissionsRequest):
-                    The request object. Request message for ``TestIamPermissions`` method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.iam_policy_pb2.TestIamPermissionsResponse:
-                    Response message for ``TestIamPermissions`` method.
-            """
-
-            http_options = _BaseServicesRestTransport._BaseTestIamPermissions._get_http_options()
-            request, metadata = self._interceptor.pre_test_iam_permissions(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseTestIamPermissions._get_transcoded_request(http_options, request)
-
-            body = _BaseServicesRestTransport._BaseTestIamPermissions._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseTestIamPermissions._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._TestIamPermissions._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = iam_policy_pb2.TestIamPermissionsResponse()
-            pb_resp = resp
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_test_iam_permissions(resp)
-            return resp
-
-    class _UpdateService(_BaseServicesRestTransport._BaseUpdateService, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.UpdateService")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-                request: gcr_service.UpdateServiceRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> operations_pb2.Operation:
-            r"""Call the update service method over HTTP.
-
-            Args:
-                request (~.gcr_service.UpdateServiceRequest):
-                    The request object. Request message for updating a
-                service.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.operations_pb2.Operation:
-                    This resource represents a
-                long-running operation that is the
-                result of a network API call.
-
-            """
-
-            http_options = _BaseServicesRestTransport._BaseUpdateService._get_http_options()
-            request, metadata = self._interceptor.pre_update_service(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseUpdateService._get_transcoded_request(http_options, request)
-
-            body = _BaseServicesRestTransport._BaseUpdateService._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseUpdateService._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._UpdateService._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = operations_pb2.Operation()
-            json_format.Parse(response.content, resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_update_service(resp)
-            return resp
-
-    @property
-    def create_service(self) -> Callable[
-            [gcr_service.CreateServiceRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._CreateService(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_service(self) -> Callable[
-            [service.DeleteServiceRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._DeleteService(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def get_iam_policy(self) -> Callable[
-            [iam_policy_pb2.GetIamPolicyRequest],
-            policy_pb2.Policy]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._GetIamPolicy(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def get_service(self) -> Callable[
-            [service.GetServiceRequest],
-            service.Service]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._GetService(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def list_services(self) -> Callable[
-            [service.ListServicesRequest],
-            service.ListServicesResponse]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._ListServices(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def set_iam_policy(self) -> Callable[
-            [iam_policy_pb2.SetIamPolicyRequest],
-            policy_pb2.Policy]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._SetIamPolicy(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def test_iam_permissions(self) -> Callable[
-            [iam_policy_pb2.TestIamPermissionsRequest],
-            iam_policy_pb2.TestIamPermissionsResponse]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._TestIamPermissions(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def update_service(self) -> Callable[
-            [gcr_service.UpdateServiceRequest],
-            operations_pb2.Operation]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._UpdateService(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_operation(self):
-        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _DeleteOperation(_BaseServicesRestTransport._BaseDeleteOperation, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.DeleteOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.DeleteOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> None:
-
-            r"""Call the delete operation method over HTTP.
-
-            Args:
-                request (operations_pb2.DeleteOperationRequest):
-                    The request object for DeleteOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-            """
-
-            http_options = _BaseServicesRestTransport._BaseDeleteOperation._get_http_options()
-            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            return self._interceptor.post_delete_operation(None)
-
-    @property
-    def get_operation(self):
-        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _GetOperation(_BaseServicesRestTransport._BaseGetOperation, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.GetOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.GetOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the get operation method over HTTP.
-
-            Args:
-                request (operations_pb2.GetOperationRequest):
-                    The request object for GetOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from GetOperation method.
-            """
-
-            http_options = _BaseServicesRestTransport._BaseGetOperation._get_http_options()
-            request, metadata = self._interceptor.pre_get_operation(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_get_operation(resp)
-            return resp
-
-    @property
-    def list_operations(self):
-        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
-
-    class _ListOperations(_BaseServicesRestTransport._BaseListOperations, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.ListOperations")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.ListOperationsRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.ListOperationsResponse:
-
-            r"""Call the list operations method over HTTP.
-
-            Args:
-                request (operations_pb2.ListOperationsRequest):
-                    The request object for ListOperations method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.ListOperationsResponse: Response from ListOperations method.
-            """
-
-            http_options = _BaseServicesRestTransport._BaseListOperations._get_http_options()
-            request, metadata = self._interceptor.pre_list_operations(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.ListOperationsResponse()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_list_operations(resp)
-            return resp
-
-    @property
-    def wait_operation(self):
-        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _WaitOperation(_BaseServicesRestTransport._BaseWaitOperation, ServicesRestStub):
-        def __hash__(self):
-            return hash("ServicesRestTransport.WaitOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.WaitOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the wait operation method over HTTP.
-
-            Args:
-                request (operations_pb2.WaitOperationRequest):
-                    The request object for WaitOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from WaitOperation method.
-            """
-
-            http_options = _BaseServicesRestTransport._BaseWaitOperation._get_http_options()
-            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
-            transcoded_request = _BaseServicesRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
-
-            body = _BaseServicesRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseServicesRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = ServicesRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_wait_operation(resp)
-            return resp
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'ServicesRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest_base.py
deleted file mode 100644
index 4cfbb2f3fe04..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/services/transports/rest_base.py
+++ /dev/null
@@ -1,537 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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  # type: ignore
-from google.api_core import path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.cloud.location import locations_pb2 # type: ignore
-from .base import ServicesTransport, DEFAULT_CLIENT_INFO
-
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-
-
-from google.cloud.run_v2.types import service
-from google.cloud.run_v2.types import service as gcr_service
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2  # type: ignore
-
-
-class _BaseServicesRestTransport(ServicesTransport):
-    """Base REST backend transport for Services.
-
-    Note: This class is not meant to be used directly. Use its sync and
-    async sub-classes instead.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[Any] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            url_scheme: str = 'https',
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[Any]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
-        if maybe_url_match is None:
-            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
-
-        url_match_items = maybe_url_match.groupdict()
-
-        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
-
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience
-        )
-
-    class _BaseCreateService:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-            "serviceId" : "",        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{parent=projects/*/locations/*}/services',
-                'body': 'service',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = gcr_service.CreateServiceRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseServicesRestTransport._BaseCreateService._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteService:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/services/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = service.DeleteServiceRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseServicesRestTransport._BaseDeleteService._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseGetIamPolicy:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{resource=projects/*/locations/*/services/*}:getIamPolicy',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = request
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseServicesRestTransport._BaseGetIamPolicy._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseGetService:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/services/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = service.GetServiceRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseServicesRestTransport._BaseGetService._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseListServices:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{parent=projects/*/locations/*}/services',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = service.ListServicesRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseServicesRestTransport._BaseListServices._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseSetIamPolicy:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{resource=projects/*/locations/*/services/*}:setIamPolicy',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = request
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseServicesRestTransport._BaseSetIamPolicy._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseTestIamPermissions:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{resource=projects/*/locations/*/services/*}:testIamPermissions',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = request
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseServicesRestTransport._BaseTestIamPermissions._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseUpdateService:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'patch',
-                'uri': '/v2/{service.name=projects/*/locations/*/services/*}',
-                'body': 'service',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = gcr_service.UpdateServiceRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                use_integers_for_enums=True
-            )
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseServicesRestTransport._BaseUpdateService._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseGetOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseListOperations:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*}/operations',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseWaitOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            body = json.dumps(transcoded_request['body'])
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-
-__all__=(
-    '_BaseServicesRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/__init__.py
deleted file mode 100644
index 251dc9796893..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from .client import TasksClient
-from .async_client import TasksAsyncClient
-
-__all__ = (
-    'TasksClient',
-    'TasksAsyncClient',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/async_client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/async_client.py
deleted file mode 100644
index 7c9ecc65acb2..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/async_client.py
+++ /dev/null
@@ -1,692 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core.client_options import ClientOptions
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry_async as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-
-try:
-    OptionalRetry = Union[retries.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.tasks import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import task
-from google.cloud.run_v2.types import vendor_settings
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import TasksTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import TasksGrpcAsyncIOTransport
-from .client import TasksClient
-
-
-class TasksAsyncClient:
-    """Cloud Run Task Control Plane API."""
-
-    _client: TasksClient
-
-    # Copy defaults from the synchronous client for use here.
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = TasksClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = TasksClient.DEFAULT_MTLS_ENDPOINT
-    _DEFAULT_ENDPOINT_TEMPLATE = TasksClient._DEFAULT_ENDPOINT_TEMPLATE
-    _DEFAULT_UNIVERSE = TasksClient._DEFAULT_UNIVERSE
-
-    connector_path = staticmethod(TasksClient.connector_path)
-    parse_connector_path = staticmethod(TasksClient.parse_connector_path)
-    crypto_key_path = staticmethod(TasksClient.crypto_key_path)
-    parse_crypto_key_path = staticmethod(TasksClient.parse_crypto_key_path)
-    execution_path = staticmethod(TasksClient.execution_path)
-    parse_execution_path = staticmethod(TasksClient.parse_execution_path)
-    job_path = staticmethod(TasksClient.job_path)
-    parse_job_path = staticmethod(TasksClient.parse_job_path)
-    secret_path = staticmethod(TasksClient.secret_path)
-    parse_secret_path = staticmethod(TasksClient.parse_secret_path)
-    secret_version_path = staticmethod(TasksClient.secret_version_path)
-    parse_secret_version_path = staticmethod(TasksClient.parse_secret_version_path)
-    task_path = staticmethod(TasksClient.task_path)
-    parse_task_path = staticmethod(TasksClient.parse_task_path)
-    common_billing_account_path = staticmethod(TasksClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(TasksClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(TasksClient.common_folder_path)
-    parse_common_folder_path = staticmethod(TasksClient.parse_common_folder_path)
-    common_organization_path = staticmethod(TasksClient.common_organization_path)
-    parse_common_organization_path = staticmethod(TasksClient.parse_common_organization_path)
-    common_project_path = staticmethod(TasksClient.common_project_path)
-    parse_common_project_path = staticmethod(TasksClient.parse_common_project_path)
-    common_location_path = staticmethod(TasksClient.common_location_path)
-    parse_common_location_path = staticmethod(TasksClient.parse_common_location_path)
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            TasksAsyncClient: The constructed client.
-        """
-        return TasksClient.from_service_account_info.__func__(TasksAsyncClient, info, *args, **kwargs)  # type: ignore
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            TasksAsyncClient: The constructed client.
-        """
-        return TasksClient.from_service_account_file.__func__(TasksAsyncClient, filename, *args, **kwargs)  # type: ignore
-
-    from_service_account_json = from_service_account_file
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None):
-        """Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-        return TasksClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> TasksTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            TasksTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._client._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used
-                by the client instance.
-        """
-        return self._client._universe_domain
-
-    get_transport_class = TasksClient.get_transport_class
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, TasksTransport, Callable[..., TasksTransport]]] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the tasks async client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,TasksTransport,Callable[..., TasksTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport to use.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the TasksTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = TasksClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def get_task(self,
-            request: Optional[Union[task.GetTaskRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> task.Task:
-        r"""Gets information about a Task.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_get_task():
-                # Create a client
-                client = run_v2.TasksAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetTaskRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = await client.get_task(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.GetTaskRequest, dict]]):
-                The request object. Request message for obtaining a Task
-                by its full name.
-            name (:class:`str`):
-                Required. The full name of the Task.
-                Format:
-
-                projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Task:
-                Task represents a single run of a
-                container to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, task.GetTaskRequest):
-            request = task.GetTaskRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if name is not None:
-            request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.get_task]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("name", request.name),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_tasks(self,
-            request: Optional[Union[task.ListTasksRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListTasksAsyncPager:
-        r"""Lists Tasks from an Execution of a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            async def sample_list_tasks():
-                # Create a client
-                client = run_v2.TasksAsyncClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListTasksRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_tasks(request=request)
-
-                # Handle the response
-                async for response in page_result:
-                    print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.run_v2.types.ListTasksRequest, dict]]):
-                The request object. Request message for retrieving a list
-                of Tasks.
-            parent (:class:`str`):
-                Required. The Execution from which
-                the Tasks should be listed. To list all
-                Tasks across Executions of a Job, use
-                "-" instead of Execution name. To list
-                all Tasks across Jobs, use "-" instead
-                of Job name. Format:
-
-                projects/{project}/locations/{location}/jobs/{job}/executions/{execution}
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.tasks.pagers.ListTasksAsyncPager:
-                Response message containing a list of
-                Tasks.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError("If the `request` argument is set, then none of "
-                             "the individual field arguments should be set.")
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, task.ListTasksRequest):
-            request = task.ListTasksRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if parent is not None:
-            request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._client._transport._wrapped_methods[self._client._transport.list_tasks]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("parent", request.parent),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__aiter__` convenience method.
-        response = pagers.ListTasksAsyncPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        await rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    async def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry_async.AsyncRetry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self.transport._wrapped_methods[self._client._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._client._validate_universe_domain()
-
-        # Send the request.
-        response = await rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "TasksAsyncClient":
-        return self
-
-    async def __aexit__(self, exc_type, exc, tb):
-        await self.transport.close()
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "TasksAsyncClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/client.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/client.py
deleted file mode 100644
index 93c1942cdcfd..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/client.py
+++ /dev/null
@@ -1,1074 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-import os
-import re
-from typing import Dict, Callable, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-import warnings
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-from google.api_core import client_options as client_options_lib
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials             # type: ignore
-from google.auth.transport import mtls                            # type: ignore
-from google.auth.transport.grpc import SslCredentials             # type: ignore
-from google.auth.exceptions import MutualTLSChannelError          # type: ignore
-from google.oauth2 import service_account                         # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.services.tasks import pagers
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import task
-from google.cloud.run_v2.types import vendor_settings
-from google.longrunning import operations_pb2 # type: ignore
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from .transports.base import TasksTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import TasksGrpcTransport
-from .transports.grpc_asyncio import TasksGrpcAsyncIOTransport
-from .transports.rest import TasksRestTransport
-
-
-class TasksClientMeta(type):
-    """Metaclass for the Tasks client.
-
-    This provides class-level methods for building and retrieving
-    support objects (e.g. transport) without polluting the client instance
-    objects.
-    """
-    _transport_registry = OrderedDict()  # type: Dict[str, Type[TasksTransport]]
-    _transport_registry["grpc"] = TasksGrpcTransport
-    _transport_registry["grpc_asyncio"] = TasksGrpcAsyncIOTransport
-    _transport_registry["rest"] = TasksRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[TasksTransport]:
-        """Returns an appropriate transport class.
-
-        Args:
-            label: The name of the desired transport. If none is
-                provided, then the first transport in the registry is used.
-
-        Returns:
-            The transport class to use.
-        """
-        # If a specific transport is requested, return that one.
-        if label:
-            return cls._transport_registry[label]
-
-        # No transport is requested; return the default (that is, the first one
-        # in the dictionary).
-        return next(iter(cls._transport_registry.values()))
-
-
-class TasksClient(metaclass=TasksClientMeta):
-    """Cloud Run Task Control Plane API."""
-
-    @staticmethod
-    def _get_default_mtls_endpoint(api_endpoint):
-        """Converts api endpoint to mTLS endpoint.
-
-        Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
-        "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively.
-        Args:
-            api_endpoint (Optional[str]): the api endpoint to convert.
-        Returns:
-            str: converted mTLS api endpoint.
-        """
-        if not api_endpoint:
-            return api_endpoint
-
-        mtls_endpoint_re = re.compile(
-            r"(?P<name>[^.]+)(?P<mtls>\.mtls)?(?P<sandbox>\.sandbox)?(?P<googledomain>\.googleapis\.com)?"
-        )
-
-        m = mtls_endpoint_re.match(api_endpoint)
-        name, mtls, sandbox, googledomain = m.groups()
-        if mtls or not googledomain:
-            return api_endpoint
-
-        if sandbox:
-            return api_endpoint.replace(
-                "sandbox.googleapis.com", "mtls.sandbox.googleapis.com"
-            )
-
-        return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com")
-
-    # Note: DEFAULT_ENDPOINT is deprecated. Use _DEFAULT_ENDPOINT_TEMPLATE instead.
-    DEFAULT_ENDPOINT = "run.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    _DEFAULT_ENDPOINT_TEMPLATE = "run.{UNIVERSE_DOMAIN}"
-    _DEFAULT_UNIVERSE = "googleapis.com"
-
-    @classmethod
-    def from_service_account_info(cls, info: dict, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            info.
-
-        Args:
-            info (dict): The service account private key info.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            TasksClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_info(info)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    @classmethod
-    def from_service_account_file(cls, filename: str, *args, **kwargs):
-        """Creates an instance of this client using the provided credentials
-            file.
-
-        Args:
-            filename (str): The path to the service account private key json
-                file.
-            args: Additional arguments to pass to the constructor.
-            kwargs: Additional arguments to pass to the constructor.
-
-        Returns:
-            TasksClient: The constructed client.
-        """
-        credentials = service_account.Credentials.from_service_account_file(
-            filename)
-        kwargs["credentials"] = credentials
-        return cls(*args, **kwargs)
-
-    from_service_account_json = from_service_account_file
-
-    @property
-    def transport(self) -> TasksTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            TasksTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @staticmethod
-    def connector_path(project: str,location: str,connector: str,) -> str:
-        """Returns a fully-qualified connector string."""
-        return "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-
-    @staticmethod
-    def parse_connector_path(path: str) -> Dict[str,str]:
-        """Parses a connector path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/connectors/(?P<connector>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def crypto_key_path(project: str,location: str,key_ring: str,crypto_key: str,) -> str:
-        """Returns a fully-qualified crypto_key string."""
-        return "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-
-    @staticmethod
-    def parse_crypto_key_path(path: str) -> Dict[str,str]:
-        """Parses a crypto_key path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/keyRings/(?P<key_ring>.+?)/cryptoKeys/(?P<crypto_key>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def execution_path(project: str,location: str,job: str,execution: str,) -> str:
-        """Returns a fully-qualified execution string."""
-        return "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
-
-    @staticmethod
-    def parse_execution_path(path: str) -> Dict[str,str]:
-        """Parses a execution path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)/executions/(?P<execution>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def job_path(project: str,location: str,job: str,) -> str:
-        """Returns a fully-qualified job string."""
-        return "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
-
-    @staticmethod
-    def parse_job_path(path: str) -> Dict[str,str]:
-        """Parses a job path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_path(project: str,secret: str,) -> str:
-        """Returns a fully-qualified secret string."""
-        return "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-
-    @staticmethod
-    def parse_secret_path(path: str) -> Dict[str,str]:
-        """Parses a secret path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def secret_version_path(project: str,secret: str,version: str,) -> str:
-        """Returns a fully-qualified secret_version string."""
-        return "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-
-    @staticmethod
-    def parse_secret_version_path(path: str) -> Dict[str,str]:
-        """Parses a secret_version path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/secrets/(?P<secret>.+?)/versions/(?P<version>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def task_path(project: str,location: str,job: str,execution: str,task: str,) -> str:
-        """Returns a fully-qualified task string."""
-        return "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}".format(project=project, location=location, job=job, execution=execution, task=task, )
-
-    @staticmethod
-    def parse_task_path(path: str) -> Dict[str,str]:
-        """Parses a task path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/jobs/(?P<job>.+?)/executions/(?P<execution>.+?)/tasks/(?P<task>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_billing_account_path(billing_account: str, ) -> str:
-        """Returns a fully-qualified billing_account string."""
-        return "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-
-    @staticmethod
-    def parse_common_billing_account_path(path: str) -> Dict[str,str]:
-        """Parse a billing_account path into its component segments."""
-        m = re.match(r"^billingAccounts/(?P<billing_account>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_folder_path(folder: str, ) -> str:
-        """Returns a fully-qualified folder string."""
-        return "folders/{folder}".format(folder=folder, )
-
-    @staticmethod
-    def parse_common_folder_path(path: str) -> Dict[str,str]:
-        """Parse a folder path into its component segments."""
-        m = re.match(r"^folders/(?P<folder>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_organization_path(organization: str, ) -> str:
-        """Returns a fully-qualified organization string."""
-        return "organizations/{organization}".format(organization=organization, )
-
-    @staticmethod
-    def parse_common_organization_path(path: str) -> Dict[str,str]:
-        """Parse a organization path into its component segments."""
-        m = re.match(r"^organizations/(?P<organization>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_project_path(project: str, ) -> str:
-        """Returns a fully-qualified project string."""
-        return "projects/{project}".format(project=project, )
-
-    @staticmethod
-    def parse_common_project_path(path: str) -> Dict[str,str]:
-        """Parse a project path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @staticmethod
-    def common_location_path(project: str, location: str, ) -> str:
-        """Returns a fully-qualified location string."""
-        return "projects/{project}/locations/{location}".format(project=project, location=location, )
-
-    @staticmethod
-    def parse_common_location_path(path: str) -> Dict[str,str]:
-        """Parse a location path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)$", path)
-        return m.groupdict() if m else {}
-
-    @classmethod
-    def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None):
-        """Deprecated. Return the API endpoint and client cert source for mutual TLS.
-
-        The client cert source is determined in the following order:
-        (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
-        client cert source is None.
-        (2) if `client_options.client_cert_source` is provided, use the provided one; if the
-        default client cert source exists, use the default one; otherwise the client cert
-        source is None.
-
-        The API endpoint is determined in the following order:
-        (1) if `client_options.api_endpoint` if provided, use the provided one.
-        (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variable is "never", use the default API
-        endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
-        use the default API endpoint.
-
-        More details can be found at https://google.aip.dev/auth/4114.
-
-        Args:
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
-                client. Only the `api_endpoint` and `client_cert_source` properties may be used
-                in this method.
-
-        Returns:
-            Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
-                client cert source to use.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If any errors happen.
-        """
-
-        warnings.warn("get_mtls_endpoint_and_cert_source is deprecated. Use the api_endpoint property instead.",
-            DeprecationWarning)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false")
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-
-        # Figure out the client cert source to use.
-        client_cert_source = None
-        if use_client_cert == "true":
-            if client_options.client_cert_source:
-                client_cert_source = client_options.client_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-
-        # Figure out which api endpoint to use.
-        if client_options.api_endpoint is not None:
-            api_endpoint = client_options.api_endpoint
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            api_endpoint = cls.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = cls.DEFAULT_ENDPOINT
-
-        return api_endpoint, client_cert_source
-
-    @staticmethod
-    def _read_environment_variables():
-        """Returns the environment variables used by the client.
-
-        Returns:
-            Tuple[bool, str, str]: returns the GOOGLE_API_USE_CLIENT_CERTIFICATE,
-            GOOGLE_API_USE_MTLS_ENDPOINT, and GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variables.
-
-        Raises:
-            ValueError: If GOOGLE_API_USE_CLIENT_CERTIFICATE is not
-                any of ["true", "false"].
-            google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
-                is not any of ["auto", "never", "always"].
-        """
-        use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
-        use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
-        universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
-        if use_client_cert not in ("true", "false"):
-            raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`")
-        if use_mtls_endpoint not in ("auto", "never", "always"):
-            raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`")
-        return use_client_cert == "true", use_mtls_endpoint, universe_domain_env
-
-    @staticmethod
-    def _get_client_cert_source(provided_cert_source, use_cert_flag):
-        """Return the client cert source to be used by the client.
-
-        Args:
-            provided_cert_source (bytes): The client certificate source provided.
-            use_cert_flag (bool): A flag indicating whether to use the client certificate.
-
-        Returns:
-            bytes or None: The client cert source to be used by the client.
-        """
-        client_cert_source = None
-        if use_cert_flag:
-            if provided_cert_source:
-                client_cert_source = provided_cert_source
-            elif mtls.has_default_client_cert_source():
-                client_cert_source = mtls.default_client_cert_source()
-        return client_cert_source
-
-    @staticmethod
-    def _get_api_endpoint(api_override, client_cert_source, universe_domain, use_mtls_endpoint):
-        """Return the API endpoint used by the client.
-
-        Args:
-            api_override (str): The API endpoint override. If specified, this is always
-                the return value of this function and the other arguments are not used.
-            client_cert_source (bytes): The client certificate source used by the client.
-            universe_domain (str): The universe domain used by the client.
-            use_mtls_endpoint (str): How to use the mTLS endpoint, which depends also on the other parameters.
-                Possible values are "always", "auto", or "never".
-
-        Returns:
-            str: The API endpoint to be used by the client.
-        """
-        if api_override is not None:
-            api_endpoint = api_override
-        elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source):
-            _default_universe = TasksClient._DEFAULT_UNIVERSE
-            if universe_domain != _default_universe:
-                raise MutualTLSChannelError(f"mTLS is not supported in any universe other than {_default_universe}.")
-            api_endpoint = TasksClient.DEFAULT_MTLS_ENDPOINT
-        else:
-            api_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=universe_domain)
-        return api_endpoint
-
-    @staticmethod
-    def _get_universe_domain(client_universe_domain: Optional[str], universe_domain_env: Optional[str]) -> str:
-        """Return the universe domain used by the client.
-
-        Args:
-            client_universe_domain (Optional[str]): The universe domain configured via the client options.
-            universe_domain_env (Optional[str]): The universe domain configured via the "GOOGLE_CLOUD_UNIVERSE_DOMAIN" environment variable.
-
-        Returns:
-            str: The universe domain to be used by the client.
-
-        Raises:
-            ValueError: If the universe domain is an empty string.
-        """
-        universe_domain = TasksClient._DEFAULT_UNIVERSE
-        if client_universe_domain is not None:
-            universe_domain = client_universe_domain
-        elif universe_domain_env is not None:
-            universe_domain = universe_domain_env
-        if len(universe_domain.strip()) == 0:
-            raise ValueError("Universe Domain cannot be an empty string.")
-        return universe_domain
-
-    def _validate_universe_domain(self):
-        """Validates client's and credentials' universe domains are consistent.
-
-        Returns:
-            bool: True iff the configured universe domain is valid.
-
-        Raises:
-            ValueError: If the configured universe domain is not valid.
-        """
-
-        # NOTE (b/349488459): universe validation is disabled until further notice.
-        return True
-
-    @property
-    def api_endpoint(self):
-        """Return the API endpoint used by the client instance.
-
-        Returns:
-            str: The API endpoint used by the client instance.
-        """
-        return self._api_endpoint
-
-    @property
-    def universe_domain(self) -> str:
-        """Return the universe domain used by the client instance.
-
-        Returns:
-            str: The universe domain used by the client instance.
-        """
-        return self._universe_domain
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, TasksTransport, Callable[..., TasksTransport]]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the tasks client.
-
-        Args:
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            transport (Optional[Union[str,TasksTransport,Callable[..., TasksTransport]]]):
-                The transport to use, or a Callable that constructs and returns a new transport.
-                If a Callable is given, it will be called with the same set of initialization
-                arguments as used in the TasksTransport constructor.
-                If set to None, a transport is chosen automatically.
-            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]):
-                Custom options for the client.
-
-                1. The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client when ``transport`` is
-                not explicitly provided. Only if this property is not set and
-                ``transport`` was not explicitly provided, the endpoint is
-                determined by the GOOGLE_API_USE_MTLS_ENDPOINT environment
-                variable, which have one of the following values:
-                "always" (always use the default mTLS endpoint), "never" (always
-                use the default regular endpoint) and "auto" (auto-switch to the
-                default mTLS endpoint if client certificate is present; this is
-                the default value).
-
-                2. If the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide a client certificate for mTLS transport. If
-                not provided, the default SSL client certificate will be used if
-                present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
-                set, no client certificate will be used.
-
-                3. The ``universe_domain`` property can be used to override the
-                default "googleapis.com" universe. Note that the ``api_endpoint``
-                property still takes precedence; and ``universe_domain`` is
-                currently not supported for mTLS.
-
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-
-        Raises:
-            google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client_options = client_options
-        if isinstance(self._client_options, dict):
-            self._client_options = client_options_lib.from_dict(self._client_options)
-        if self._client_options is None:
-            self._client_options = client_options_lib.ClientOptions()
-        self._client_options = cast(client_options_lib.ClientOptions, self._client_options)
-
-        universe_domain_opt = getattr(self._client_options, 'universe_domain', None)
-
-        self._use_client_cert, self._use_mtls_endpoint, self._universe_domain_env = TasksClient._read_environment_variables()
-        self._client_cert_source = TasksClient._get_client_cert_source(self._client_options.client_cert_source, self._use_client_cert)
-        self._universe_domain = TasksClient._get_universe_domain(universe_domain_opt, self._universe_domain_env)
-        self._api_endpoint = None # updated below, depending on `transport`
-
-        # Initialize the universe domain validation.
-        self._is_universe_domain_valid = False
-
-        api_key_value = getattr(self._client_options, "api_key", None)
-        if api_key_value and credentials:
-            raise ValueError("client_options.api_key and credentials are mutually exclusive")
-
-        # Save or instantiate the transport.
-        # Ordinarily, we provide the transport, but allowing a custom transport
-        # instance provides an extensibility point for unusual situations.
-        transport_provided = isinstance(transport, TasksTransport)
-        if transport_provided:
-            # transport is a TasksTransport instance.
-            if credentials or self._client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if self._client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = cast(TasksTransport, transport)
-            self._api_endpoint = self._transport.host
-
-        self._api_endpoint = (self._api_endpoint or
-            TasksClient._get_api_endpoint(
-                self._client_options.api_endpoint,
-                self._client_cert_source,
-                self._universe_domain,
-                self._use_mtls_endpoint))
-
-        if not transport_provided:
-            import google.auth._default  # type: ignore
-
-            if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"):
-                credentials = google.auth._default.get_api_key_credentials(api_key_value)
-
-            transport_init: Union[Type[TasksTransport], Callable[..., TasksTransport]] = (
-                TasksClient.get_transport_class(transport)
-                if isinstance(transport, str) or transport is None
-                else cast(Callable[..., TasksTransport], transport)
-            )
-            # initialize with the provided callable or the passed in class
-            self._transport = transport_init(
-                credentials=credentials,
-                credentials_file=self._client_options.credentials_file,
-                host=self._api_endpoint,
-                scopes=self._client_options.scopes,
-                client_cert_source_for_mtls=self._client_cert_source,
-                quota_project_id=self._client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=self._client_options.api_audience,
-            )
-
-    def get_task(self,
-            request: Optional[Union[task.GetTaskRequest, dict]] = None,
-            *,
-            name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> task.Task:
-        r"""Gets information about a Task.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_get_task():
-                # Create a client
-                client = run_v2.TasksClient()
-
-                # Initialize request argument(s)
-                request = run_v2.GetTaskRequest(
-                    name="name_value",
-                )
-
-                # Make the request
-                response = client.get_task(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.GetTaskRequest, dict]):
-                The request object. Request message for obtaining a Task
-                by its full name.
-            name (str):
-                Required. The full name of the Task.
-                Format:
-
-                projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}
-
-                This corresponds to the ``name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.types.Task:
-                Task represents a single run of a
-                container to completion.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([name])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, task.GetTaskRequest):
-            request = task.GetTaskRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if name is not None:
-                request.name = name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_task]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("name", request.name),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def list_tasks(self,
-            request: Optional[Union[task.ListTasksRequest, dict]] = None,
-            *,
-            parent: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListTasksPager:
-        r"""Lists Tasks from an Execution of a Job.
-
-        .. code-block:: python
-
-            # This snippet has been automatically generated and should be regarded as a
-            # code template only.
-            # It will require modifications to work:
-            # - It may require correct/in-range values for request initialization.
-            # - It may require specifying regional endpoints when creating the service
-            #   client as shown in:
-            #   https://googleapis.dev/python/google-api-core/latest/client_options.html
-            from google.cloud import run_v2
-
-            def sample_list_tasks():
-                # Create a client
-                client = run_v2.TasksClient()
-
-                # Initialize request argument(s)
-                request = run_v2.ListTasksRequest(
-                    parent="parent_value",
-                )
-
-                # Make the request
-                page_result = client.list_tasks(request=request)
-
-                # Handle the response
-                for response in page_result:
-                    print(response)
-
-        Args:
-            request (Union[google.cloud.run_v2.types.ListTasksRequest, dict]):
-                The request object. Request message for retrieving a list
-                of Tasks.
-            parent (str):
-                Required. The Execution from which
-                the Tasks should be listed. To list all
-                Tasks across Executions of a Job, use
-                "-" instead of Execution name. To list
-                all Tasks across Jobs, use "-" instead
-                of Job name. Format:
-
-                projects/{project}/locations/{location}/jobs/{job}/executions/{execution}
-
-                This corresponds to the ``parent`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-
-        Returns:
-            google.cloud.run_v2.services.tasks.pagers.ListTasksPager:
-                Response message containing a list of
-                Tasks.
-                Iterating over this object will yield
-                results and resolve additional pages
-                automatically.
-
-        """
-        # Create or coerce a protobuf request object.
-        # - Quick check: If we got a request object, we should *not* have
-        #   gotten any keyword arguments that map to the request.
-        has_flattened_params = any([parent])
-        if request is not None and has_flattened_params:
-            raise ValueError('If the `request` argument is set, then none of '
-                             'the individual field arguments should be set.')
-
-        # - Use the request object if provided (there's no risk of modifying the input as
-        #   there are no flattened fields), or create one.
-        if not isinstance(request, task.ListTasksRequest):
-            request = task.ListTasksRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if parent is not None:
-                request.parent = parent
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_tasks]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("parent", request.parent),
-            )),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # This method is paged; wrap the response in a pager, which provides
-        # an `__iter__` convenience method.
-        response = pagers.ListTasksPager(
-            method=rpc,
-            request=request,
-            response=response,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "TasksClient":
-        return self
-
-    def __exit__(self, type, value, traceback):
-        """Releases underlying transport's resources.
-
-        .. warning::
-            ONLY use as a context manager if the transport is NOT shared
-            with other clients! Exiting the with block will CLOSE the transport
-            and may cause errors in other clients!
-        """
-        self.transport.close()
-
-    def list_operations(
-        self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.ListOperationsResponse:
-        r"""Lists operations that match the specified filter in the request.
-
-        Args:
-            request (:class:`~.operations_pb2.ListOperationsRequest`):
-                The request object. Request message for
-                `ListOperations` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.ListOperationsResponse:
-                Response message for ``ListOperations`` method.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_operations]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def get_operation(
-        self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Gets the latest state of a long-running operation.
-
-        Args:
-            request (:class:`~.operations_pb2.GetOperationRequest`):
-                The request object. Request message for
-                `GetOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-    def delete_operation(
-        self,
-        request: Optional[operations_pb2.DeleteOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> None:
-        r"""Deletes a long-running operation.
-
-        This method indicates that the client is no longer interested
-        in the operation result. It does not cancel the operation.
-        If the server doesn't support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.DeleteOperationRequest`):
-                The request object. Request message for
-                `DeleteOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            None
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.DeleteOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
-
-    def wait_operation(
-        self,
-        request: Optional[operations_pb2.WaitOperationRequest] = None,
-        *,
-        retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, str]] = (),
-    ) -> operations_pb2.Operation:
-        r"""Waits until the specified long-running operation is done or reaches at most
-        a specified timeout, returning the latest state.
-
-        If the operation is already done, the latest state is immediately returned.
-        If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
-        timeout is used.  If the server does not support this method, it returns
-        `google.rpc.Code.UNIMPLEMENTED`.
-
-        Args:
-            request (:class:`~.operations_pb2.WaitOperationRequest`):
-                The request object. Request message for
-                `WaitOperation` method.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                    if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        Returns:
-            ~.operations_pb2.Operation:
-                An ``Operation`` object.
-        """
-        # Create or coerce a protobuf request object.
-        # The request isn't a proto-plus wrapped type,
-        # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.WaitOperationRequest(**request)
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.wait_operation]
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata(
-                (("name", request.name),)),
-        )
-
-        # Validate the universe domain.
-        self._validate_universe_domain()
-
-        # Send the request.
-        response = rpc(
-            request, retry=retry, timeout=timeout, metadata=metadata,)
-
-        # Done; return the response.
-        return response
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "TasksClient",
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/pagers.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/pagers.py
deleted file mode 100644
index 6068f1054817..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/pagers.py
+++ /dev/null
@@ -1,162 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.api_core import retry_async as retries_async
-from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator, Union
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-    OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None]  # type: ignore
-
-from google.cloud.run_v2.types import task
-
-
-class ListTasksPager:
-    """A pager for iterating through ``list_tasks`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListTasksResponse` object, and
-    provides an ``__iter__`` method to iterate through its
-    ``tasks`` field.
-
-    If there are more pages, the ``__iter__`` method will make additional
-    ``ListTasks`` requests and continue to iterate
-    through the ``tasks`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListTasksResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., task.ListTasksResponse],
-            request: task.ListTasksRequest,
-            response: task.ListTasksResponse,
-            *,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiate the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListTasksRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListTasksResponse):
-                The initial response object.
-            retry (google.api_core.retry.Retry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = task.ListTasksRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    def pages(self) -> Iterator[task.ListTasksResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-
-    def __iter__(self) -> Iterator[task.Task]:
-        for page in self.pages:
-            yield from page.tasks
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
-
-
-class ListTasksAsyncPager:
-    """A pager for iterating through ``list_tasks`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.run_v2.types.ListTasksResponse` object, and
-    provides an ``__aiter__`` method to iterate through its
-    ``tasks`` field.
-
-    If there are more pages, the ``__aiter__`` method will make additional
-    ``ListTasks`` requests and continue to iterate
-    through the ``tasks`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.run_v2.types.ListTasksResponse`
-    attributes are available on the pager. If multiple requests are made, only
-    the most recent response is retained, and thus used for attribute lookup.
-    """
-    def __init__(self,
-            method: Callable[..., Awaitable[task.ListTasksResponse]],
-            request: task.ListTasksRequest,
-            response: task.ListTasksResponse,
-            *,
-            retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = ()):
-        """Instantiates the pager.
-
-        Args:
-            method (Callable): The method that was originally called, and
-                which instantiated this pager.
-            request (google.cloud.run_v2.types.ListTasksRequest):
-                The initial request object.
-            response (google.cloud.run_v2.types.ListTasksResponse):
-                The initial response object.
-            retry (google.api_core.retry.AsyncRetry): Designation of what errors,
-                if any, should be retried.
-            timeout (float): The timeout for this request.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = task.ListTasksRequest(request)
-        self._response = response
-        self._retry = retry
-        self._timeout = timeout
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    async def pages(self) -> AsyncIterator[task.ListTasksResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = await self._method(self._request, retry=self._retry, timeout=self._timeout, metadata=self._metadata)
-            yield self._response
-    def __aiter__(self) -> AsyncIterator[task.Task]:
-        async def async_generator():
-            async for page in self.pages:
-                for response in page.tasks:
-                    yield response
-
-        return async_generator()
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/README.rst b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/README.rst
deleted file mode 100644
index 2bdc15d8a2cf..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/README.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-
-transport inheritance structure
-_______________________________
-
-`TasksTransport` is the ABC for all transports.
-- public child `TasksGrpcTransport` for sync gRPC transport (defined in `grpc.py`).
-- public child `TasksGrpcAsyncIOTransport` for async gRPC transport (defined in `grpc_asyncio.py`).
-- private child `_BaseTasksRestTransport` for base REST transport with inner classes `_BaseMETHOD` (defined in `rest_base.py`).
-- public child `TasksRestTransport` for sync REST transport with inner classes `METHOD` derived from the parent's corresponding `_BaseMETHOD` classes (defined in `rest.py`).
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/__init__.py
deleted file mode 100644
index d16a8a28ebe7..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from collections import OrderedDict
-from typing import Dict, Type
-
-from .base import TasksTransport
-from .grpc import TasksGrpcTransport
-from .grpc_asyncio import TasksGrpcAsyncIOTransport
-from .rest import TasksRestTransport
-from .rest import TasksRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[TasksTransport]]
-_transport_registry['grpc'] = TasksGrpcTransport
-_transport_registry['grpc_asyncio'] = TasksGrpcAsyncIOTransport
-_transport_registry['rest'] = TasksRestTransport
-
-__all__ = (
-    'TasksTransport',
-    'TasksGrpcTransport',
-    'TasksGrpcAsyncIOTransport',
-    'TasksRestTransport',
-    'TasksRestInterceptor',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/base.py
deleted file mode 100644
index edec121694c8..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/base.py
+++ /dev/null
@@ -1,226 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 abc
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
-
-from google.cloud.run_v2 import gapic_version as package_version
-
-import google.auth  # type: ignore
-import google.api_core
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.oauth2 import service_account # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import task
-from google.longrunning import operations_pb2 # type: ignore
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class TasksTransport(abc.ABC):
-    """Abstract transport class for Tasks."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'run.googleapis.com'
-    def __init__(
-            self, *,
-            host: str = DEFAULT_HOST,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            **kwargs,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A list of scopes.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-        """
-
-        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
-
-        # Save the scopes.
-        self._scopes = scopes
-        if not hasattr(self, "_ignore_credentials"):
-            self._ignore_credentials: bool = False
-
-        # If no credentials are provided, then determine the appropriate
-        # defaults.
-        if credentials and credentials_file:
-            raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive")
-
-        if credentials_file is not None:
-            credentials, _ = google.auth.load_credentials_from_file(
-                                credentials_file,
-                                **scopes_kwargs,
-                                quota_project_id=quota_project_id
-                            )
-        elif credentials is None and not self._ignore_credentials:
-            credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id)
-            # Don't apply audience if the credentials file passed from user.
-            if hasattr(credentials, "with_gdch_audience"):
-                credentials = credentials.with_gdch_audience(api_audience if api_audience else host)
-
-        # If the credentials are service account credentials, then always try to use self signed JWT.
-        if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"):
-            credentials = credentials.with_always_use_jwt_access(True)
-
-        # Save the credentials.
-        self._credentials = credentials
-
-        # Save the hostname. Default to port 443 (HTTPS) if none is specified.
-        if ':' not in host:
-            host += ':443'
-        self._host = host
-
-    @property
-    def host(self):
-        return self._host
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.get_task: gapic_v1.method.wrap_method(
-                self.get_task,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_tasks: gapic_v1.method.wrap_method(
-                self.list_tasks,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: gapic_v1.method.wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: gapic_v1.method.wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: gapic_v1.method.wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: gapic_v1.method.wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-         }
-
-    def close(self):
-        """Closes resources associated with the transport.
-
-       .. warning::
-            Only call this method if the transport is NOT shared
-            with other clients - this may cause errors in other clients!
-        """
-        raise NotImplementedError()
-
-    @property
-    def get_task(self) -> Callable[
-            [task.GetTaskRequest],
-            Union[
-                task.Task,
-                Awaitable[task.Task]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_tasks(self) -> Callable[
-            [task.ListTasksRequest],
-            Union[
-                task.ListTasksResponse,
-                Awaitable[task.ListTasksResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[
-        [operations_pb2.ListOperationsRequest],
-        Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.GetOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.DeleteOperationRequest],
-        None,
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[
-        [operations_pb2.WaitOperationRequest],
-        Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]],
-    ]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'TasksTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc.py
deleted file mode 100644
index 201da3bc1a15..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc.py
+++ /dev/null
@@ -1,370 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 warnings
-from typing import Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import grpc_helpers
-from google.api_core import gapic_v1
-import google.auth                         # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import task
-from google.longrunning import operations_pb2 # type: ignore
-from .base import TasksTransport, DEFAULT_CLIENT_INFO
-
-
-class TasksGrpcTransport(TasksTransport):
-    """gRPC backend transport for Tasks.
-
-    Cloud Run Task Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-    _stubs: Dict[str, Callable]
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[grpc.Channel, Callable[..., 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,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if a ``channel`` instance is provided.
-            channel (Optional[Union[grpc.Channel, Callable[..., grpc.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-          google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, grpc.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._prep_wrapped_messages(client_info)
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> grpc.Channel:
-        """Create and return a gRPC channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is mutually exclusive with credentials.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            grpc.Channel: A gRPC channel object.
-
-        Raises:
-            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-
-        return grpc_helpers.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    @property
-    def grpc_channel(self) -> grpc.Channel:
-        """Return the channel designed to connect to this service.
-        """
-        return self._grpc_channel
-
-    @property
-    def get_task(self) -> Callable[
-            [task.GetTaskRequest],
-            task.Task]:
-        r"""Return a callable for the get task method over gRPC.
-
-        Gets information about a Task.
-
-        Returns:
-            Callable[[~.GetTaskRequest],
-                    ~.Task]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_task' not in self._stubs:
-            self._stubs['get_task'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Tasks/GetTask',
-                request_serializer=task.GetTaskRequest.serialize,
-                response_deserializer=task.Task.deserialize,
-            )
-        return self._stubs['get_task']
-
-    @property
-    def list_tasks(self) -> Callable[
-            [task.ListTasksRequest],
-            task.ListTasksResponse]:
-        r"""Return a callable for the list tasks method over gRPC.
-
-        Lists Tasks from an Execution of a Job.
-
-        Returns:
-            Callable[[~.ListTasksRequest],
-                    ~.ListTasksResponse]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_tasks' not in self._stubs:
-            self._stubs['list_tasks'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Tasks/ListTasks',
-                request_serializer=task.ListTasksRequest.serialize,
-                response_deserializer=task.ListTasksResponse.deserialize,
-            )
-        return self._stubs['list_tasks']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'TasksGrpcTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc_asyncio.py
deleted file mode 100644
index dc8b7767b101..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,416 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 inspect
-import warnings
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry_async as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.auth.transport.grpc import SslCredentials  # type: ignore
-
-import grpc                        # type: ignore
-from grpc.experimental import aio  # type: ignore
-
-from google.cloud.location import locations_pb2 # type: ignore
-from google.cloud.run_v2.types import task
-from google.longrunning import operations_pb2 # type: ignore
-from .base import TasksTransport, DEFAULT_CLIENT_INFO
-from .grpc import TasksGrpcTransport
-
-
-class TasksGrpcAsyncIOTransport(TasksTransport):
-    """gRPC AsyncIO backend transport for Tasks.
-
-    Cloud Run Task Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends protocol buffers over the wire using gRPC (which is built on
-    top of HTTP/2); the ``grpcio`` package must be installed.
-    """
-
-    _grpc_channel: aio.Channel
-    _stubs: Dict[str, Callable] = {}
-
-    @classmethod
-    def create_channel(cls,
-                       host: str = 'run.googleapis.com',
-                       credentials: Optional[ga_credentials.Credentials] = None,
-                       credentials_file: Optional[str] = None,
-                       scopes: Optional[Sequence[str]] = None,
-                       quota_project_id: Optional[str] = None,
-                       **kwargs) -> aio.Channel:
-        """Create and return a gRPC AsyncIO channel object.
-        Args:
-            host (Optional[str]): The host for the channel to use.
-            credentials (Optional[~.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify this application to the service. If
-                none are specified, the client will attempt to ascertain
-                the credentials from the environment.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            kwargs (Optional[dict]): Keyword arguments, which are passed to the
-                channel creation.
-        Returns:
-            aio.Channel: A gRPC AsyncIO channel object.
-        """
-
-        return grpc_helpers_async.create_channel(
-            host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            quota_project_id=quota_project_id,
-            default_scopes=cls.AUTH_SCOPES,
-            scopes=scopes,
-            default_host=cls.DEFAULT_HOST,
-            **kwargs
-        )
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[Union[aio.Channel, Callable[..., 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,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-                This argument is ignored if a ``channel`` instance is provided.
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if a ``channel`` instance is provided.
-            scopes (Optional[Sequence[str]]): A optional list of scopes needed for this
-                service. These are only used when credentials are not specified and
-                are passed to :func:`google.auth.default`.
-            channel (Optional[Union[aio.Channel, Callable[..., aio.Channel]]]):
-                A ``Channel`` instance through which to make calls, or a Callable
-                that constructs and returns one. If set to None, ``self.create_channel``
-                is used to create the channel. If a Callable is given, it will be called
-                with the same arguments as used in ``self.create_channel``.
-            api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint.
-                If provided, it overrides the ``host`` argument and tries to create
-                a mutual TLS channel with client SSL credentials from
-                ``client_cert_source`` or application default SSL credentials.
-            client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                Deprecated. A callback to provide client SSL certificate bytes and
-                private key bytes, both in PEM format. It is ignored if
-                ``api_mtls_endpoint`` is None.
-            ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials
-                for the grpc channel. It is ignored if a ``channel`` instance is provided.
-            client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]):
-                A callback to provide client certificate bytes and private key bytes,
-                both in PEM format. It is used to configure a mutual TLS channel. It is
-                ignored if a ``channel`` instance or ``ssl_channel_credentials`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you're developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-              creation failed for any reason.
-          google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
-              and ``credentials_file`` are passed.
-        """
-        self._grpc_channel = None
-        self._ssl_channel_credentials = ssl_channel_credentials
-        self._stubs: Dict[str, Callable] = {}
-
-        if api_mtls_endpoint:
-            warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
-        if client_cert_source:
-            warnings.warn("client_cert_source is deprecated", DeprecationWarning)
-
-        if isinstance(channel, aio.Channel):
-            # Ignore credentials if a channel was passed.
-            credentials = None
-            self._ignore_credentials = True
-            # If a channel was explicitly provided, set it.
-            self._grpc_channel = channel
-            self._ssl_channel_credentials = None
-        else:
-            if api_mtls_endpoint:
-                host = api_mtls_endpoint
-
-                # Create SSL credentials with client_cert_source or application
-                # default SSL credentials.
-                if client_cert_source:
-                    cert, key = client_cert_source()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-                else:
-                    self._ssl_channel_credentials = SslCredentials().ssl_credentials
-
-            else:
-                if client_cert_source_for_mtls and not ssl_channel_credentials:
-                    cert, key = client_cert_source_for_mtls()
-                    self._ssl_channel_credentials = grpc.ssl_channel_credentials(
-                        certificate_chain=cert, private_key=key
-                    )
-
-        # The base transport sets the host, credentials and scopes
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            credentials_file=credentials_file,
-            scopes=scopes,
-            quota_project_id=quota_project_id,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience,
-        )
-
-        if not self._grpc_channel:
-            # initialize with the provided callable or the default channel
-            channel_init = channel or type(self).create_channel
-            self._grpc_channel = channel_init(
-                self._host,
-                # use the credentials which are saved
-                credentials=self._credentials,
-                # Set ``credentials_file`` to ``None`` here as
-                # the credentials that we saved earlier should be used.
-                credentials_file=None,
-                scopes=self._scopes,
-                ssl_credentials=self._ssl_channel_credentials,
-                quota_project_id=quota_project_id,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-
-        # Wrap messages. This must be done after self._grpc_channel exists
-        self._wrap_with_kind = "kind" in inspect.signature(gapic_v1.method_async.wrap_method).parameters
-        self._prep_wrapped_messages(client_info)
-
-    @property
-    def grpc_channel(self) -> aio.Channel:
-        """Create the channel designed to connect to this service.
-
-        This property caches on the instance; repeated calls return
-        the same channel.
-        """
-        # Return the channel from cache.
-        return self._grpc_channel
-
-    @property
-    def get_task(self) -> Callable[
-            [task.GetTaskRequest],
-            Awaitable[task.Task]]:
-        r"""Return a callable for the get task method over gRPC.
-
-        Gets information about a Task.
-
-        Returns:
-            Callable[[~.GetTaskRequest],
-                    Awaitable[~.Task]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'get_task' not in self._stubs:
-            self._stubs['get_task'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Tasks/GetTask',
-                request_serializer=task.GetTaskRequest.serialize,
-                response_deserializer=task.Task.deserialize,
-            )
-        return self._stubs['get_task']
-
-    @property
-    def list_tasks(self) -> Callable[
-            [task.ListTasksRequest],
-            Awaitable[task.ListTasksResponse]]:
-        r"""Return a callable for the list tasks method over gRPC.
-
-        Lists Tasks from an Execution of a Job.
-
-        Returns:
-            Callable[[~.ListTasksRequest],
-                    Awaitable[~.ListTasksResponse]]:
-                A function that, when called, will call the underlying RPC
-                on the server.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if 'list_tasks' not in self._stubs:
-            self._stubs['list_tasks'] = self.grpc_channel.unary_unary(
-                '/google.cloud.run.v2.Tasks/ListTasks',
-                request_serializer=task.ListTasksRequest.serialize,
-                response_deserializer=task.ListTasksResponse.deserialize,
-            )
-        return self._stubs['list_tasks']
-
-    def _prep_wrapped_messages(self, client_info):
-        """ Precompute the wrapped methods, overriding the base class method to use async wrappers."""
-        self._wrapped_methods = {
-            self.get_task: self._wrap_method(
-                self.get_task,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_tasks: self._wrap_method(
-                self.list_tasks,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_operation: self._wrap_method(
-                self.delete_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.get_operation: self._wrap_method(
-                self.get_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_operations: self._wrap_method(
-                self.list_operations,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.wait_operation: self._wrap_method(
-                self.wait_operation,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-        }
-
-    def _wrap_method(self, func, *args, **kwargs):
-        if self._wrap_with_kind:  # pragma: NO COVER
-            kwargs["kind"] = self.kind
-        return gapic_v1.method_async.wrap_method(func, *args, **kwargs)
-
-    def close(self):
-        return self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc_asyncio"
-
-    @property
-    def delete_operation(
-        self,
-    ) -> Callable[[operations_pb2.DeleteOperationRequest], None]:
-        r"""Return a callable for the delete_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "delete_operation" not in self._stubs:
-            self._stubs["delete_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/DeleteOperation",
-                request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["delete_operation"]
-
-    @property
-    def wait_operation(
-        self,
-    ) -> Callable[[operations_pb2.WaitOperationRequest], None]:
-        r"""Return a callable for the wait_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "wait_operation" not in self._stubs:
-            self._stubs["wait_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/WaitOperation",
-                request_serializer=operations_pb2.WaitOperationRequest.SerializeToString,
-                response_deserializer=None,
-            )
-        return self._stubs["wait_operation"]
-
-    @property
-    def get_operation(
-        self,
-    ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]:
-        r"""Return a callable for the get_operation method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "get_operation" not in self._stubs:
-            self._stubs["get_operation"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/GetOperation",
-                request_serializer=operations_pb2.GetOperationRequest.SerializeToString,
-                response_deserializer=operations_pb2.Operation.FromString,
-            )
-        return self._stubs["get_operation"]
-
-    @property
-    def list_operations(
-        self,
-    ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]:
-        r"""Return a callable for the list_operations method over gRPC.
-        """
-        # Generate a "stub function" on-the-fly which will actually make
-        # the request.
-        # gRPC handles serialization and deserialization, so we just need
-        # to pass in the functions for each.
-        if "list_operations" not in self._stubs:
-            self._stubs["list_operations"] = self.grpc_channel.unary_unary(
-                "/google.longrunning.Operations/ListOperations",
-                request_serializer=operations_pb2.ListOperationsRequest.SerializeToString,
-                response_deserializer=operations_pb2.ListOperationsResponse.FromString,
-            )
-        return self._stubs["list_operations"]
-
-
-__all__ = (
-    'TasksGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest.py
deleted file mode 100644
index afbf21734ae2..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest.py
+++ /dev/null
@@ -1,756 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-
-from google.auth.transport.requests import AuthorizedSession  # type: ignore
-import json  # type: ignore
-from google.auth import credentials as ga_credentials  # type: ignore
-from google.api_core import exceptions as core_exceptions
-from google.api_core import retry as retries
-from google.api_core import rest_helpers
-from google.api_core import rest_streaming
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.cloud.location import locations_pb2 # type: ignore
-
-from requests import __version__ as requests_version
-import dataclasses
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-
-from google.cloud.run_v2.types import task
-from google.longrunning import operations_pb2  # type: ignore
-
-
-from .rest_base import _BaseTasksRestTransport
-from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object, None]  # type: ignore
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=f"requests@{requests_version}",
-)
-
-
-class TasksRestInterceptor:
-    """Interceptor for Tasks.
-
-    Interceptors are used to manipulate requests, request metadata, and responses
-    in arbitrary ways.
-    Example use cases include:
-    * Logging
-    * Verifying requests according to service or custom semantics
-    * Stripping extraneous information from responses
-
-    These use cases and more can be enabled by injecting an
-    instance of a custom subclass when constructing the TasksRestTransport.
-
-    .. code-block:: python
-        class MyCustomTasksInterceptor(TasksRestInterceptor):
-            def pre_get_task(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_get_task(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_list_tasks(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_list_tasks(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = TasksRestTransport(interceptor=MyCustomTasksInterceptor())
-        client = TasksClient(transport=transport)
-
-
-    """
-    def pre_get_task(self, request: task.GetTaskRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[task.GetTaskRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_task
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Tasks server.
-        """
-        return request, metadata
-
-    def post_get_task(self, response: task.Task) -> task.Task:
-        """Post-rpc interceptor for get_task
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Tasks server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_tasks(self, request: task.ListTasksRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[task.ListTasksRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_tasks
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Tasks server.
-        """
-        return request, metadata
-
-    def post_list_tasks(self, response: task.ListTasksResponse) -> task.ListTasksResponse:
-        """Post-rpc interceptor for list_tasks
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Tasks server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_delete_operation(
-        self, request: operations_pb2.DeleteOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.DeleteOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Tasks server.
-        """
-        return request, metadata
-
-    def post_delete_operation(
-        self, response: None
-    ) -> None:
-        """Post-rpc interceptor for delete_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Tasks server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_get_operation(
-        self, request: operations_pb2.GetOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.GetOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Tasks server.
-        """
-        return request, metadata
-
-    def post_get_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for get_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Tasks server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_list_operations(
-        self, request: operations_pb2.ListOperationsRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.ListOperationsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Tasks server.
-        """
-        return request, metadata
-
-    def post_list_operations(
-        self, response: operations_pb2.ListOperationsResponse
-    ) -> operations_pb2.ListOperationsResponse:
-        """Post-rpc interceptor for list_operations
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Tasks server but before
-        it is returned to user code.
-        """
-        return response
-
-    def pre_wait_operation(
-        self, request: operations_pb2.WaitOperationRequest, metadata: Sequence[Tuple[str, str]]
-    ) -> Tuple[operations_pb2.WaitOperationRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the Tasks server.
-        """
-        return request, metadata
-
-    def post_wait_operation(
-        self, response: operations_pb2.Operation
-    ) -> operations_pb2.Operation:
-        """Post-rpc interceptor for wait_operation
-
-        Override in a subclass to manipulate the response
-        after it is returned by the Tasks server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class TasksRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: TasksRestInterceptor
-
-
-class TasksRestTransport(_BaseTasksRestTransport):
-    """REST backend synchronous transport for Tasks.
-
-    Cloud Run Task Control Plane API.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = 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,
-            url_scheme: str = 'https',
-            interceptor: Optional[TasksRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[google.auth.credentials.Credentials]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-
-            credentials_file (Optional[str]): A file with credentials that can
-                be loaded with :func:`google.auth.load_credentials_from_file`.
-                This argument is ignored if ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
-                certificate to configure mutual TLS HTTP channel. It is ignored
-                if ``channel`` is provided.
-            quota_project_id (Optional[str]): An optional project to use for billing
-                and quota.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
-        # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
-        # credentials object
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            url_scheme=url_scheme,
-            api_audience=api_audience
-        )
-        self._session = AuthorizedSession(
-            self._credentials, default_host=self.DEFAULT_HOST)
-        if client_cert_source_for_mtls:
-            self._session.configure_mtls_channel(client_cert_source_for_mtls)
-        self._interceptor = interceptor or TasksRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    class _GetTask(_BaseTasksRestTransport._BaseGetTask, TasksRestStub):
-        def __hash__(self):
-            return hash("TasksRestTransport.GetTask")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: task.GetTaskRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> task.Task:
-            r"""Call the get task method over HTTP.
-
-            Args:
-                request (~.task.GetTaskRequest):
-                    The request object. Request message for obtaining a Task
-                by its full name.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.task.Task:
-                    Task represents a single run of a
-                container to completion.
-
-            """
-
-            http_options = _BaseTasksRestTransport._BaseGetTask._get_http_options()
-            request, metadata = self._interceptor.pre_get_task(request, metadata)
-            transcoded_request = _BaseTasksRestTransport._BaseGetTask._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseTasksRestTransport._BaseGetTask._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = TasksRestTransport._GetTask._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = task.Task()
-            pb_resp = task.Task.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_get_task(resp)
-            return resp
-
-    class _ListTasks(_BaseTasksRestTransport._BaseListTasks, TasksRestStub):
-        def __hash__(self):
-            return hash("TasksRestTransport.ListTasks")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-                request: task.ListTasksRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> task.ListTasksResponse:
-            r"""Call the list tasks method over HTTP.
-
-            Args:
-                request (~.task.ListTasksRequest):
-                    The request object. Request message for retrieving a list
-                of Tasks.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                ~.task.ListTasksResponse:
-                    Response message containing a list of
-                Tasks.
-
-            """
-
-            http_options = _BaseTasksRestTransport._BaseListTasks._get_http_options()
-            request, metadata = self._interceptor.pre_list_tasks(request, metadata)
-            transcoded_request = _BaseTasksRestTransport._BaseListTasks._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseTasksRestTransport._BaseListTasks._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = TasksRestTransport._ListTasks._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            # Return the response
-            resp = task.ListTasksResponse()
-            pb_resp = task.ListTasksResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_list_tasks(resp)
-            return resp
-
-    @property
-    def get_task(self) -> Callable[
-            [task.GetTaskRequest],
-            task.Task]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._GetTask(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def list_tasks(self) -> Callable[
-            [task.ListTasksRequest],
-            task.ListTasksResponse]:
-        # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
-        # In C++ this would require a dynamic_cast
-        return self._ListTasks(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def delete_operation(self):
-        return self._DeleteOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _DeleteOperation(_BaseTasksRestTransport._BaseDeleteOperation, TasksRestStub):
-        def __hash__(self):
-            return hash("TasksRestTransport.DeleteOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.DeleteOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> None:
-
-            r"""Call the delete operation method over HTTP.
-
-            Args:
-                request (operations_pb2.DeleteOperationRequest):
-                    The request object for DeleteOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-            """
-
-            http_options = _BaseTasksRestTransport._BaseDeleteOperation._get_http_options()
-            request, metadata = self._interceptor.pre_delete_operation(request, metadata)
-            transcoded_request = _BaseTasksRestTransport._BaseDeleteOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseTasksRestTransport._BaseDeleteOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = TasksRestTransport._DeleteOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            return self._interceptor.post_delete_operation(None)
-
-    @property
-    def get_operation(self):
-        return self._GetOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _GetOperation(_BaseTasksRestTransport._BaseGetOperation, TasksRestStub):
-        def __hash__(self):
-            return hash("TasksRestTransport.GetOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.GetOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the get operation method over HTTP.
-
-            Args:
-                request (operations_pb2.GetOperationRequest):
-                    The request object for GetOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from GetOperation method.
-            """
-
-            http_options = _BaseTasksRestTransport._BaseGetOperation._get_http_options()
-            request, metadata = self._interceptor.pre_get_operation(request, metadata)
-            transcoded_request = _BaseTasksRestTransport._BaseGetOperation._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseTasksRestTransport._BaseGetOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = TasksRestTransport._GetOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_get_operation(resp)
-            return resp
-
-    @property
-    def list_operations(self):
-        return self._ListOperations(self._session, self._host, self._interceptor) # type: ignore
-
-    class _ListOperations(_BaseTasksRestTransport._BaseListOperations, TasksRestStub):
-        def __hash__(self):
-            return hash("TasksRestTransport.ListOperations")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.ListOperationsRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.ListOperationsResponse:
-
-            r"""Call the list operations method over HTTP.
-
-            Args:
-                request (operations_pb2.ListOperationsRequest):
-                    The request object for ListOperations method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.ListOperationsResponse: Response from ListOperations method.
-            """
-
-            http_options = _BaseTasksRestTransport._BaseListOperations._get_http_options()
-            request, metadata = self._interceptor.pre_list_operations(request, metadata)
-            transcoded_request = _BaseTasksRestTransport._BaseListOperations._get_transcoded_request(http_options, request)
-
-            # Jsonify the query params
-            query_params = _BaseTasksRestTransport._BaseListOperations._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = TasksRestTransport._ListOperations._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.ListOperationsResponse()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_list_operations(resp)
-            return resp
-
-    @property
-    def wait_operation(self):
-        return self._WaitOperation(self._session, self._host, self._interceptor) # type: ignore
-
-    class _WaitOperation(_BaseTasksRestTransport._BaseWaitOperation, TasksRestStub):
-        def __hash__(self):
-            return hash("TasksRestTransport.WaitOperation")
-
-        @staticmethod
-        def _get_response(
-            host,
-            metadata,
-            query_params,
-            session,
-            timeout,
-            transcoded_request,
-            body=None):
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(session, method)(
-                "{host}{uri}".format(host=host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=body,
-                )
-            return response
-
-        def __call__(self,
-            request: operations_pb2.WaitOperationRequest, *,
-            retry: OptionalRetry=gapic_v1.method.DEFAULT,
-            timeout: Optional[float]=None,
-            metadata: Sequence[Tuple[str, str]]=(),
-            ) -> operations_pb2.Operation:
-
-            r"""Call the wait operation method over HTTP.
-
-            Args:
-                request (operations_pb2.WaitOperationRequest):
-                    The request object for WaitOperation method.
-                retry (google.api_core.retry.Retry): Designation of what errors, if any,
-                    should be retried.
-                timeout (float): The timeout for this request.
-                metadata (Sequence[Tuple[str, str]]): Strings which should be
-                    sent along with the request as metadata.
-
-            Returns:
-                operations_pb2.Operation: Response from WaitOperation method.
-            """
-
-            http_options = _BaseTasksRestTransport._BaseWaitOperation._get_http_options()
-            request, metadata = self._interceptor.pre_wait_operation(request, metadata)
-            transcoded_request = _BaseTasksRestTransport._BaseWaitOperation._get_transcoded_request(http_options, request)
-
-            body = _BaseTasksRestTransport._BaseWaitOperation._get_request_body_json(transcoded_request)
-
-            # Jsonify the query params
-            query_params = _BaseTasksRestTransport._BaseWaitOperation._get_query_params_json(transcoded_request)
-
-            # Send the request
-            response = TasksRestTransport._WaitOperation._get_response(self._host, metadata, query_params, self._session, timeout, transcoded_request, body)
-
-            # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
-            # subclass.
-            if response.status_code >= 400:
-                raise core_exceptions.from_http_response(response)
-
-            content = response.content.decode("utf-8")
-            resp = operations_pb2.Operation()
-            resp = json_format.Parse(content, resp)
-            resp = self._interceptor.post_wait_operation(resp)
-            return resp
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'TasksRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest_base.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest_base.py
deleted file mode 100644
index 89057c9a6e4b..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/services/tasks/transports/rest_base.py
+++ /dev/null
@@ -1,272 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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  # type: ignore
-from google.api_core import path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from google.cloud.location import locations_pb2 # type: ignore
-from .base import TasksTransport, DEFAULT_CLIENT_INFO
-
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-
-
-from google.cloud.run_v2.types import task
-from google.longrunning import operations_pb2  # type: ignore
-
-
-class _BaseTasksRestTransport(TasksTransport):
-    """Base REST backend transport for Tasks.
-
-    Note: This class is not meant to be used directly. Use its sync and
-    async sub-classes instead.
-
-    This class defines the same methods as the primary client, so the
-    primary client can load the underlying transport implementation
-    and call it.
-
-    It sends JSON representations of protocol buffers over HTTP/1.1
-    """
-
-    def __init__(self, *,
-            host: str = 'run.googleapis.com',
-            credentials: Optional[Any] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            url_scheme: str = 'https',
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to (default: 'run.googleapis.com').
-            credentials (Optional[Any]): The
-                authorization credentials to attach to requests. These
-                credentials identify the application to the service; if none
-                are specified, the client will attempt to ascertain the
-                credentials from the environment.
-            client_info (google.api_core.gapic_v1.client_info.ClientInfo):
-                The client info used to send a user-agent string along with
-                API requests. If ``None``, then default info will be used.
-                Generally, you only need to set this if you are developing
-                your own client library.
-            always_use_jwt_access (Optional[bool]): Whether self signed JWT should
-                be used for service account credentials.
-            url_scheme: the protocol scheme for the API endpoint.  Normally
-                "https", but for testing or local servers,
-                "http" can be specified.
-        """
-        # Run the base constructor
-        maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
-        if maybe_url_match is None:
-            raise ValueError(f"Unexpected hostname structure: {host}")  # pragma: NO COVER
-
-        url_match_items = maybe_url_match.groupdict()
-
-        host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
-
-        super().__init__(
-            host=host,
-            credentials=credentials,
-            client_info=client_info,
-            always_use_jwt_access=always_use_jwt_access,
-            api_audience=api_audience
-        )
-
-    class _BaseGetTask:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/jobs/*/executions/*/tasks/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = task.GetTaskRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseTasksRestTransport._BaseGetTask._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseListTasks:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-        }
-
-        @classmethod
-        def _get_unset_required_fields(cls, message_dict):
-            return {k: v for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() if k not in message_dict}
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{parent=projects/*/locations/*/jobs/*/executions/*}/tasks',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            pb_request = task.ListTasksRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                use_integers_for_enums=True,
-            ))
-            query_params.update(_BaseTasksRestTransport._BaseListTasks._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-            return query_params
-
-    class _BaseDeleteOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseGetOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseListOperations:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v2/{name=projects/*/locations/*}/operations',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-    class _BaseWaitOperation:
-        def __hash__(self):  # pragma: NO COVER
-            return NotImplementedError("__hash__ must be implemented.")
-
-        @staticmethod
-        def _get_http_options():
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v2/{name=projects/*/locations/*/operations/*}:wait',
-                'body': '*',
-            },
-            ]
-            return http_options
-
-        @staticmethod
-        def _get_transcoded_request(http_options, request):
-            request_kwargs = json_format.MessageToDict(request)
-            transcoded_request = path_template.transcode(
-                http_options, **request_kwargs)
-            return transcoded_request
-
-        @staticmethod
-        def _get_request_body_json(transcoded_request):
-            body = json.dumps(transcoded_request['body'])
-            return body
-        @staticmethod
-        def _get_query_params_json(transcoded_request):
-            query_params = json.loads(json.dumps(transcoded_request['query_params']))
-            return query_params
-
-
-__all__=(
-    '_BaseTasksRestTransport',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/__init__.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/__init__.py
deleted file mode 100644
index 82c6508c6f77..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/__init__.py
+++ /dev/null
@@ -1,188 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from .build import (
-    StorageSource,
-    SubmitBuildRequest,
-    SubmitBuildResponse,
-)
-from .condition import (
-    Condition,
-)
-from .execution import (
-    CancelExecutionRequest,
-    DeleteExecutionRequest,
-    Execution,
-    GetExecutionRequest,
-    ListExecutionsRequest,
-    ListExecutionsResponse,
-)
-from .execution_template import (
-    ExecutionTemplate,
-)
-from .job import (
-    CreateJobRequest,
-    DeleteJobRequest,
-    ExecutionReference,
-    GetJobRequest,
-    Job,
-    ListJobsRequest,
-    ListJobsResponse,
-    RunJobRequest,
-    UpdateJobRequest,
-)
-from .k8s_min import (
-    CloudSqlInstance,
-    Container,
-    ContainerPort,
-    EmptyDirVolumeSource,
-    EnvVar,
-    EnvVarSource,
-    GCSVolumeSource,
-    GRPCAction,
-    HTTPGetAction,
-    HTTPHeader,
-    NFSVolumeSource,
-    Probe,
-    ResourceRequirements,
-    SecretKeySelector,
-    SecretVolumeSource,
-    TCPSocketAction,
-    VersionToPath,
-    Volume,
-    VolumeMount,
-)
-from .revision import (
-    DeleteRevisionRequest,
-    GetRevisionRequest,
-    ListRevisionsRequest,
-    ListRevisionsResponse,
-    Revision,
-)
-from .revision_template import (
-    RevisionTemplate,
-)
-from .service import (
-    CreateServiceRequest,
-    DeleteServiceRequest,
-    GetServiceRequest,
-    ListServicesRequest,
-    ListServicesResponse,
-    Service,
-    UpdateServiceRequest,
-)
-from .status import (
-    RevisionScalingStatus,
-)
-from .task import (
-    GetTaskRequest,
-    ListTasksRequest,
-    ListTasksResponse,
-    Task,
-    TaskAttemptResult,
-)
-from .task_template import (
-    TaskTemplate,
-)
-from .traffic_target import (
-    TrafficTarget,
-    TrafficTargetStatus,
-    TrafficTargetAllocationType,
-)
-from .vendor_settings import (
-    BinaryAuthorization,
-    NodeSelector,
-    RevisionScaling,
-    ServiceMesh,
-    ServiceScaling,
-    VpcAccess,
-    EncryptionKeyRevocationAction,
-    ExecutionEnvironment,
-    IngressTraffic,
-)
-
-__all__ = (
-    'StorageSource',
-    'SubmitBuildRequest',
-    'SubmitBuildResponse',
-    'Condition',
-    'CancelExecutionRequest',
-    'DeleteExecutionRequest',
-    'Execution',
-    'GetExecutionRequest',
-    'ListExecutionsRequest',
-    'ListExecutionsResponse',
-    'ExecutionTemplate',
-    'CreateJobRequest',
-    'DeleteJobRequest',
-    'ExecutionReference',
-    'GetJobRequest',
-    'Job',
-    'ListJobsRequest',
-    'ListJobsResponse',
-    'RunJobRequest',
-    'UpdateJobRequest',
-    'CloudSqlInstance',
-    'Container',
-    'ContainerPort',
-    'EmptyDirVolumeSource',
-    'EnvVar',
-    'EnvVarSource',
-    'GCSVolumeSource',
-    'GRPCAction',
-    'HTTPGetAction',
-    'HTTPHeader',
-    'NFSVolumeSource',
-    'Probe',
-    'ResourceRequirements',
-    'SecretKeySelector',
-    'SecretVolumeSource',
-    'TCPSocketAction',
-    'VersionToPath',
-    'Volume',
-    'VolumeMount',
-    'DeleteRevisionRequest',
-    'GetRevisionRequest',
-    'ListRevisionsRequest',
-    'ListRevisionsResponse',
-    'Revision',
-    'RevisionTemplate',
-    'CreateServiceRequest',
-    'DeleteServiceRequest',
-    'GetServiceRequest',
-    'ListServicesRequest',
-    'ListServicesResponse',
-    'Service',
-    'UpdateServiceRequest',
-    'RevisionScalingStatus',
-    'GetTaskRequest',
-    'ListTasksRequest',
-    'ListTasksResponse',
-    'Task',
-    'TaskAttemptResult',
-    'TaskTemplate',
-    'TrafficTarget',
-    'TrafficTargetStatus',
-    'TrafficTargetAllocationType',
-    'BinaryAuthorization',
-    'NodeSelector',
-    'RevisionScaling',
-    'ServiceMesh',
-    'ServiceScaling',
-    'VpcAccess',
-    'EncryptionKeyRevocationAction',
-    'ExecutionEnvironment',
-    'IngressTraffic',
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/build.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/build.py
deleted file mode 100644
index 992da381488d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/build.py
+++ /dev/null
@@ -1,253 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.longrunning import operations_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'SubmitBuildRequest',
-        'SubmitBuildResponse',
-        'StorageSource',
-    },
-)
-
-
-class SubmitBuildRequest(proto.Message):
-    r"""Request message for submitting a Build.
-
-    This message has `oneof`_ fields (mutually exclusive fields).
-    For each oneof, at most one member field can be set at the same time.
-    Setting any member of the oneof automatically clears all other
-    members.
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        parent (str):
-            Required. The project and location to build in. Location
-            must be a region, e.g., 'us-central1' or 'global' if the
-            global builder is to be used. Format:
-            ``projects/{project}/locations/{location}``
-        storage_source (google.cloud.run_v2.types.StorageSource):
-            Required. Source for the build.
-
-            This field is a member of `oneof`_ ``source``.
-        image_uri (str):
-            Required. Artifact Registry URI to store the
-            built image.
-        buildpack_build (google.cloud.run_v2.types.SubmitBuildRequest.BuildpacksBuild):
-            Build the source using Buildpacks.
-
-            This field is a member of `oneof`_ ``build_type``.
-        docker_build (google.cloud.run_v2.types.SubmitBuildRequest.DockerBuild):
-            Build the source using Docker. This means the
-            source has a Dockerfile.
-
-            This field is a member of `oneof`_ ``build_type``.
-        service_account (str):
-            Optional. The service account to use for the
-            build. If not set, the default Cloud Build
-            service account for the project will be used.
-        worker_pool (str):
-            Optional. Name of the Cloud Build Custom Worker Pool that
-            should be used to build the function. The format of this
-            field is
-            ``projects/{project}/locations/{region}/workerPools/{workerPool}``
-            where ``{project}`` and ``{region}`` are the project id and
-            region respectively where the worker pool is defined and
-            ``{workerPool}`` is the short name of the worker pool.
-        tags (MutableSequence[str]):
-            Optional. Additional tags to annotate the
-            build.
-    """
-
-    class DockerBuild(proto.Message):
-        r"""Build the source using Docker. This means the source has a
-        Dockerfile.
-
-        """
-
-    class BuildpacksBuild(proto.Message):
-        r"""Build the source using Buildpacks.
-
-        Attributes:
-            runtime (str):
-                The runtime name, e.g. 'go113'. Leave blank
-                for generic builds.
-            function_target (str):
-                Optional. Name of the function target if the
-                source is a function source. Required for
-                function builds.
-            cache_image_uri (str):
-                Optional. cache_image_uri is the GCR/AR URL where the cache
-                image will be stored. cache_image_uri is optional and
-                omitting it will disable caching. This URL must be stable
-                across builds. It is used to derive a build-specific
-                temporary URL by substituting the tag with the build ID. The
-                build will clean up the temporary image on a best-effort
-                basis.
-            base_image (str):
-                Optional. The base image used to opt into
-                automatic base image updates.
-            environment_variables (MutableMapping[str, str]):
-                Optional. User-provided build-time
-                environment variables.
-            enable_automatic_updates (bool):
-                Optional. Whether or not the application
-                container will be enrolled in automatic base
-                image updates. When true, the application will
-                be built on a scratch base image, so the base
-                layers can be appended at run time.
-        """
-
-        runtime: str = proto.Field(
-            proto.STRING,
-            number=1,
-        )
-        function_target: str = proto.Field(
-            proto.STRING,
-            number=2,
-        )
-        cache_image_uri: str = proto.Field(
-            proto.STRING,
-            number=3,
-        )
-        base_image: str = proto.Field(
-            proto.STRING,
-            number=4,
-        )
-        environment_variables: MutableMapping[str, str] = proto.MapField(
-            proto.STRING,
-            proto.STRING,
-            number=5,
-        )
-        enable_automatic_updates: bool = proto.Field(
-            proto.BOOL,
-            number=6,
-        )
-
-    parent: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    storage_source: 'StorageSource' = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        oneof='source',
-        message='StorageSource',
-    )
-    image_uri: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    buildpack_build: BuildpacksBuild = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        oneof='build_type',
-        message=BuildpacksBuild,
-    )
-    docker_build: DockerBuild = proto.Field(
-        proto.MESSAGE,
-        number=5,
-        oneof='build_type',
-        message=DockerBuild,
-    )
-    service_account: str = proto.Field(
-        proto.STRING,
-        number=6,
-    )
-    worker_pool: str = proto.Field(
-        proto.STRING,
-        number=7,
-    )
-    tags: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=8,
-    )
-
-
-class SubmitBuildResponse(proto.Message):
-    r"""Response message for submitting a Build.
-
-    Attributes:
-        build_operation (google.longrunning.operations_pb2.Operation):
-            Cloud Build operation to be polled via
-            CloudBuild API.
-        base_image_uri (str):
-            URI of the base builder image in Artifact
-            Registry being used in the build. Used to opt
-            into automatic base image updates.
-        base_image_warning (str):
-            Warning message for the base image.
-    """
-
-    build_operation: operations_pb2.Operation = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message=operations_pb2.Operation,
-    )
-    base_image_uri: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    base_image_warning: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-
-
-class StorageSource(proto.Message):
-    r"""Location of the source in an archive file in Google Cloud
-    Storage.
-
-    Attributes:
-        bucket (str):
-            Required. Google Cloud Storage bucket containing the source
-            (see `Bucket Name
-            Requirements <https://cloud.google.com/storage/docs/bucket-naming#requirements>`__).
-        object_ (str):
-            Required. Google Cloud Storage object containing the source.
-
-            This object must be a gzipped archive file (``.tar.gz``)
-            containing source to build.
-        generation (int):
-            Optional. Google Cloud Storage generation for
-            the object. If the generation is omitted, the
-            latest generation will be used.
-    """
-
-    bucket: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    object_: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    generation: int = proto.Field(
-        proto.INT64,
-        number=3,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/condition.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/condition.py
deleted file mode 100644
index 0b1df70aa130..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/condition.py
+++ /dev/null
@@ -1,306 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.protobuf import timestamp_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'Condition',
-    },
-)
-
-
-class Condition(proto.Message):
-    r"""Defines a status condition for a resource.
-
-    This message has `oneof`_ fields (mutually exclusive fields).
-    For each oneof, at most one member field can be set at the same time.
-    Setting any member of the oneof automatically clears all other
-    members.
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        type_ (str):
-            type is used to communicate the status of the reconciliation
-            process. See also:
-            https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting
-            Types common to all resources include:
-
-            -  "Ready": True when the Resource is ready.
-        state (google.cloud.run_v2.types.Condition.State):
-            State of the condition.
-        message (str):
-            Human readable message indicating details
-            about the current status.
-        last_transition_time (google.protobuf.timestamp_pb2.Timestamp):
-            Last time the condition transitioned from one
-            status to another.
-        severity (google.cloud.run_v2.types.Condition.Severity):
-            How to interpret failures of this condition,
-            one of Error, Warning, Info
-        reason (google.cloud.run_v2.types.Condition.CommonReason):
-            Output only. A common (service-level) reason
-            for this condition.
-
-            This field is a member of `oneof`_ ``reasons``.
-        revision_reason (google.cloud.run_v2.types.Condition.RevisionReason):
-            Output only. A reason for the revision
-            condition.
-
-            This field is a member of `oneof`_ ``reasons``.
-        execution_reason (google.cloud.run_v2.types.Condition.ExecutionReason):
-            Output only. A reason for the execution
-            condition.
-
-            This field is a member of `oneof`_ ``reasons``.
-    """
-    class State(proto.Enum):
-        r"""Represents the possible Condition states.
-
-        Values:
-            STATE_UNSPECIFIED (0):
-                The default value. This value is used if the
-                state is omitted.
-            CONDITION_PENDING (1):
-                Transient state: Reconciliation has not
-                started yet.
-            CONDITION_RECONCILING (2):
-                Transient state: reconciliation is still in
-                progress.
-            CONDITION_FAILED (3):
-                Terminal state: Reconciliation did not
-                succeed.
-            CONDITION_SUCCEEDED (4):
-                Terminal state: Reconciliation completed
-                successfully.
-        """
-        STATE_UNSPECIFIED = 0
-        CONDITION_PENDING = 1
-        CONDITION_RECONCILING = 2
-        CONDITION_FAILED = 3
-        CONDITION_SUCCEEDED = 4
-
-    class Severity(proto.Enum):
-        r"""Represents the severity of the condition failures.
-
-        Values:
-            SEVERITY_UNSPECIFIED (0):
-                Unspecified severity
-            ERROR (1):
-                Error severity.
-            WARNING (2):
-                Warning severity.
-            INFO (3):
-                Info severity.
-        """
-        SEVERITY_UNSPECIFIED = 0
-        ERROR = 1
-        WARNING = 2
-        INFO = 3
-
-    class CommonReason(proto.Enum):
-        r"""Reasons common to all types of conditions.
-
-        Values:
-            COMMON_REASON_UNDEFINED (0):
-                Default value.
-            UNKNOWN (1):
-                Reason unknown. Further details will be in
-                message.
-            REVISION_FAILED (3):
-                Revision creation process failed.
-            PROGRESS_DEADLINE_EXCEEDED (4):
-                Timed out waiting for completion.
-            CONTAINER_MISSING (6):
-                The container image path is incorrect.
-            CONTAINER_PERMISSION_DENIED (7):
-                Insufficient permissions on the container
-                image.
-            CONTAINER_IMAGE_UNAUTHORIZED (8):
-                Container image is not authorized by policy.
-            CONTAINER_IMAGE_AUTHORIZATION_CHECK_FAILED (9):
-                Container image policy authorization check
-                failed.
-            ENCRYPTION_KEY_PERMISSION_DENIED (10):
-                Insufficient permissions on encryption key.
-            ENCRYPTION_KEY_CHECK_FAILED (11):
-                Permission check on encryption key failed.
-            SECRETS_ACCESS_CHECK_FAILED (12):
-                At least one Access check on secrets failed.
-            WAITING_FOR_OPERATION (13):
-                Waiting for operation to complete.
-            IMMEDIATE_RETRY (14):
-                System will retry immediately.
-            POSTPONED_RETRY (15):
-                System will retry later; current attempt
-                failed.
-            INTERNAL (16):
-                An internal error occurred. Further
-                information may be in the message.
-        """
-        COMMON_REASON_UNDEFINED = 0
-        UNKNOWN = 1
-        REVISION_FAILED = 3
-        PROGRESS_DEADLINE_EXCEEDED = 4
-        CONTAINER_MISSING = 6
-        CONTAINER_PERMISSION_DENIED = 7
-        CONTAINER_IMAGE_UNAUTHORIZED = 8
-        CONTAINER_IMAGE_AUTHORIZATION_CHECK_FAILED = 9
-        ENCRYPTION_KEY_PERMISSION_DENIED = 10
-        ENCRYPTION_KEY_CHECK_FAILED = 11
-        SECRETS_ACCESS_CHECK_FAILED = 12
-        WAITING_FOR_OPERATION = 13
-        IMMEDIATE_RETRY = 14
-        POSTPONED_RETRY = 15
-        INTERNAL = 16
-
-    class RevisionReason(proto.Enum):
-        r"""Reasons specific to Revision resource.
-
-        Values:
-            REVISION_REASON_UNDEFINED (0):
-                Default value.
-            PENDING (1):
-                Revision in Pending state.
-            RESERVE (2):
-                Revision is in Reserve state.
-            RETIRED (3):
-                Revision is Retired.
-            RETIRING (4):
-                Revision is being retired.
-            RECREATING (5):
-                Revision is being recreated.
-            HEALTH_CHECK_CONTAINER_ERROR (6):
-                There was a health check error.
-            CUSTOMIZED_PATH_RESPONSE_PENDING (7):
-                Health check failed due to user error from
-                customized path of the container. System will
-                retry.
-            MIN_INSTANCES_NOT_PROVISIONED (8):
-                A revision with min_instance_count > 0 was created and is
-                reserved, but it was not configured to serve traffic, so
-                it's not live. This can also happen momentarily during
-                traffic migration.
-            ACTIVE_REVISION_LIMIT_REACHED (9):
-                The maximum allowed number of active
-                revisions has been reached.
-            NO_DEPLOYMENT (10):
-                There was no deployment defined.
-                This value is no longer used, but Services
-                created in older versions of the API might
-                contain this value.
-            HEALTH_CHECK_SKIPPED (11):
-                A revision's container has no port specified
-                since the revision is of a manually scaled
-                service with 0 instance count
-            MIN_INSTANCES_WARMING (12):
-                A revision with min_instance_count > 0 was created and is
-                waiting for enough instances to begin a traffic migration.
-        """
-        REVISION_REASON_UNDEFINED = 0
-        PENDING = 1
-        RESERVE = 2
-        RETIRED = 3
-        RETIRING = 4
-        RECREATING = 5
-        HEALTH_CHECK_CONTAINER_ERROR = 6
-        CUSTOMIZED_PATH_RESPONSE_PENDING = 7
-        MIN_INSTANCES_NOT_PROVISIONED = 8
-        ACTIVE_REVISION_LIMIT_REACHED = 9
-        NO_DEPLOYMENT = 10
-        HEALTH_CHECK_SKIPPED = 11
-        MIN_INSTANCES_WARMING = 12
-
-    class ExecutionReason(proto.Enum):
-        r"""Reasons specific to Execution resource.
-
-        Values:
-            EXECUTION_REASON_UNDEFINED (0):
-                Default value.
-            JOB_STATUS_SERVICE_POLLING_ERROR (1):
-                Internal system error getting execution
-                status. System will retry.
-            NON_ZERO_EXIT_CODE (2):
-                A task reached its retry limit and the last
-                attempt failed due to the user container exiting
-                with a non-zero exit code.
-            CANCELLED (3):
-                The execution was cancelled by users.
-            CANCELLING (4):
-                The execution is in the process of being
-                cancelled.
-            DELETED (5):
-                The execution was deleted.
-        """
-        EXECUTION_REASON_UNDEFINED = 0
-        JOB_STATUS_SERVICE_POLLING_ERROR = 1
-        NON_ZERO_EXIT_CODE = 2
-        CANCELLED = 3
-        CANCELLING = 4
-        DELETED = 5
-
-    type_: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    state: State = proto.Field(
-        proto.ENUM,
-        number=2,
-        enum=State,
-    )
-    message: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    last_transition_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        message=timestamp_pb2.Timestamp,
-    )
-    severity: Severity = proto.Field(
-        proto.ENUM,
-        number=5,
-        enum=Severity,
-    )
-    reason: CommonReason = proto.Field(
-        proto.ENUM,
-        number=6,
-        oneof='reasons',
-        enum=CommonReason,
-    )
-    revision_reason: RevisionReason = proto.Field(
-        proto.ENUM,
-        number=9,
-        oneof='reasons',
-        enum=RevisionReason,
-    )
-    execution_reason: ExecutionReason = proto.Field(
-        proto.ENUM,
-        number=11,
-        oneof='reasons',
-        enum=ExecutionReason,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution.py
deleted file mode 100644
index 60349f73e868..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution.py
+++ /dev/null
@@ -1,437 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import task_template
-from google.protobuf import timestamp_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'GetExecutionRequest',
-        'ListExecutionsRequest',
-        'ListExecutionsResponse',
-        'DeleteExecutionRequest',
-        'CancelExecutionRequest',
-        'Execution',
-    },
-)
-
-
-class GetExecutionRequest(proto.Message):
-    r"""Request message for obtaining a Execution by its full name.
-
-    Attributes:
-        name (str):
-            Required. The full name of the Execution. Format:
-            ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-            where ``{project}`` can be project id or number.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class ListExecutionsRequest(proto.Message):
-    r"""Request message for retrieving a list of Executions.
-
-    Attributes:
-        parent (str):
-            Required. The Execution from which the Executions should be
-            listed. To list all Executions across Jobs, use "-" instead
-            of Job name. Format:
-            ``projects/{project}/locations/{location}/jobs/{job}``,
-            where ``{project}`` can be project id or number.
-        page_size (int):
-            Maximum number of Executions to return in
-            this call.
-        page_token (str):
-            A page token received from a previous call to
-            ListExecutions. All other parameters must match.
-        show_deleted (bool):
-            If true, returns deleted (but unexpired)
-            resources along with active ones.
-    """
-
-    parent: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    page_size: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-    page_token: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    show_deleted: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class ListExecutionsResponse(proto.Message):
-    r"""Response message containing a list of Executions.
-
-    Attributes:
-        executions (MutableSequence[google.cloud.run_v2.types.Execution]):
-            The resulting list of Executions.
-        next_page_token (str):
-            A token indicating there are more items than page_size. Use
-            it in the next ListExecutions request to continue.
-    """
-
-    @property
-    def raw_page(self):
-        return self
-
-    executions: MutableSequence['Execution'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=1,
-        message='Execution',
-    )
-    next_page_token: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class DeleteExecutionRequest(proto.Message):
-    r"""Request message for deleting an Execution.
-
-    Attributes:
-        name (str):
-            Required. The name of the Execution to delete. Format:
-            ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-            where ``{project}`` can be project id or number.
-        validate_only (bool):
-            Indicates that the request should be
-            validated without actually deleting any
-            resources.
-        etag (str):
-            A system-generated fingerprint for this
-            version of the resource. This may be used to
-            detect modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=2,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-
-
-class CancelExecutionRequest(proto.Message):
-    r"""Request message for deleting an Execution.
-
-    Attributes:
-        name (str):
-            Required. The name of the Execution to cancel. Format:
-            ``projects/{project}/locations/{location}/jobs/{job}/executions/{execution}``,
-            where ``{project}`` can be project id or number.
-        validate_only (bool):
-            Indicates that the request should be
-            validated without actually cancelling any
-            resources.
-        etag (str):
-            A system-generated fingerprint for this
-            version of the resource. This may be used to
-            detect modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=2,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-
-
-class Execution(proto.Message):
-    r"""Execution represents the configuration of a single execution.
-    A execution an immutable resource that references a container
-    image which is run to completion.
-
-    Attributes:
-        name (str):
-            Output only. The unique name of this
-            Execution.
-        uid (str):
-            Output only. Server assigned unique
-            identifier for the Execution. The value is a
-            UUID4 string and guaranteed to remain unchanged
-            until the resource is deleted.
-        generation (int):
-            Output only. A number that monotonically
-            increases every time the user modifies the
-            desired state.
-        labels (MutableMapping[str, str]):
-            Output only. Unstructured key value map that
-            can be used to organize and categorize objects.
-            User-provided labels are shared with Google's
-            billing system, so they can be used to filter,
-            or break down billing charges by team,
-            component, environment, state, etc. For more
-            information, visit
-            https://cloud.google.com/resource-manager/docs/creating-managing-labels
-            or
-            https://cloud.google.com/run/docs/configuring/labels
-        annotations (MutableMapping[str, str]):
-            Output only. Unstructured key value map that
-            may be set by external tools to store and
-            arbitrary metadata. They are not queryable and
-            should be preserved when modifying objects.
-        create_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. Represents time when the
-            execution was acknowledged by the execution
-            controller. It is not guaranteed to be set in
-            happens-before order across separate operations.
-        start_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. Represents time when the
-            execution started to run. It is not guaranteed
-            to be set in happens-before order across
-            separate operations.
-        completion_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. Represents time when the
-            execution was completed. It is not guaranteed to
-            be set in happens-before order across separate
-            operations.
-        update_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The last-modified time.
-        delete_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. For a deleted resource, the
-            deletion time. It is only populated as a
-            response to a Delete request.
-        expire_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. For a deleted resource, the time
-            after which it will be permamently deleted. It
-            is only populated as a response to a Delete
-            request.
-        launch_stage (google.api.launch_stage_pb2.LaunchStage):
-            The least stable launch stage needed to create this
-            resource, as defined by `Google Cloud Platform Launch
-            Stages <https://cloud.google.com/terms/launch-stages>`__.
-            Cloud Run supports ``ALPHA``, ``BETA``, and ``GA``.
-
-            .. raw:: html
-
-                <p>Note that this value might not be what was used
-                as input. For example, if ALPHA was provided as input in the parent
-                resource, but only BETA and GA-level features are were, this field will be
-                BETA.
-        job (str):
-            Output only. The name of the parent Job.
-        parallelism (int):
-            Output only. Specifies the maximum desired number of tasks
-            the execution should run at any given time. Must be <=
-            task_count. The actual number of tasks running in steady
-            state will be less than this number when ((.spec.task_count
-            - .status.successful) < .spec.parallelism), i.e. when the
-            work left to do is less than max parallelism.
-        task_count (int):
-            Output only. Specifies the desired number of
-            tasks the execution should run. Setting to 1
-            means that parallelism is limited to 1 and the
-            success of that task signals the success of the
-            execution.
-        template (google.cloud.run_v2.types.TaskTemplate):
-            Output only. The template used to create
-            tasks for this execution.
-        reconciling (bool):
-            Output only. Indicates whether the resource's reconciliation
-            is still in progress. See comments in ``Job.reconciling``
-            for additional information on reconciliation process in
-            Cloud Run.
-        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
-            Output only. The Condition of this Execution,
-            containing its readiness status, and detailed
-            error information in case it did not reach the
-            desired state.
-        observed_generation (int):
-            Output only. The generation of this Execution. See comments
-            in ``reconciling`` for additional information on
-            reconciliation process in Cloud Run.
-        running_count (int):
-            Output only. The number of actively running
-            tasks.
-        succeeded_count (int):
-            Output only. The number of tasks which
-            reached phase Succeeded.
-        failed_count (int):
-            Output only. The number of tasks which
-            reached phase Failed.
-        cancelled_count (int):
-            Output only. The number of tasks which
-            reached phase Cancelled.
-        retried_count (int):
-            Output only. The number of tasks which have
-            retried at least once.
-        log_uri (str):
-            Output only. URI where logs for this
-            execution can be found in Cloud Console.
-        satisfies_pzs (bool):
-            Output only. Reserved for future use.
-        etag (str):
-            Output only. A system-generated fingerprint
-            for this version of the resource. May be used to
-            detect modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    uid: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    generation: int = proto.Field(
-        proto.INT64,
-        number=3,
-    )
-    labels: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=4,
-    )
-    annotations: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=5,
-    )
-    create_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        message=timestamp_pb2.Timestamp,
-    )
-    start_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=22,
-        message=timestamp_pb2.Timestamp,
-    )
-    completion_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=7,
-        message=timestamp_pb2.Timestamp,
-    )
-    update_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=8,
-        message=timestamp_pb2.Timestamp,
-    )
-    delete_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=9,
-        message=timestamp_pb2.Timestamp,
-    )
-    expire_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=10,
-        message=timestamp_pb2.Timestamp,
-    )
-    launch_stage: launch_stage_pb2.LaunchStage = proto.Field(
-        proto.ENUM,
-        number=11,
-        enum=launch_stage_pb2.LaunchStage,
-    )
-    job: str = proto.Field(
-        proto.STRING,
-        number=12,
-    )
-    parallelism: int = proto.Field(
-        proto.INT32,
-        number=13,
-    )
-    task_count: int = proto.Field(
-        proto.INT32,
-        number=14,
-    )
-    template: task_template.TaskTemplate = proto.Field(
-        proto.MESSAGE,
-        number=15,
-        message=task_template.TaskTemplate,
-    )
-    reconciling: bool = proto.Field(
-        proto.BOOL,
-        number=16,
-    )
-    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=17,
-        message=condition.Condition,
-    )
-    observed_generation: int = proto.Field(
-        proto.INT64,
-        number=18,
-    )
-    running_count: int = proto.Field(
-        proto.INT32,
-        number=19,
-    )
-    succeeded_count: int = proto.Field(
-        proto.INT32,
-        number=20,
-    )
-    failed_count: int = proto.Field(
-        proto.INT32,
-        number=21,
-    )
-    cancelled_count: int = proto.Field(
-        proto.INT32,
-        number=24,
-    )
-    retried_count: int = proto.Field(
-        proto.INT32,
-        number=25,
-    )
-    log_uri: str = proto.Field(
-        proto.STRING,
-        number=26,
-    )
-    satisfies_pzs: bool = proto.Field(
-        proto.BOOL,
-        number=27,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=99,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution_template.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution_template.py
deleted file mode 100644
index 06f44245b12d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/execution_template.py
+++ /dev/null
@@ -1,114 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.cloud.run_v2.types import task_template
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'ExecutionTemplate',
-    },
-)
-
-
-class ExecutionTemplate(proto.Message):
-    r"""ExecutionTemplate describes the data an execution should have
-    when created from a template.
-
-    Attributes:
-        labels (MutableMapping[str, str]):
-            Unstructured key value map that can be used to organize and
-            categorize objects. User-provided labels are shared with
-            Google's billing system, so they can be used to filter, or
-            break down billing charges by team, component, environment,
-            state, etc. For more information, visit
-            https://cloud.google.com/resource-manager/docs/creating-managing-labels
-            or https://cloud.google.com/run/docs/configuring/labels.
-
-            .. raw:: html
-
-                <p>Cloud Run API v2 does not support labels with `run.googleapis.com`,
-                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
-                namespaces, and they will be rejected. All system labels in v1 now have a
-                corresponding field in v2 ExecutionTemplate.
-        annotations (MutableMapping[str, str]):
-            Unstructured key value map that may be set by external tools
-            to store and arbitrary metadata. They are not queryable and
-            should be preserved when modifying objects.
-
-            .. raw:: html
-
-                <p>Cloud Run API v2 does not support annotations with `run.googleapis.com`,
-                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
-                namespaces, and they will be rejected. All system annotations in v1 now
-                have a corresponding field in v2 ExecutionTemplate.
-
-            .. raw:: html
-
-                <p>This field follows Kubernetes annotations' namespacing, limits, and
-                rules.
-        parallelism (int):
-            Specifies the maximum desired number of tasks the execution
-            should run at given time. Must be <= task_count. When the
-            job is run, if this field is 0 or unset, the maximum
-            possible value will be used for that execution. The actual
-            number of tasks running in steady state will be less than
-            this number when there are fewer tasks waiting to be
-            completed remaining, i.e. when the work left to do is less
-            than max parallelism.
-        task_count (int):
-            Specifies the desired number of tasks the
-            execution should run. Setting to 1 means that
-            parallelism is limited to 1 and the success of
-            that task signals the success of the execution.
-            Defaults to 1.
-        template (google.cloud.run_v2.types.TaskTemplate):
-            Required. Describes the task(s) that will be
-            created when executing an execution.
-    """
-
-    labels: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=1,
-    )
-    annotations: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=2,
-    )
-    parallelism: int = proto.Field(
-        proto.INT32,
-        number=3,
-    )
-    task_count: int = proto.Field(
-        proto.INT32,
-        number=4,
-    )
-    template: task_template.TaskTemplate = proto.Field(
-        proto.MESSAGE,
-        number=5,
-        message=task_template.TaskTemplate,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/job.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/job.py
deleted file mode 100644
index cce3b87b7c0e..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/job.py
+++ /dev/null
@@ -1,704 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import execution_template
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import vendor_settings
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'CreateJobRequest',
-        'GetJobRequest',
-        'UpdateJobRequest',
-        'ListJobsRequest',
-        'ListJobsResponse',
-        'DeleteJobRequest',
-        'RunJobRequest',
-        'Job',
-        'ExecutionReference',
-    },
-)
-
-
-class CreateJobRequest(proto.Message):
-    r"""Request message for creating a Job.
-
-    Attributes:
-        parent (str):
-            Required. The location and project in which
-            this Job should be created. Format:
-            projects/{project}/locations/{location}, where
-            {project} can be project id or number.
-        job (google.cloud.run_v2.types.Job):
-            Required. The Job instance to create.
-        job_id (str):
-            Required. The unique identifier for the Job. The name of the
-            job becomes {parent}/jobs/{job_id}.
-        validate_only (bool):
-            Indicates that the request should be
-            validated and default values populated, without
-            persisting the request or creating any
-            resources.
-    """
-
-    parent: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    job: 'Job' = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        message='Job',
-    )
-    job_id: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class GetJobRequest(proto.Message):
-    r"""Request message for obtaining a Job by its full name.
-
-    Attributes:
-        name (str):
-            Required. The full name of the Job.
-            Format:
-            projects/{project}/locations/{location}/jobs/{job},
-            where {project} can be project id or number.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class UpdateJobRequest(proto.Message):
-    r"""Request message for updating a Job.
-
-    Attributes:
-        job (google.cloud.run_v2.types.Job):
-            Required. The Job to be updated.
-        validate_only (bool):
-            Indicates that the request should be
-            validated and default values populated, without
-            persisting the request or updating any
-            resources.
-        allow_missing (bool):
-            Optional. If set to true, and if the Job does
-            not exist, it will create a new one. Caller must
-            have both create and update permissions for this
-            call if this is set to true.
-    """
-
-    job: 'Job' = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message='Job',
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=3,
-    )
-    allow_missing: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class ListJobsRequest(proto.Message):
-    r"""Request message for retrieving a list of Jobs.
-
-    Attributes:
-        parent (str):
-            Required. The location and project to list
-            resources on. Format:
-            projects/{project}/locations/{location}, where
-            {project} can be project id or number.
-        page_size (int):
-            Maximum number of Jobs to return in this
-            call.
-        page_token (str):
-            A page token received from a previous call to
-            ListJobs. All other parameters must match.
-        show_deleted (bool):
-            If true, returns deleted (but unexpired)
-            resources along with active ones.
-    """
-
-    parent: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    page_size: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-    page_token: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    show_deleted: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class ListJobsResponse(proto.Message):
-    r"""Response message containing a list of Jobs.
-
-    Attributes:
-        jobs (MutableSequence[google.cloud.run_v2.types.Job]):
-            The resulting list of Jobs.
-        next_page_token (str):
-            A token indicating there are more items than page_size. Use
-            it in the next ListJobs request to continue.
-    """
-
-    @property
-    def raw_page(self):
-        return self
-
-    jobs: MutableSequence['Job'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=1,
-        message='Job',
-    )
-    next_page_token: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class DeleteJobRequest(proto.Message):
-    r"""Request message to delete a Job by its full name.
-
-    Attributes:
-        name (str):
-            Required. The full name of the Job.
-            Format:
-            projects/{project}/locations/{location}/jobs/{job},
-            where {project} can be project id or number.
-        validate_only (bool):
-            Indicates that the request should be
-            validated without actually deleting any
-            resources.
-        etag (str):
-            A system-generated fingerprint for this
-            version of the resource. May be used to detect
-            modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=3,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=4,
-    )
-
-
-class RunJobRequest(proto.Message):
-    r"""Request message to create a new Execution of a Job.
-
-    Attributes:
-        name (str):
-            Required. The full name of the Job.
-            Format:
-            projects/{project}/locations/{location}/jobs/{job},
-            where {project} can be project id or number.
-        validate_only (bool):
-            Indicates that the request should be
-            validated without actually deleting any
-            resources.
-        etag (str):
-            A system-generated fingerprint for this
-            version of the resource. May be used to detect
-            modification conflict during updates.
-        overrides (google.cloud.run_v2.types.RunJobRequest.Overrides):
-            Overrides specification for a given execution
-            of a job. If provided, overrides will be applied
-            to update the execution or task spec.
-    """
-
-    class Overrides(proto.Message):
-        r"""RunJob Overrides that contains Execution fields to be
-        overridden.
-
-        Attributes:
-            container_overrides (MutableSequence[google.cloud.run_v2.types.RunJobRequest.Overrides.ContainerOverride]):
-                Per container override specification.
-            task_count (int):
-                Optional. The desired number of tasks the execution should
-                run. Will replace existing task_count value.
-            timeout (google.protobuf.duration_pb2.Duration):
-                Duration in seconds the task may be active before the system
-                will actively try to mark it failed and kill associated
-                containers. Will replace existing timeout_seconds value.
-        """
-
-        class ContainerOverride(proto.Message):
-            r"""Per-container override specification.
-
-            Attributes:
-                name (str):
-                    The name of the container specified as a DNS_LABEL.
-                args (MutableSequence[str]):
-                    Optional. Arguments to the entrypoint. Will
-                    replace existing args for override.
-                env (MutableSequence[google.cloud.run_v2.types.EnvVar]):
-                    List of environment variables to set in the
-                    container. Will be merged with existing env for
-                    override.
-                clear_args (bool):
-                    Optional. True if the intention is to clear
-                    out existing args list.
-            """
-
-            name: str = proto.Field(
-                proto.STRING,
-                number=1,
-            )
-            args: MutableSequence[str] = proto.RepeatedField(
-                proto.STRING,
-                number=2,
-            )
-            env: MutableSequence[k8s_min.EnvVar] = proto.RepeatedField(
-                proto.MESSAGE,
-                number=3,
-                message=k8s_min.EnvVar,
-            )
-            clear_args: bool = proto.Field(
-                proto.BOOL,
-                number=4,
-            )
-
-        container_overrides: MutableSequence['RunJobRequest.Overrides.ContainerOverride'] = proto.RepeatedField(
-            proto.MESSAGE,
-            number=1,
-            message='RunJobRequest.Overrides.ContainerOverride',
-        )
-        task_count: int = proto.Field(
-            proto.INT32,
-            number=2,
-        )
-        timeout: duration_pb2.Duration = proto.Field(
-            proto.MESSAGE,
-            number=4,
-            message=duration_pb2.Duration,
-        )
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=2,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    overrides: Overrides = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        message=Overrides,
-    )
-
-
-class Job(proto.Message):
-    r"""Job represents the configuration of a single job, which
-    references a container image that is run to completion.
-
-    This message has `oneof`_ fields (mutually exclusive fields).
-    For each oneof, at most one member field can be set at the same time.
-    Setting any member of the oneof automatically clears all other
-    members.
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        name (str):
-            The fully qualified name of this Job.
-
-            Format:
-
-            projects/{project}/locations/{location}/jobs/{job}
-        uid (str):
-            Output only. Server assigned unique
-            identifier for the Execution. The value is a
-            UUID4 string and guaranteed to remain unchanged
-            until the resource is deleted.
-        generation (int):
-            Output only. A number that monotonically
-            increases every time the user modifies the
-            desired state.
-        labels (MutableMapping[str, str]):
-            Unstructured key value map that can be used to organize and
-            categorize objects. User-provided labels are shared with
-            Google's billing system, so they can be used to filter, or
-            break down billing charges by team, component, environment,
-            state, etc. For more information, visit
-            https://cloud.google.com/resource-manager/docs/creating-managing-labels
-            or https://cloud.google.com/run/docs/configuring/labels.
-
-            .. raw:: html
-
-                <p>Cloud Run API v2 does not support labels with `run.googleapis.com`,
-                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
-                namespaces, and they will be rejected. All system labels in v1 now have a
-                corresponding field in v2 Job.
-        annotations (MutableMapping[str, str]):
-            Unstructured key value map that may be set by external tools
-            to store and arbitrary metadata. They are not queryable and
-            should be preserved when modifying objects.
-
-            .. raw:: html
-
-                <p>Cloud Run API v2 does not support annotations with `run.googleapis.com`,
-                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
-                namespaces, and they will be rejected on new resources. All system
-                annotations in v1 now have a corresponding field in v2 Job.
-
-            .. raw:: html
-
-                <p>This field follows Kubernetes annotations' namespacing, limits, and
-                rules.
-        create_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The creation time.
-        update_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The last-modified time.
-        delete_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The deletion time. It is only
-            populated as a response to a Delete request.
-        expire_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. For a deleted resource, the time
-            after which it will be permamently deleted.
-        creator (str):
-            Output only. Email address of the
-            authenticated creator.
-        last_modifier (str):
-            Output only. Email address of the last
-            authenticated modifier.
-        client (str):
-            Arbitrary identifier for the API client.
-        client_version (str):
-            Arbitrary version identifier for the API
-            client.
-        launch_stage (google.api.launch_stage_pb2.LaunchStage):
-            The launch stage as defined by `Google Cloud Platform Launch
-            Stages <https://cloud.google.com/terms/launch-stages>`__.
-            Cloud Run supports ``ALPHA``, ``BETA``, and ``GA``. If no
-            value is specified, GA is assumed. Set the launch stage to a
-            preview stage on input to allow use of preview features in
-            that stage. On read (or output), describes whether the
-            resource uses preview features.
-
-            .. raw:: html
-
-                <p>
-                For example, if ALPHA is provided as input, but only BETA and GA-level
-                features are used, this field will be BETA on output.
-        binary_authorization (google.cloud.run_v2.types.BinaryAuthorization):
-            Settings for the Binary Authorization
-            feature.
-        template (google.cloud.run_v2.types.ExecutionTemplate):
-            Required. The template used to create
-            executions for this Job.
-        observed_generation (int):
-            Output only. The generation of this Job. See comments in
-            ``reconciling`` for additional information on reconciliation
-            process in Cloud Run.
-        terminal_condition (google.cloud.run_v2.types.Condition):
-            Output only. The Condition of this Job,
-            containing its readiness status, and detailed
-            error information in case it did not reach the
-            desired state.
-        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
-            Output only. The Conditions of all other associated
-            sub-resources. They contain additional diagnostics
-            information in case the Job does not reach its desired
-            state. See comments in ``reconciling`` for additional
-            information on reconciliation process in Cloud Run.
-        execution_count (int):
-            Output only. Number of executions created for
-            this job.
-        latest_created_execution (google.cloud.run_v2.types.ExecutionReference):
-            Output only. Name of the last created
-            execution.
-        reconciling (bool):
-            Output only. Returns true if the Job is currently being
-            acted upon by the system to bring it into the desired state.
-
-            When a new Job is created, or an existing one is updated,
-            Cloud Run will asynchronously perform all necessary steps to
-            bring the Job to the desired state. This process is called
-            reconciliation. While reconciliation is in process,
-            ``observed_generation`` and ``latest_succeeded_execution``,
-            will have transient values that might mismatch the intended
-            state: Once reconciliation is over (and this field is
-            false), there are two possible outcomes: reconciliation
-            succeeded and the state matches the Job, or there was an
-            error, and reconciliation failed. This state can be found in
-            ``terminal_condition.state``.
-
-            If reconciliation succeeded, the following fields will
-            match: ``observed_generation`` and ``generation``,
-            ``latest_succeeded_execution`` and
-            ``latest_created_execution``.
-
-            If reconciliation failed, ``observed_generation`` and
-            ``latest_succeeded_execution`` will have the state of the
-            last succeeded execution or empty for newly created Job.
-            Additional information on the failure can be found in
-            ``terminal_condition`` and ``conditions``.
-        satisfies_pzs (bool):
-            Output only. Reserved for future use.
-        start_execution_token (str):
-            A unique string used as a suffix creating a
-            new execution. The Job will become ready when
-            the execution is successfully started. The sum
-            of job name and token length must be fewer than
-            63 characters.
-
-            This field is a member of `oneof`_ ``create_execution``.
-        run_execution_token (str):
-            A unique string used as a suffix for creating
-            a new execution. The Job will become ready when
-            the execution is successfully completed. The sum
-            of job name and token length must be fewer than
-            63 characters.
-
-            This field is a member of `oneof`_ ``create_execution``.
-        etag (str):
-            Output only. A system-generated fingerprint
-            for this version of the resource. May be used to
-            detect modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    uid: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    generation: int = proto.Field(
-        proto.INT64,
-        number=3,
-    )
-    labels: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=4,
-    )
-    annotations: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=5,
-    )
-    create_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        message=timestamp_pb2.Timestamp,
-    )
-    update_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=7,
-        message=timestamp_pb2.Timestamp,
-    )
-    delete_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=8,
-        message=timestamp_pb2.Timestamp,
-    )
-    expire_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=9,
-        message=timestamp_pb2.Timestamp,
-    )
-    creator: str = proto.Field(
-        proto.STRING,
-        number=10,
-    )
-    last_modifier: str = proto.Field(
-        proto.STRING,
-        number=11,
-    )
-    client: str = proto.Field(
-        proto.STRING,
-        number=12,
-    )
-    client_version: str = proto.Field(
-        proto.STRING,
-        number=13,
-    )
-    launch_stage: launch_stage_pb2.LaunchStage = proto.Field(
-        proto.ENUM,
-        number=14,
-        enum=launch_stage_pb2.LaunchStage,
-    )
-    binary_authorization: vendor_settings.BinaryAuthorization = proto.Field(
-        proto.MESSAGE,
-        number=15,
-        message=vendor_settings.BinaryAuthorization,
-    )
-    template: execution_template.ExecutionTemplate = proto.Field(
-        proto.MESSAGE,
-        number=16,
-        message=execution_template.ExecutionTemplate,
-    )
-    observed_generation: int = proto.Field(
-        proto.INT64,
-        number=17,
-    )
-    terminal_condition: condition.Condition = proto.Field(
-        proto.MESSAGE,
-        number=18,
-        message=condition.Condition,
-    )
-    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=19,
-        message=condition.Condition,
-    )
-    execution_count: int = proto.Field(
-        proto.INT32,
-        number=20,
-    )
-    latest_created_execution: 'ExecutionReference' = proto.Field(
-        proto.MESSAGE,
-        number=22,
-        message='ExecutionReference',
-    )
-    reconciling: bool = proto.Field(
-        proto.BOOL,
-        number=23,
-    )
-    satisfies_pzs: bool = proto.Field(
-        proto.BOOL,
-        number=25,
-    )
-    start_execution_token: str = proto.Field(
-        proto.STRING,
-        number=26,
-        oneof='create_execution',
-    )
-    run_execution_token: str = proto.Field(
-        proto.STRING,
-        number=27,
-        oneof='create_execution',
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=99,
-    )
-
-
-class ExecutionReference(proto.Message):
-    r"""Reference to an Execution. Use /Executions.GetExecution with
-    the given name to get full execution including the latest
-    status.
-
-    Attributes:
-        name (str):
-            Name of the execution.
-        create_time (google.protobuf.timestamp_pb2.Timestamp):
-            Creation timestamp of the execution.
-        completion_time (google.protobuf.timestamp_pb2.Timestamp):
-            Creation timestamp of the execution.
-        delete_time (google.protobuf.timestamp_pb2.Timestamp):
-            The deletion time of the execution. It is
-            only populated as a response to a Delete
-            request.
-        completion_status (google.cloud.run_v2.types.ExecutionReference.CompletionStatus):
-            Status for the execution completion.
-    """
-    class CompletionStatus(proto.Enum):
-        r"""Possible execution completion status.
-
-        Values:
-            COMPLETION_STATUS_UNSPECIFIED (0):
-                The default value. This value is used if the
-                state is omitted.
-            EXECUTION_SUCCEEDED (1):
-                Job execution has succeeded.
-            EXECUTION_FAILED (2):
-                Job execution has failed.
-            EXECUTION_RUNNING (3):
-                Job execution is running normally.
-            EXECUTION_PENDING (4):
-                Waiting for backing resources to be
-                provisioned.
-            EXECUTION_CANCELLED (5):
-                Job execution has been cancelled by the user.
-        """
-        COMPLETION_STATUS_UNSPECIFIED = 0
-        EXECUTION_SUCCEEDED = 1
-        EXECUTION_FAILED = 2
-        EXECUTION_RUNNING = 3
-        EXECUTION_PENDING = 4
-        EXECUTION_CANCELLED = 5
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    create_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        message=timestamp_pb2.Timestamp,
-    )
-    completion_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=3,
-        message=timestamp_pb2.Timestamp,
-    )
-    delete_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=5,
-        message=timestamp_pb2.Timestamp,
-    )
-    completion_status: CompletionStatus = proto.Field(
-        proto.ENUM,
-        number=4,
-        enum=CompletionStatus,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/k8s_min.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/k8s_min.py
deleted file mode 100644
index 7cc12e71c3ed..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/k8s_min.py
+++ /dev/null
@@ -1,854 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'Container',
-        'ResourceRequirements',
-        'EnvVar',
-        'EnvVarSource',
-        'SecretKeySelector',
-        'ContainerPort',
-        'VolumeMount',
-        'Volume',
-        'SecretVolumeSource',
-        'VersionToPath',
-        'CloudSqlInstance',
-        'EmptyDirVolumeSource',
-        'NFSVolumeSource',
-        'GCSVolumeSource',
-        'Probe',
-        'HTTPGetAction',
-        'HTTPHeader',
-        'TCPSocketAction',
-        'GRPCAction',
-    },
-)
-
-
-class Container(proto.Message):
-    r"""A single application container.
-    This specifies both the container to run, the command to run in
-    the container and the arguments to supply to it.
-    Note that additional arguments can be supplied by the system to
-    the container at runtime.
-
-    Attributes:
-        name (str):
-            Name of the container specified as a DNS_LABEL (RFC 1123).
-        image (str):
-            Required. Name of the container image in
-            Dockerhub, Google Artifact Registry, or Google
-            Container Registry. If the host is not provided,
-            Dockerhub is assumed.
-        command (MutableSequence[str]):
-            Entrypoint array. Not executed within a
-            shell. The docker image's ENTRYPOINT is used if
-            this is not provided.
-        args (MutableSequence[str]):
-            Arguments to the entrypoint.
-            The docker image's CMD is used if this is not
-            provided.
-        env (MutableSequence[google.cloud.run_v2.types.EnvVar]):
-            List of environment variables to set in the
-            container.
-        resources (google.cloud.run_v2.types.ResourceRequirements):
-            Compute Resource requirements by this
-            container.
-        ports (MutableSequence[google.cloud.run_v2.types.ContainerPort]):
-            List of ports to expose from the container.
-            Only a single port can be specified. The
-            specified ports must be listening on all
-            interfaces (0.0.0.0) within the container to be
-            accessible.
-
-            If omitted, a port number will be chosen and
-            passed to the container through the PORT
-            environment variable for the container to listen
-            on.
-        volume_mounts (MutableSequence[google.cloud.run_v2.types.VolumeMount]):
-            Volume to mount into the container's
-            filesystem.
-        working_dir (str):
-            Container's working directory.
-            If not specified, the container runtime's
-            default will be used, which might be configured
-            in the container image.
-        liveness_probe (google.cloud.run_v2.types.Probe):
-            Periodic probe of container liveness.
-            Container will be restarted if the probe fails.
-        startup_probe (google.cloud.run_v2.types.Probe):
-            Startup probe of application within the
-            container. All other probes are disabled if a
-            startup probe is provided, until it succeeds.
-            Container will not be added to service endpoints
-            if the probe fails.
-        depends_on (MutableSequence[str]):
-            Names of the containers that must start
-            before this container.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    image: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    command: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=3,
-    )
-    args: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=4,
-    )
-    env: MutableSequence['EnvVar'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=5,
-        message='EnvVar',
-    )
-    resources: 'ResourceRequirements' = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        message='ResourceRequirements',
-    )
-    ports: MutableSequence['ContainerPort'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=7,
-        message='ContainerPort',
-    )
-    volume_mounts: MutableSequence['VolumeMount'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=8,
-        message='VolumeMount',
-    )
-    working_dir: str = proto.Field(
-        proto.STRING,
-        number=9,
-    )
-    liveness_probe: 'Probe' = proto.Field(
-        proto.MESSAGE,
-        number=10,
-        message='Probe',
-    )
-    startup_probe: 'Probe' = proto.Field(
-        proto.MESSAGE,
-        number=11,
-        message='Probe',
-    )
-    depends_on: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=12,
-    )
-
-
-class ResourceRequirements(proto.Message):
-    r"""ResourceRequirements describes the compute resource
-    requirements.
-
-    Attributes:
-        limits (MutableMapping[str, str]):
-            Only ``memory`` and ``cpu`` keys in the map are supported.
-
-            .. raw:: html
-
-                <p>Notes:
-                 * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4
-                CPU requires at least 2Gi of memory. For more information, go to
-                https://cloud.google.com/run/docs/configuring/cpu.
-                  * For supported 'memory' values and syntax, go to
-                 https://cloud.google.com/run/docs/configuring/memory-limits
-        cpu_idle (bool):
-            Determines whether CPU is only allocated
-            during requests (true by default). However, if
-            ResourceRequirements is set, the caller must
-            explicitly set this field to true to preserve
-            the default behavior.
-        startup_cpu_boost (bool):
-            Determines whether CPU should be boosted on
-            startup of a new container instance above the
-            requested CPU threshold, this can help reduce
-            cold-start latency.
-    """
-
-    limits: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=1,
-    )
-    cpu_idle: bool = proto.Field(
-        proto.BOOL,
-        number=2,
-    )
-    startup_cpu_boost: bool = proto.Field(
-        proto.BOOL,
-        number=3,
-    )
-
-
-class EnvVar(proto.Message):
-    r"""EnvVar represents an environment variable present in a
-    Container.
-
-    This message has `oneof`_ fields (mutually exclusive fields).
-    For each oneof, at most one member field can be set at the same time.
-    Setting any member of the oneof automatically clears all other
-    members.
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        name (str):
-            Required. Name of the environment variable.
-            Must not exceed 32768 characters.
-        value (str):
-            Literal value of the environment variable.
-            Defaults to "", and the maximum length is 32768
-            bytes. Variable references are not supported in
-            Cloud Run.
-
-            This field is a member of `oneof`_ ``values``.
-        value_source (google.cloud.run_v2.types.EnvVarSource):
-            Source for the environment variable's value.
-
-            This field is a member of `oneof`_ ``values``.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    value: str = proto.Field(
-        proto.STRING,
-        number=2,
-        oneof='values',
-    )
-    value_source: 'EnvVarSource' = proto.Field(
-        proto.MESSAGE,
-        number=3,
-        oneof='values',
-        message='EnvVarSource',
-    )
-
-
-class EnvVarSource(proto.Message):
-    r"""EnvVarSource represents a source for the value of an EnvVar.
-
-    Attributes:
-        secret_key_ref (google.cloud.run_v2.types.SecretKeySelector):
-            Selects a secret and a specific version from
-            Cloud Secret Manager.
-    """
-
-    secret_key_ref: 'SecretKeySelector' = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message='SecretKeySelector',
-    )
-
-
-class SecretKeySelector(proto.Message):
-    r"""SecretEnvVarSource represents a source for the value of an
-    EnvVar.
-
-    Attributes:
-        secret (str):
-            Required. The name of the secret in Cloud Secret Manager.
-            Format: {secret_name} if the secret is in the same project.
-            projects/{project}/secrets/{secret_name} if the secret is in
-            a different project.
-        version (str):
-            The Cloud Secret Manager secret version.
-            Can be 'latest' for the latest version, an
-            integer for a specific version, or a version
-            alias.
-    """
-
-    secret: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    version: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class ContainerPort(proto.Message):
-    r"""ContainerPort represents a network port in a single
-    container.
-
-    Attributes:
-        name (str):
-            If specified, used to specify which protocol
-            to use. Allowed values are "http1" and "h2c".
-        container_port (int):
-            Port number the container listens on. This must be a valid
-            TCP port number, 0 < container_port < 65536.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    container_port: int = proto.Field(
-        proto.INT32,
-        number=3,
-    )
-
-
-class VolumeMount(proto.Message):
-    r"""VolumeMount describes a mounting of a Volume within a
-    container.
-
-    Attributes:
-        name (str):
-            Required. This must match the Name of a
-            Volume.
-        mount_path (str):
-            Required. Path within the container at which the volume
-            should be mounted. Must not contain ':'. For Cloud SQL
-            volumes, it can be left empty, or must otherwise be
-            ``/cloudsql``. All instances defined in the Volume will be
-            available as ``/cloudsql/[instance]``. For more information
-            on Cloud SQL volumes, visit
-            https://cloud.google.com/sql/docs/mysql/connect-run
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    mount_path: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-
-
-class Volume(proto.Message):
-    r"""Volume represents a named volume in a container.
-
-    This message has `oneof`_ fields (mutually exclusive fields).
-    For each oneof, at most one member field can be set at the same time.
-    Setting any member of the oneof automatically clears all other
-    members.
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        name (str):
-            Required. Volume's name.
-        secret (google.cloud.run_v2.types.SecretVolumeSource):
-            Secret represents a secret that should
-            populate this volume.
-
-            This field is a member of `oneof`_ ``volume_type``.
-        cloud_sql_instance (google.cloud.run_v2.types.CloudSqlInstance):
-            For Cloud SQL volumes, contains the specific
-            instances that should be mounted. Visit
-            https://cloud.google.com/sql/docs/mysql/connect-run
-            for more information on how to connect Cloud SQL
-            and Cloud Run.
-
-            This field is a member of `oneof`_ ``volume_type``.
-        empty_dir (google.cloud.run_v2.types.EmptyDirVolumeSource):
-            Ephemeral storage used as a shared volume.
-
-            This field is a member of `oneof`_ ``volume_type``.
-        nfs (google.cloud.run_v2.types.NFSVolumeSource):
-            For NFS Voumes, contains the path to the nfs
-            Volume
-
-            This field is a member of `oneof`_ ``volume_type``.
-        gcs (google.cloud.run_v2.types.GCSVolumeSource):
-            Persistent storage backed by a Google Cloud
-            Storage bucket.
-
-            This field is a member of `oneof`_ ``volume_type``.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    secret: 'SecretVolumeSource' = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        oneof='volume_type',
-        message='SecretVolumeSource',
-    )
-    cloud_sql_instance: 'CloudSqlInstance' = proto.Field(
-        proto.MESSAGE,
-        number=3,
-        oneof='volume_type',
-        message='CloudSqlInstance',
-    )
-    empty_dir: 'EmptyDirVolumeSource' = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        oneof='volume_type',
-        message='EmptyDirVolumeSource',
-    )
-    nfs: 'NFSVolumeSource' = proto.Field(
-        proto.MESSAGE,
-        number=5,
-        oneof='volume_type',
-        message='NFSVolumeSource',
-    )
-    gcs: 'GCSVolumeSource' = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        oneof='volume_type',
-        message='GCSVolumeSource',
-    )
-
-
-class SecretVolumeSource(proto.Message):
-    r"""The secret's value will be presented as the content of a file
-    whose name is defined in the item path. If no items are defined,
-    the name of the file is the secret.
-
-    Attributes:
-        secret (str):
-            Required. The name of the secret in Cloud
-            Secret Manager. Format: {secret} if the secret
-            is in the same project.
-            projects/{project}/secrets/{secret} if the
-            secret is in a different project.
-        items (MutableSequence[google.cloud.run_v2.types.VersionToPath]):
-            If unspecified, the volume will expose a file whose name is
-            the secret, relative to VolumeMount.mount_path. If
-            specified, the key will be used as the version to fetch from
-            Cloud Secret Manager and the path will be the name of the
-            file exposed in the volume. When items are defined, they
-            must specify a path and a version.
-        default_mode (int):
-            Integer representation of mode bits to use on created files
-            by default. Must be a value between 0000 and 0777 (octal),
-            defaulting to 0444. Directories within the path are not
-            affected by this setting.
-
-            Notes
-
-            -  Internally, a umask of 0222 will be applied to any
-               non-zero value.
-            -  This is an integer representation of the mode bits. So,
-               the octal integer value should look exactly as the chmod
-               numeric notation with a leading zero. Some examples: for
-               chmod 640 (u=rw,g=r), set to 0640 (octal) or 416
-               (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755
-               (octal) or 493 (base-10).
-            -  This might be in conflict with other options that affect
-               the file mode, like fsGroup, and the result can be other
-               mode bits set.
-
-            This might be in conflict with other options that affect the
-            file mode, like fsGroup, and as a result, other mode bits
-            could be set.
-    """
-
-    secret: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    items: MutableSequence['VersionToPath'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=2,
-        message='VersionToPath',
-    )
-    default_mode: int = proto.Field(
-        proto.INT32,
-        number=3,
-    )
-
-
-class VersionToPath(proto.Message):
-    r"""VersionToPath maps a specific version of a secret to a relative file
-    to mount to, relative to VolumeMount's mount_path.
-
-    Attributes:
-        path (str):
-            Required. The relative path of the secret in
-            the container.
-        version (str):
-            The Cloud Secret Manager secret version.
-            Can be 'latest' for the latest value, or an
-            integer or a secret alias for a specific
-            version.
-        mode (int):
-            Integer octal mode bits to use on this file, must be a value
-            between 01 and 0777 (octal). If 0 or not set, the Volume's
-            default mode will be used.
-
-            Notes
-
-            -  Internally, a umask of 0222 will be applied to any
-               non-zero value.
-            -  This is an integer representation of the mode bits. So,
-               the octal integer value should look exactly as the chmod
-               numeric notation with a leading zero. Some examples: for
-               chmod 640 (u=rw,g=r), set to 0640 (octal) or 416
-               (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755
-               (octal) or 493 (base-10).
-            -  This might be in conflict with other options that affect
-               the file mode, like fsGroup, and the result can be other
-               mode bits set.
-    """
-
-    path: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    version: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    mode: int = proto.Field(
-        proto.INT32,
-        number=3,
-    )
-
-
-class CloudSqlInstance(proto.Message):
-    r"""Represents a set of Cloud SQL instances. Each one will be available
-    under /cloudsql/[instance]. Visit
-    https://cloud.google.com/sql/docs/mysql/connect-run for more
-    information on how to connect Cloud SQL and Cloud Run.
-
-    Attributes:
-        instances (MutableSequence[str]):
-            The Cloud SQL instance connection names, as
-            can be found in
-            https://console.cloud.google.com/sql/instances.
-            Visit
-            https://cloud.google.com/sql/docs/mysql/connect-run
-            for more information on how to connect Cloud SQL
-            and Cloud Run. Format:
-
-            {project}:{location}:{instance}
-    """
-
-    instances: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=1,
-    )
-
-
-class EmptyDirVolumeSource(proto.Message):
-    r"""In memory (tmpfs) ephemeral storage.
-    It is ephemeral in the sense that when the sandbox is taken
-    down, the data is destroyed with it (it does not persist across
-    sandbox runs).
-
-    Attributes:
-        medium (google.cloud.run_v2.types.EmptyDirVolumeSource.Medium):
-            The medium on which the data is stored.
-            Acceptable values today is only MEMORY or none.
-            When none, the default will currently be backed
-            by memory but could change over time. +optional
-        size_limit (str):
-            Limit on the storage usable by this EmptyDir
-            volume. The size limit is also applicable for
-            memory medium. The maximum usage on memory
-            medium EmptyDir would be the minimum value
-            between the SizeLimit specified here and the sum
-            of memory limits of all containers. The default
-            is nil which means that the limit is undefined.
-            More info:
-
-            https://cloud.google.com/run/docs/configuring/in-memory-volumes#configure-volume.
-            Info in Kubernetes:
-
-            https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
-    """
-    class Medium(proto.Enum):
-        r"""The different types of medium supported for EmptyDir.
-
-        Values:
-            MEDIUM_UNSPECIFIED (0):
-                When not specified, falls back to the default
-                implementation which is currently in memory
-                (this may change over time).
-            MEMORY (1):
-                Explicitly set the EmptyDir to be in memory.
-                Uses tmpfs.
-        """
-        MEDIUM_UNSPECIFIED = 0
-        MEMORY = 1
-
-    medium: Medium = proto.Field(
-        proto.ENUM,
-        number=1,
-        enum=Medium,
-    )
-    size_limit: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class NFSVolumeSource(proto.Message):
-    r"""Represents an NFS mount.
-
-    Attributes:
-        server (str):
-            Hostname or IP address of the NFS server
-        path (str):
-            Path that is exported by the NFS server.
-        read_only (bool):
-            If true, the volume will be mounted as read
-            only for all mounts.
-    """
-
-    server: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    path: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    read_only: bool = proto.Field(
-        proto.BOOL,
-        number=3,
-    )
-
-
-class GCSVolumeSource(proto.Message):
-    r"""Represents a volume backed by a Cloud Storage bucket using
-    Cloud Storage FUSE.
-
-    Attributes:
-        bucket (str):
-            Cloud Storage Bucket name.
-        read_only (bool):
-            If true, the volume will be mounted as read
-            only for all mounts.
-        mount_options (MutableSequence[str]):
-            A list of additional flags to pass to the
-            gcsfuse CLI. Options should be specified without
-            the leading "--".
-    """
-
-    bucket: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    read_only: bool = proto.Field(
-        proto.BOOL,
-        number=2,
-    )
-    mount_options: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=3,
-    )
-
-
-class Probe(proto.Message):
-    r"""Probe describes a health check to be performed against a
-    container to determine whether it is alive or ready to receive
-    traffic.
-
-    This message has `oneof`_ fields (mutually exclusive fields).
-    For each oneof, at most one member field can be set at the same time.
-    Setting any member of the oneof automatically clears all other
-    members.
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        initial_delay_seconds (int):
-            Optional. Number of seconds after the
-            container has started before the probe is
-            initiated. Defaults to 0 seconds. Minimum value
-            is 0. Maximum value for liveness probe is 3600.
-            Maximum value for startup probe is 240.
-        timeout_seconds (int):
-            Optional. Number of seconds after which the probe times out.
-            Defaults to 1 second. Minimum value is 1. Maximum value is
-            3600. Must be smaller than period_seconds.
-        period_seconds (int):
-            Optional. How often (in seconds) to perform the probe.
-            Default to 10 seconds. Minimum value is 1. Maximum value for
-            liveness probe is 3600. Maximum value for startup probe is
-            240. Must be greater or equal than timeout_seconds.
-        failure_threshold (int):
-            Optional. Minimum consecutive failures for
-            the probe to be considered failed after having
-            succeeded. Defaults to 3. Minimum value is 1.
-        http_get (google.cloud.run_v2.types.HTTPGetAction):
-            Optional. HTTPGet specifies the http request
-            to perform. Exactly one of httpGet, tcpSocket,
-            or grpc must be specified.
-
-            This field is a member of `oneof`_ ``probe_type``.
-        tcp_socket (google.cloud.run_v2.types.TCPSocketAction):
-            Optional. TCPSocket specifies an action
-            involving a TCP port. Exactly one of httpGet,
-            tcpSocket, or grpc must be specified.
-
-            This field is a member of `oneof`_ ``probe_type``.
-        grpc (google.cloud.run_v2.types.GRPCAction):
-            Optional. GRPC specifies an action involving
-            a gRPC port. Exactly one of httpGet, tcpSocket,
-            or grpc must be specified.
-
-            This field is a member of `oneof`_ ``probe_type``.
-    """
-
-    initial_delay_seconds: int = proto.Field(
-        proto.INT32,
-        number=1,
-    )
-    timeout_seconds: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-    period_seconds: int = proto.Field(
-        proto.INT32,
-        number=3,
-    )
-    failure_threshold: int = proto.Field(
-        proto.INT32,
-        number=4,
-    )
-    http_get: 'HTTPGetAction' = proto.Field(
-        proto.MESSAGE,
-        number=5,
-        oneof='probe_type',
-        message='HTTPGetAction',
-    )
-    tcp_socket: 'TCPSocketAction' = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        oneof='probe_type',
-        message='TCPSocketAction',
-    )
-    grpc: 'GRPCAction' = proto.Field(
-        proto.MESSAGE,
-        number=7,
-        oneof='probe_type',
-        message='GRPCAction',
-    )
-
-
-class HTTPGetAction(proto.Message):
-    r"""HTTPGetAction describes an action based on HTTP Get requests.
-
-    Attributes:
-        path (str):
-            Optional. Path to access on the HTTP server.
-            Defaults to '/'.
-        http_headers (MutableSequence[google.cloud.run_v2.types.HTTPHeader]):
-            Optional. Custom headers to set in the
-            request. HTTP allows repeated headers.
-        port (int):
-            Optional. Port number to access on the container. Must be in
-            the range 1 to 65535. If not specified, defaults to the
-            exposed port of the container, which is the value of
-            container.ports[0].containerPort.
-    """
-
-    path: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    http_headers: MutableSequence['HTTPHeader'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=4,
-        message='HTTPHeader',
-    )
-    port: int = proto.Field(
-        proto.INT32,
-        number=5,
-    )
-
-
-class HTTPHeader(proto.Message):
-    r"""HTTPHeader describes a custom header to be used in HTTP
-    probes
-
-    Attributes:
-        name (str):
-            Required. The header field name
-        value (str):
-            Optional. The header field value
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    value: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class TCPSocketAction(proto.Message):
-    r"""TCPSocketAction describes an action based on opening a socket
-
-    Attributes:
-        port (int):
-            Optional. Port number to access on the container. Must be in
-            the range 1 to 65535. If not specified, defaults to the
-            exposed port of the container, which is the value of
-            container.ports[0].containerPort.
-    """
-
-    port: int = proto.Field(
-        proto.INT32,
-        number=1,
-    )
-
-
-class GRPCAction(proto.Message):
-    r"""GRPCAction describes an action involving a GRPC port.
-
-    Attributes:
-        port (int):
-            Optional. Port number of the gRPC service. Number must be in
-            the range 1 to 65535. If not specified, defaults to the
-            exposed port of the container, which is the value of
-            container.ports[0].containerPort.
-        service (str):
-            Optional. Service is the name of the service
-            to place in the gRPC HealthCheckRequest (see
-            https://github.com/grpc/grpc/blob/master/doc/health-checking.md
-            ). If this is not specified, the default
-            behavior is defined by gRPC.
-    """
-
-    port: int = proto.Field(
-        proto.INT32,
-        number=1,
-    )
-    service: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision.py
deleted file mode 100644
index 84cf3d710ca0..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision.py
+++ /dev/null
@@ -1,446 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import status
-from google.cloud.run_v2.types import vendor_settings
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'GetRevisionRequest',
-        'ListRevisionsRequest',
-        'ListRevisionsResponse',
-        'DeleteRevisionRequest',
-        'Revision',
-    },
-)
-
-
-class GetRevisionRequest(proto.Message):
-    r"""Request message for obtaining a Revision by its full name.
-
-    Attributes:
-        name (str):
-            Required. The full name of the Revision.
-            Format:
-
-            projects/{project}/locations/{location}/services/{service}/revisions/{revision}
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class ListRevisionsRequest(proto.Message):
-    r"""Request message for retrieving a list of Revisions.
-
-    Attributes:
-        parent (str):
-            Required. The Service from which the
-            Revisions should be listed. To list all
-            Revisions across Services, use "-" instead of
-            Service name. Format:
-
-            projects/{project}/locations/{location}/services/{service}
-        page_size (int):
-            Maximum number of revisions to return in this
-            call.
-        page_token (str):
-            A page token received from a previous call to
-            ListRevisions. All other parameters must match.
-        show_deleted (bool):
-            If true, returns deleted (but unexpired)
-            resources along with active ones.
-    """
-
-    parent: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    page_size: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-    page_token: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    show_deleted: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class ListRevisionsResponse(proto.Message):
-    r"""Response message containing a list of Revisions.
-
-    Attributes:
-        revisions (MutableSequence[google.cloud.run_v2.types.Revision]):
-            The resulting list of Revisions.
-        next_page_token (str):
-            A token indicating there are more items than page_size. Use
-            it in the next ListRevisions request to continue.
-    """
-
-    @property
-    def raw_page(self):
-        return self
-
-    revisions: MutableSequence['Revision'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=1,
-        message='Revision',
-    )
-    next_page_token: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class DeleteRevisionRequest(proto.Message):
-    r"""Request message for deleting a retired Revision.
-    Revision lifecycle is usually managed by making changes to the
-    parent Service. Only retired revisions can be deleted with this
-    API.
-
-    Attributes:
-        name (str):
-            Required. The name of the Revision to delete.
-            Format:
-
-            projects/{project}/locations/{location}/services/{service}/revisions/{revision}
-        validate_only (bool):
-            Indicates that the request should be
-            validated without actually deleting any
-            resources.
-        etag (str):
-            A system-generated fingerprint for this
-            version of the resource. This may be used to
-            detect modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=2,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-
-
-class Revision(proto.Message):
-    r"""A Revision is an immutable snapshot of code and
-    configuration.  A Revision references a container image.
-    Revisions are only created by updates to its parent Service.
-
-    Attributes:
-        name (str):
-            Output only. The unique name of this
-            Revision.
-        uid (str):
-            Output only. Server assigned unique
-            identifier for the Revision. The value is a
-            UUID4 string and guaranteed to remain unchanged
-            until the resource is deleted.
-        generation (int):
-            Output only. A number that monotonically
-            increases every time the user modifies the
-            desired state.
-        labels (MutableMapping[str, str]):
-            Output only. Unstructured key value map that
-            can be used to organize and categorize objects.
-            User-provided labels are shared with Google's
-            billing system, so they can be used to filter,
-            or break down billing charges by team,
-            component, environment, state, etc. For more
-            information, visit
-            https://cloud.google.com/resource-manager/docs/creating-managing-labels
-            or
-            https://cloud.google.com/run/docs/configuring/labels.
-        annotations (MutableMapping[str, str]):
-            Output only. Unstructured key value map that
-            may be set by external tools to store and
-            arbitrary metadata. They are not queryable and
-            should be preserved when modifying objects.
-        create_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The creation time.
-        update_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The last-modified time.
-        delete_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. For a deleted resource, the
-            deletion time. It is only populated as a
-            response to a Delete request.
-        expire_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. For a deleted resource, the time
-            after which it will be permamently deleted. It
-            is only populated as a response to a Delete
-            request.
-        launch_stage (google.api.launch_stage_pb2.LaunchStage):
-            The least stable launch stage needed to create this
-            resource, as defined by `Google Cloud Platform Launch
-            Stages <https://cloud.google.com/terms/launch-stages>`__.
-            Cloud Run supports ``ALPHA``, ``BETA``, and ``GA``.
-
-            .. raw:: html
-
-                <p>Note that this value might not be what was used
-                as input. For example, if ALPHA was provided as input in the parent
-                resource, but only BETA and GA-level features are were, this field will be
-                BETA.
-        service (str):
-            Output only. The name of the parent service.
-        scaling (google.cloud.run_v2.types.RevisionScaling):
-            Scaling settings for this revision.
-        vpc_access (google.cloud.run_v2.types.VpcAccess):
-            VPC Access configuration for this Revision.
-            For more information, visit
-            https://cloud.google.com/run/docs/configuring/connecting-vpc.
-        max_instance_request_concurrency (int):
-            Sets the maximum number of requests that each
-            serving instance can receive.
-        timeout (google.protobuf.duration_pb2.Duration):
-            Max allowed time for an instance to respond
-            to a request.
-        service_account (str):
-            Email address of the IAM service account
-            associated with the revision of the service. The
-            service account represents the identity of the
-            running revision, and determines what
-            permissions the revision has.
-        containers (MutableSequence[google.cloud.run_v2.types.Container]):
-            Holds the single container that defines the
-            unit of execution for this Revision.
-        volumes (MutableSequence[google.cloud.run_v2.types.Volume]):
-            A list of Volumes to make available to
-            containers.
-        execution_environment (google.cloud.run_v2.types.ExecutionEnvironment):
-            The execution environment being used to host
-            this Revision.
-        encryption_key (str):
-            A reference to a customer managed encryption
-            key (CMEK) to use to encrypt this container
-            image. For more information, go to
-            https://cloud.google.com/run/docs/securing/using-cmek
-        service_mesh (google.cloud.run_v2.types.ServiceMesh):
-            Enables service mesh connectivity.
-        encryption_key_revocation_action (google.cloud.run_v2.types.EncryptionKeyRevocationAction):
-            The action to take if the encryption key is
-            revoked.
-        encryption_key_shutdown_duration (google.protobuf.duration_pb2.Duration):
-            If encryption_key_revocation_action is SHUTDOWN, the
-            duration before shutting down all instances. The minimum
-            increment is 1 hour.
-        reconciling (bool):
-            Output only. Indicates whether the resource's reconciliation
-            is still in progress. See comments in
-            ``Service.reconciling`` for additional information on
-            reconciliation process in Cloud Run.
-        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
-            Output only. The Condition of this Revision,
-            containing its readiness status, and detailed
-            error information in case it did not reach a
-            serving state.
-        observed_generation (int):
-            Output only. The generation of this Revision currently
-            serving traffic. See comments in ``reconciling`` for
-            additional information on reconciliation process in Cloud
-            Run.
-        log_uri (str):
-            Output only. The Google Console URI to obtain
-            logs for the Revision.
-        satisfies_pzs (bool):
-            Output only. Reserved for future use.
-        session_affinity (bool):
-            Enable session affinity.
-        scaling_status (google.cloud.run_v2.types.RevisionScalingStatus):
-            Output only. The current effective scaling
-            settings for the revision.
-        node_selector (google.cloud.run_v2.types.NodeSelector):
-            The node selector for the revision.
-        etag (str):
-            Output only. A system-generated fingerprint
-            for this version of the resource. May be used to
-            detect modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    uid: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    generation: int = proto.Field(
-        proto.INT64,
-        number=3,
-    )
-    labels: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=4,
-    )
-    annotations: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=5,
-    )
-    create_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        message=timestamp_pb2.Timestamp,
-    )
-    update_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=7,
-        message=timestamp_pb2.Timestamp,
-    )
-    delete_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=8,
-        message=timestamp_pb2.Timestamp,
-    )
-    expire_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=9,
-        message=timestamp_pb2.Timestamp,
-    )
-    launch_stage: launch_stage_pb2.LaunchStage = proto.Field(
-        proto.ENUM,
-        number=10,
-        enum=launch_stage_pb2.LaunchStage,
-    )
-    service: str = proto.Field(
-        proto.STRING,
-        number=11,
-    )
-    scaling: vendor_settings.RevisionScaling = proto.Field(
-        proto.MESSAGE,
-        number=12,
-        message=vendor_settings.RevisionScaling,
-    )
-    vpc_access: vendor_settings.VpcAccess = proto.Field(
-        proto.MESSAGE,
-        number=13,
-        message=vendor_settings.VpcAccess,
-    )
-    max_instance_request_concurrency: int = proto.Field(
-        proto.INT32,
-        number=34,
-    )
-    timeout: duration_pb2.Duration = proto.Field(
-        proto.MESSAGE,
-        number=15,
-        message=duration_pb2.Duration,
-    )
-    service_account: str = proto.Field(
-        proto.STRING,
-        number=16,
-    )
-    containers: MutableSequence[k8s_min.Container] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=17,
-        message=k8s_min.Container,
-    )
-    volumes: MutableSequence[k8s_min.Volume] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=18,
-        message=k8s_min.Volume,
-    )
-    execution_environment: vendor_settings.ExecutionEnvironment = proto.Field(
-        proto.ENUM,
-        number=20,
-        enum=vendor_settings.ExecutionEnvironment,
-    )
-    encryption_key: str = proto.Field(
-        proto.STRING,
-        number=21,
-    )
-    service_mesh: vendor_settings.ServiceMesh = proto.Field(
-        proto.MESSAGE,
-        number=22,
-        message=vendor_settings.ServiceMesh,
-    )
-    encryption_key_revocation_action: vendor_settings.EncryptionKeyRevocationAction = proto.Field(
-        proto.ENUM,
-        number=23,
-        enum=vendor_settings.EncryptionKeyRevocationAction,
-    )
-    encryption_key_shutdown_duration: duration_pb2.Duration = proto.Field(
-        proto.MESSAGE,
-        number=24,
-        message=duration_pb2.Duration,
-    )
-    reconciling: bool = proto.Field(
-        proto.BOOL,
-        number=30,
-    )
-    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=31,
-        message=condition.Condition,
-    )
-    observed_generation: int = proto.Field(
-        proto.INT64,
-        number=32,
-    )
-    log_uri: str = proto.Field(
-        proto.STRING,
-        number=33,
-    )
-    satisfies_pzs: bool = proto.Field(
-        proto.BOOL,
-        number=37,
-    )
-    session_affinity: bool = proto.Field(
-        proto.BOOL,
-        number=38,
-    )
-    scaling_status: status.RevisionScalingStatus = proto.Field(
-        proto.MESSAGE,
-        number=39,
-        message=status.RevisionScalingStatus,
-    )
-    node_selector: vendor_settings.NodeSelector = proto.Field(
-        proto.MESSAGE,
-        number=40,
-        message=vendor_settings.NodeSelector,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=99,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision_template.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision_template.py
deleted file mode 100644
index 919d22ed3568..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/revision_template.py
+++ /dev/null
@@ -1,217 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import vendor_settings
-from google.protobuf import duration_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'RevisionTemplate',
-    },
-)
-
-
-class RevisionTemplate(proto.Message):
-    r"""RevisionTemplate describes the data a revision should have
-    when created from a template.
-
-    Attributes:
-        revision (str):
-            Optional. The unique name for the revision.
-            If this field is omitted, it will be
-            automatically generated based on the Service
-            name.
-        labels (MutableMapping[str, str]):
-            Optional. Unstructured key value map that can be used to
-            organize and categorize objects. User-provided labels are
-            shared with Google's billing system, so they can be used to
-            filter, or break down billing charges by team, component,
-            environment, state, etc. For more information, visit
-            https://cloud.google.com/resource-manager/docs/creating-managing-labels
-            or https://cloud.google.com/run/docs/configuring/labels.
-
-            .. raw:: html
-
-                <p>Cloud Run API v2 does not support labels with `run.googleapis.com`,
-                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
-                namespaces, and they will be rejected. All system labels in v1 now have a
-                corresponding field in v2 RevisionTemplate.
-        annotations (MutableMapping[str, str]):
-            Optional. Unstructured key value map that may be set by
-            external tools to store and arbitrary metadata. They are not
-            queryable and should be preserved when modifying objects.
-
-            .. raw:: html
-
-                <p>Cloud Run API v2 does not support annotations with `run.googleapis.com`,
-                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
-                namespaces, and they will be rejected. All system annotations in v1 now
-                have a corresponding field in v2 RevisionTemplate.
-
-            .. raw:: html
-
-                <p>This field follows Kubernetes annotations' namespacing, limits, and
-                rules.
-        scaling (google.cloud.run_v2.types.RevisionScaling):
-            Optional. Scaling settings for this Revision.
-        vpc_access (google.cloud.run_v2.types.VpcAccess):
-            Optional. VPC Access configuration to use for
-            this Revision. For more information, visit
-            https://cloud.google.com/run/docs/configuring/connecting-vpc.
-        timeout (google.protobuf.duration_pb2.Duration):
-            Optional. Max allowed time for an instance to
-            respond to a request.
-        service_account (str):
-            Optional. Email address of the IAM service
-            account associated with the revision of the
-            service. The service account represents the
-            identity of the running revision, and determines
-            what permissions the revision has. If not
-            provided, the revision will use the project's
-            default service account.
-        containers (MutableSequence[google.cloud.run_v2.types.Container]):
-            Holds the single container that defines the
-            unit of execution for this Revision.
-        volumes (MutableSequence[google.cloud.run_v2.types.Volume]):
-            Optional. A list of Volumes to make available
-            to containers.
-        execution_environment (google.cloud.run_v2.types.ExecutionEnvironment):
-            Optional. The sandbox environment to host
-            this Revision.
-        encryption_key (str):
-            A reference to a customer managed encryption
-            key (CMEK) to use to encrypt this container
-            image. For more information, go to
-            https://cloud.google.com/run/docs/securing/using-cmek
-        max_instance_request_concurrency (int):
-            Optional. Sets the maximum number of requests that each
-            serving instance can receive. If not specified or 0,
-            concurrency defaults to 80 when requested ``CPU >= 1`` and
-            defaults to 1 when requested ``CPU < 1``.
-        service_mesh (google.cloud.run_v2.types.ServiceMesh):
-            Optional. Enables service mesh connectivity.
-        encryption_key_revocation_action (google.cloud.run_v2.types.EncryptionKeyRevocationAction):
-            Optional. The action to take if the
-            encryption key is revoked.
-        encryption_key_shutdown_duration (google.protobuf.duration_pb2.Duration):
-            Optional. If encryption_key_revocation_action is SHUTDOWN,
-            the duration before shutting down all instances. The minimum
-            increment is 1 hour.
-        session_affinity (bool):
-            Optional. Enable session affinity.
-        health_check_disabled (bool):
-            Optional. Disables health checking containers
-            during deployment.
-        node_selector (google.cloud.run_v2.types.NodeSelector):
-            Optional. The node selector for the revision
-            template.
-    """
-
-    revision: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    labels: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=2,
-    )
-    annotations: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=3,
-    )
-    scaling: vendor_settings.RevisionScaling = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        message=vendor_settings.RevisionScaling,
-    )
-    vpc_access: vendor_settings.VpcAccess = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        message=vendor_settings.VpcAccess,
-    )
-    timeout: duration_pb2.Duration = proto.Field(
-        proto.MESSAGE,
-        number=8,
-        message=duration_pb2.Duration,
-    )
-    service_account: str = proto.Field(
-        proto.STRING,
-        number=9,
-    )
-    containers: MutableSequence[k8s_min.Container] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=10,
-        message=k8s_min.Container,
-    )
-    volumes: MutableSequence[k8s_min.Volume] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=11,
-        message=k8s_min.Volume,
-    )
-    execution_environment: vendor_settings.ExecutionEnvironment = proto.Field(
-        proto.ENUM,
-        number=13,
-        enum=vendor_settings.ExecutionEnvironment,
-    )
-    encryption_key: str = proto.Field(
-        proto.STRING,
-        number=14,
-    )
-    max_instance_request_concurrency: int = proto.Field(
-        proto.INT32,
-        number=15,
-    )
-    service_mesh: vendor_settings.ServiceMesh = proto.Field(
-        proto.MESSAGE,
-        number=16,
-        message=vendor_settings.ServiceMesh,
-    )
-    encryption_key_revocation_action: vendor_settings.EncryptionKeyRevocationAction = proto.Field(
-        proto.ENUM,
-        number=17,
-        enum=vendor_settings.EncryptionKeyRevocationAction,
-    )
-    encryption_key_shutdown_duration: duration_pb2.Duration = proto.Field(
-        proto.MESSAGE,
-        number=18,
-        message=duration_pb2.Duration,
-    )
-    session_affinity: bool = proto.Field(
-        proto.BOOL,
-        number=19,
-    )
-    health_check_disabled: bool = proto.Field(
-        proto.BOOL,
-        number=20,
-    )
-    node_selector: vendor_settings.NodeSelector = proto.Field(
-        proto.MESSAGE,
-        number=21,
-        message=vendor_settings.NodeSelector,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/service.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/service.py
deleted file mode 100644
index 9171d51f1921..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/service.py
+++ /dev/null
@@ -1,602 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import revision_template
-from google.cloud.run_v2.types import traffic_target
-from google.cloud.run_v2.types import vendor_settings
-from google.protobuf import field_mask_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'CreateServiceRequest',
-        'UpdateServiceRequest',
-        'ListServicesRequest',
-        'ListServicesResponse',
-        'GetServiceRequest',
-        'DeleteServiceRequest',
-        'Service',
-    },
-)
-
-
-class CreateServiceRequest(proto.Message):
-    r"""Request message for creating a Service.
-
-    Attributes:
-        parent (str):
-            Required. The location and project in which
-            this service should be created. Format:
-            projects/{project}/locations/{location}, where
-            {project} can be project id or number. Only
-            lowercase characters, digits, and hyphens.
-        service (google.cloud.run_v2.types.Service):
-            Required. The Service instance to create.
-        service_id (str):
-            Required. The unique identifier for the Service. It must
-            begin with letter, and cannot end with hyphen; must contain
-            fewer than 50 characters. The name of the service becomes
-            {parent}/services/{service_id}.
-        validate_only (bool):
-            Indicates that the request should be
-            validated and default values populated, without
-            persisting the request or creating any
-            resources.
-    """
-
-    parent: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    service: 'Service' = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        message='Service',
-    )
-    service_id: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class UpdateServiceRequest(proto.Message):
-    r"""Request message for updating a service.
-
-    Attributes:
-        update_mask (google.protobuf.field_mask_pb2.FieldMask):
-            Optional. The list of fields to be updated.
-        service (google.cloud.run_v2.types.Service):
-            Required. The Service to be updated.
-        validate_only (bool):
-            Indicates that the request should be
-            validated and default values populated, without
-            persisting the request or updating any
-            resources.
-        allow_missing (bool):
-            Optional. If set to true, and if the Service
-            does not exist, it will create a new one. The
-            caller must have 'run.services.create'
-            permissions if this is set to true and the
-            Service does not exist.
-    """
-
-    update_mask: field_mask_pb2.FieldMask = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        message=field_mask_pb2.FieldMask,
-    )
-    service: 'Service' = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message='Service',
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=3,
-    )
-    allow_missing: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class ListServicesRequest(proto.Message):
-    r"""Request message for retrieving a list of Services.
-
-    Attributes:
-        parent (str):
-            Required. The location and project to list
-            resources on. Location must be a valid Google
-            Cloud region, and cannot be the "-" wildcard.
-            Format: projects/{project}/locations/{location},
-            where {project} can be project id or number.
-        page_size (int):
-            Maximum number of Services to return in this
-            call.
-        page_token (str):
-            A page token received from a previous call to
-            ListServices. All other parameters must match.
-        show_deleted (bool):
-            If true, returns deleted (but unexpired)
-            resources along with active ones.
-    """
-
-    parent: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    page_size: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-    page_token: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    show_deleted: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class ListServicesResponse(proto.Message):
-    r"""Response message containing a list of Services.
-
-    Attributes:
-        services (MutableSequence[google.cloud.run_v2.types.Service]):
-            The resulting list of Services.
-        next_page_token (str):
-            A token indicating there are more items than page_size. Use
-            it in the next ListServices request to continue.
-    """
-
-    @property
-    def raw_page(self):
-        return self
-
-    services: MutableSequence['Service'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=1,
-        message='Service',
-    )
-    next_page_token: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class GetServiceRequest(proto.Message):
-    r"""Request message for obtaining a Service by its full name.
-
-    Attributes:
-        name (str):
-            Required. The full name of the Service.
-            Format:
-            projects/{project}/locations/{location}/services/{service},
-            where {project} can be project id or number.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class DeleteServiceRequest(proto.Message):
-    r"""Request message to delete a Service by its full name.
-
-    Attributes:
-        name (str):
-            Required. The full name of the Service.
-            Format:
-            projects/{project}/locations/{location}/services/{service},
-            where {project} can be project id or number.
-        validate_only (bool):
-            Indicates that the request should be
-            validated without actually deleting any
-            resources.
-        etag (str):
-            A system-generated fingerprint for this
-            version of the resource. May be used to detect
-            modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    validate_only: bool = proto.Field(
-        proto.BOOL,
-        number=2,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-
-
-class Service(proto.Message):
-    r"""Service acts as a top-level container that manages a set of
-    configurations and revision templates which implement a network
-    service. Service exists to provide a singular abstraction which
-    can be access controlled, reasoned about, and which encapsulates
-    software lifecycle decisions such as rollout policy and team
-    resource ownership.
-
-    Attributes:
-        name (str):
-            The fully qualified name of this Service. In
-            CreateServiceRequest, this field is ignored, and instead
-            composed from CreateServiceRequest.parent and
-            CreateServiceRequest.service_id.
-
-            Format:
-            projects/{project}/locations/{location}/services/{service_id}
-        description (str):
-            User-provided description of the Service.
-            This field currently has a 512-character limit.
-        uid (str):
-            Output only. Server assigned unique
-            identifier for the trigger. The value is a UUID4
-            string and guaranteed to remain unchanged until
-            the resource is deleted.
-        generation (int):
-            Output only. A number that monotonically increases every
-            time the user modifies the desired state. Please note that
-            unlike v1, this is an int64 value. As with most Google APIs,
-            its JSON representation will be a ``string`` instead of an
-            ``integer``.
-        labels (MutableMapping[str, str]):
-            Optional. Unstructured key value map that can be used to
-            organize and categorize objects. User-provided labels are
-            shared with Google's billing system, so they can be used to
-            filter, or break down billing charges by team, component,
-            environment, state, etc. For more information, visit
-            https://cloud.google.com/resource-manager/docs/creating-managing-labels
-            or https://cloud.google.com/run/docs/configuring/labels.
-
-            .. raw:: html
-
-                <p>Cloud Run API v2 does not support labels with  `run.googleapis.com`,
-                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
-                namespaces, and they will be rejected. All system labels in v1 now have a
-                corresponding field in v2 Service.
-        annotations (MutableMapping[str, str]):
-            Optional. Unstructured key value map that may be set by
-            external tools to store and arbitrary metadata. They are not
-            queryable and should be preserved when modifying objects.
-
-            .. raw:: html
-
-                <p>Cloud Run API v2 does not support annotations with `run.googleapis.com`,
-                `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev`
-                namespaces, and they will be rejected in new resources. All system
-                annotations in v1 now have a corresponding field in v2 Service.
-
-            .. raw:: html
-
-                <p>This field follows Kubernetes
-                annotations' namespacing, limits, and rules.
-        create_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The creation time.
-        update_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The last-modified time.
-        delete_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The deletion time. It is only
-            populated as a response to a Delete request.
-        expire_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. For a deleted resource, the time
-            after which it will be permamently deleted.
-        creator (str):
-            Output only. Email address of the
-            authenticated creator.
-        last_modifier (str):
-            Output only. Email address of the last
-            authenticated modifier.
-        client (str):
-            Arbitrary identifier for the API client.
-        client_version (str):
-            Arbitrary version identifier for the API
-            client.
-        ingress (google.cloud.run_v2.types.IngressTraffic):
-            Optional. Provides the ingress settings for this Service. On
-            output, returns the currently observed ingress settings, or
-            INGRESS_TRAFFIC_UNSPECIFIED if no revision is active.
-        launch_stage (google.api.launch_stage_pb2.LaunchStage):
-            Optional. The launch stage as defined by `Google Cloud
-            Platform Launch
-            Stages <https://cloud.google.com/terms/launch-stages>`__.
-            Cloud Run supports ``ALPHA``, ``BETA``, and ``GA``. If no
-            value is specified, GA is assumed. Set the launch stage to a
-            preview stage on input to allow use of preview features in
-            that stage. On read (or output), describes whether the
-            resource uses preview features.
-
-            .. raw:: html
-
-                <p>
-                For example, if ALPHA is provided as input, but only BETA and GA-level
-                features are used, this field will be BETA on output.
-        binary_authorization (google.cloud.run_v2.types.BinaryAuthorization):
-            Optional. Settings for the Binary
-            Authorization feature.
-        template (google.cloud.run_v2.types.RevisionTemplate):
-            Required. The template used to create
-            revisions for this Service.
-        traffic (MutableSequence[google.cloud.run_v2.types.TrafficTarget]):
-            Optional. Specifies how to distribute traffic over a
-            collection of Revisions belonging to the Service. If traffic
-            is empty or not provided, defaults to 100% traffic to the
-            latest ``Ready`` Revision.
-        scaling (google.cloud.run_v2.types.ServiceScaling):
-            Optional. Specifies service-level scaling
-            settings
-        invoker_iam_disabled (bool):
-            Optional. Disables IAM permission check for
-            run.routes.invoke for callers of this service. This feature
-            is available by invitation only. For more information, visit
-            https://cloud.google.com/run/docs/securing/managing-access#invoker_check.
-        default_uri_disabled (bool):
-            Optional. Disables public resolution of the
-            default URI of this service.
-        urls (MutableSequence[str]):
-            Output only. All URLs serving traffic for
-            this Service.
-        custom_audiences (MutableSequence[str]):
-            One or more custom audiences that you want
-            this service to support. Specify each custom
-            audience as the full URL in a string. The custom
-            audiences are encoded in the token and used to
-            authenticate requests. For more information, see
-            https://cloud.google.com/run/docs/configuring/custom-audiences.
-        observed_generation (int):
-            Output only. The generation of this Service currently
-            serving traffic. See comments in ``reconciling`` for
-            additional information on reconciliation process in Cloud
-            Run. Please note that unlike v1, this is an int64 value. As
-            with most Google APIs, its JSON representation will be a
-            ``string`` instead of an ``integer``.
-        terminal_condition (google.cloud.run_v2.types.Condition):
-            Output only. The Condition of this Service, containing its
-            readiness status, and detailed error information in case it
-            did not reach a serving state. See comments in
-            ``reconciling`` for additional information on reconciliation
-            process in Cloud Run.
-        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
-            Output only. The Conditions of all other associated
-            sub-resources. They contain additional diagnostics
-            information in case the Service does not reach its Serving
-            state. See comments in ``reconciling`` for additional
-            information on reconciliation process in Cloud Run.
-        latest_ready_revision (str):
-            Output only. Name of the latest revision that is serving
-            traffic. See comments in ``reconciling`` for additional
-            information on reconciliation process in Cloud Run.
-        latest_created_revision (str):
-            Output only. Name of the last created revision. See comments
-            in ``reconciling`` for additional information on
-            reconciliation process in Cloud Run.
-        traffic_statuses (MutableSequence[google.cloud.run_v2.types.TrafficTargetStatus]):
-            Output only. Detailed status information for corresponding
-            traffic targets. See comments in ``reconciling`` for
-            additional information on reconciliation process in Cloud
-            Run.
-        uri (str):
-            Output only. The main URI in which this
-            Service is serving traffic.
-        satisfies_pzs (bool):
-            Output only. Reserved for future use.
-        reconciling (bool):
-            Output only. Returns true if the Service is currently being
-            acted upon by the system to bring it into the desired state.
-
-            When a new Service is created, or an existing one is
-            updated, Cloud Run will asynchronously perform all necessary
-            steps to bring the Service to the desired serving state.
-            This process is called reconciliation. While reconciliation
-            is in process, ``observed_generation``,
-            ``latest_ready_revison``, ``traffic_statuses``, and ``uri``
-            will have transient values that might mismatch the intended
-            state: Once reconciliation is over (and this field is
-            false), there are two possible outcomes: reconciliation
-            succeeded and the serving state matches the Service, or
-            there was an error, and reconciliation failed. This state
-            can be found in ``terminal_condition.state``.
-
-            If reconciliation succeeded, the following fields will
-            match: ``traffic`` and ``traffic_statuses``,
-            ``observed_generation`` and ``generation``,
-            ``latest_ready_revision`` and ``latest_created_revision``.
-
-            If reconciliation failed, ``traffic_statuses``,
-            ``observed_generation``, and ``latest_ready_revision`` will
-            have the state of the last serving revision, or empty for
-            newly created Services. Additional information on the
-            failure can be found in ``terminal_condition`` and
-            ``conditions``.
-        etag (str):
-            Output only. A system-generated fingerprint
-            for this version of the resource. May be used to
-            detect modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    description: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    uid: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    generation: int = proto.Field(
-        proto.INT64,
-        number=4,
-    )
-    labels: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=5,
-    )
-    annotations: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=6,
-    )
-    create_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=7,
-        message=timestamp_pb2.Timestamp,
-    )
-    update_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=8,
-        message=timestamp_pb2.Timestamp,
-    )
-    delete_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=9,
-        message=timestamp_pb2.Timestamp,
-    )
-    expire_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=10,
-        message=timestamp_pb2.Timestamp,
-    )
-    creator: str = proto.Field(
-        proto.STRING,
-        number=11,
-    )
-    last_modifier: str = proto.Field(
-        proto.STRING,
-        number=12,
-    )
-    client: str = proto.Field(
-        proto.STRING,
-        number=13,
-    )
-    client_version: str = proto.Field(
-        proto.STRING,
-        number=14,
-    )
-    ingress: vendor_settings.IngressTraffic = proto.Field(
-        proto.ENUM,
-        number=15,
-        enum=vendor_settings.IngressTraffic,
-    )
-    launch_stage: launch_stage_pb2.LaunchStage = proto.Field(
-        proto.ENUM,
-        number=16,
-        enum=launch_stage_pb2.LaunchStage,
-    )
-    binary_authorization: vendor_settings.BinaryAuthorization = proto.Field(
-        proto.MESSAGE,
-        number=17,
-        message=vendor_settings.BinaryAuthorization,
-    )
-    template: revision_template.RevisionTemplate = proto.Field(
-        proto.MESSAGE,
-        number=18,
-        message=revision_template.RevisionTemplate,
-    )
-    traffic: MutableSequence[traffic_target.TrafficTarget] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=19,
-        message=traffic_target.TrafficTarget,
-    )
-    scaling: vendor_settings.ServiceScaling = proto.Field(
-        proto.MESSAGE,
-        number=20,
-        message=vendor_settings.ServiceScaling,
-    )
-    invoker_iam_disabled: bool = proto.Field(
-        proto.BOOL,
-        number=21,
-    )
-    default_uri_disabled: bool = proto.Field(
-        proto.BOOL,
-        number=22,
-    )
-    urls: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=24,
-    )
-    custom_audiences: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=37,
-    )
-    observed_generation: int = proto.Field(
-        proto.INT64,
-        number=30,
-    )
-    terminal_condition: condition.Condition = proto.Field(
-        proto.MESSAGE,
-        number=31,
-        message=condition.Condition,
-    )
-    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=32,
-        message=condition.Condition,
-    )
-    latest_ready_revision: str = proto.Field(
-        proto.STRING,
-        number=33,
-    )
-    latest_created_revision: str = proto.Field(
-        proto.STRING,
-        number=34,
-    )
-    traffic_statuses: MutableSequence[traffic_target.TrafficTargetStatus] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=35,
-        message=traffic_target.TrafficTargetStatus,
-    )
-    uri: str = proto.Field(
-        proto.STRING,
-        number=36,
-    )
-    satisfies_pzs: bool = proto.Field(
-        proto.BOOL,
-        number=38,
-    )
-    reconciling: bool = proto.Field(
-        proto.BOOL,
-        number=98,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=99,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/status.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/status.py
deleted file mode 100644
index 3fd6f50a43b5..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/status.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'RevisionScalingStatus',
-    },
-)
-
-
-class RevisionScalingStatus(proto.Message):
-    r"""Effective settings for the current revision
-
-    Attributes:
-        desired_min_instance_count (int):
-            The current number of min instances
-            provisioned for this revision.
-    """
-
-    desired_min_instance_count: int = proto.Field(
-        proto.INT32,
-        number=1,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task.py
deleted file mode 100644
index 5bf0564a7a03..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task.py
+++ /dev/null
@@ -1,431 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import vendor_settings
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from google.rpc import status_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'GetTaskRequest',
-        'ListTasksRequest',
-        'ListTasksResponse',
-        'Task',
-        'TaskAttemptResult',
-    },
-)
-
-
-class GetTaskRequest(proto.Message):
-    r"""Request message for obtaining a Task by its full name.
-
-    Attributes:
-        name (str):
-            Required. The full name of the Task.
-            Format:
-
-            projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class ListTasksRequest(proto.Message):
-    r"""Request message for retrieving a list of Tasks.
-
-    Attributes:
-        parent (str):
-            Required. The Execution from which the Tasks
-            should be listed. To list all Tasks across
-            Executions of a Job, use "-" instead of
-            Execution name. To list all Tasks across Jobs,
-            use "-" instead of Job name. Format:
-
-            projects/{project}/locations/{location}/jobs/{job}/executions/{execution}
-        page_size (int):
-            Maximum number of Tasks to return in this
-            call.
-        page_token (str):
-            A page token received from a previous call to
-            ListTasks. All other parameters must match.
-        show_deleted (bool):
-            If true, returns deleted (but unexpired)
-            resources along with active ones.
-    """
-
-    parent: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    page_size: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-    page_token: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    show_deleted: bool = proto.Field(
-        proto.BOOL,
-        number=4,
-    )
-
-
-class ListTasksResponse(proto.Message):
-    r"""Response message containing a list of Tasks.
-
-    Attributes:
-        tasks (MutableSequence[google.cloud.run_v2.types.Task]):
-            The resulting list of Tasks.
-        next_page_token (str):
-            A token indicating there are more items than page_size. Use
-            it in the next ListTasks request to continue.
-    """
-
-    @property
-    def raw_page(self):
-        return self
-
-    tasks: MutableSequence['Task'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=1,
-        message='Task',
-    )
-    next_page_token: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class Task(proto.Message):
-    r"""Task represents a single run of a container to completion.
-
-    Attributes:
-        name (str):
-            Output only. The unique name of this Task.
-        uid (str):
-            Output only. Server assigned unique
-            identifier for the Task. The value is a UUID4
-            string and guaranteed to remain unchanged until
-            the resource is deleted.
-        generation (int):
-            Output only. A number that monotonically
-            increases every time the user modifies the
-            desired state.
-        labels (MutableMapping[str, str]):
-            Output only. Unstructured key value map that
-            can be used to organize and categorize objects.
-            User-provided labels are shared with Google's
-            billing system, so they can be used to filter,
-            or break down billing charges by team,
-            component, environment, state, etc. For more
-            information, visit
-            https://cloud.google.com/resource-manager/docs/creating-managing-labels
-            or
-            https://cloud.google.com/run/docs/configuring/labels
-        annotations (MutableMapping[str, str]):
-            Output only. Unstructured key value map that
-            may be set by external tools to store and
-            arbitrary metadata. They are not queryable and
-            should be preserved when modifying objects.
-        create_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. Represents time when the task
-            was created by the system. It is not guaranteed
-            to be set in happens-before order across
-            separate operations.
-        scheduled_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. Represents time when the task
-            was scheduled to run by the system. It is not
-            guaranteed to be set in happens-before order
-            across separate operations.
-        start_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. Represents time when the task
-            started to run. It is not guaranteed to be set
-            in happens-before order across separate
-            operations.
-        completion_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. Represents time when the Task
-            was completed. It is not guaranteed to be set in
-            happens-before order across separate operations.
-        update_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. The last-modified time.
-        delete_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. For a deleted resource, the
-            deletion time. It is only populated as a
-            response to a Delete request.
-        expire_time (google.protobuf.timestamp_pb2.Timestamp):
-            Output only. For a deleted resource, the time
-            after which it will be permamently deleted. It
-            is only populated as a response to a Delete
-            request.
-        job (str):
-            Output only. The name of the parent Job.
-        execution (str):
-            Output only. The name of the parent
-            Execution.
-        containers (MutableSequence[google.cloud.run_v2.types.Container]):
-            Holds the single container that defines the
-            unit of execution for this task.
-        volumes (MutableSequence[google.cloud.run_v2.types.Volume]):
-            A list of Volumes to make available to
-            containers.
-        max_retries (int):
-            Number of retries allowed per Task, before
-            marking this Task failed.
-        timeout (google.protobuf.duration_pb2.Duration):
-            Max allowed time duration the Task may be
-            active before the system will actively try to
-            mark it failed and kill associated containers.
-            This applies per attempt of a task, meaning each
-            retry can run for the full timeout.
-        service_account (str):
-            Email address of the IAM service account
-            associated with the Task of a Job. The service
-            account represents the identity of the running
-            task, and determines what permissions the task
-            has. If not provided, the task will use the
-            project's default service account.
-        execution_environment (google.cloud.run_v2.types.ExecutionEnvironment):
-            The execution environment being used to host
-            this Task.
-        reconciling (bool):
-            Output only. Indicates whether the resource's reconciliation
-            is still in progress. See comments in ``Job.reconciling``
-            for additional information on reconciliation process in
-            Cloud Run.
-        conditions (MutableSequence[google.cloud.run_v2.types.Condition]):
-            Output only. The Condition of this Task,
-            containing its readiness status, and detailed
-            error information in case it did not reach the
-            desired state.
-        observed_generation (int):
-            Output only. The generation of this Task. See comments in
-            ``Job.reconciling`` for additional information on
-            reconciliation process in Cloud Run.
-        index (int):
-            Output only. Index of the Task, unique per
-            execution, and beginning at 0.
-        retried (int):
-            Output only. The number of times this Task
-            was retried. Tasks are retried when they fail up
-            to the maxRetries limit.
-        last_attempt_result (google.cloud.run_v2.types.TaskAttemptResult):
-            Output only. Result of the last attempt of
-            this Task.
-        encryption_key (str):
-            Output only. A reference to a customer
-            managed encryption key (CMEK) to use to encrypt
-            this container image. For more information, go
-            to
-            https://cloud.google.com/run/docs/securing/using-cmek
-        vpc_access (google.cloud.run_v2.types.VpcAccess):
-            Output only. VPC Access configuration to use
-            for this Task. For more information, visit
-            https://cloud.google.com/run/docs/configuring/connecting-vpc.
-        log_uri (str):
-            Output only. URI where logs for this
-            execution can be found in Cloud Console.
-        satisfies_pzs (bool):
-            Output only. Reserved for future use.
-        etag (str):
-            Output only. A system-generated fingerprint
-            for this version of the resource. May be used to
-            detect modification conflict during updates.
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    uid: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    generation: int = proto.Field(
-        proto.INT64,
-        number=3,
-    )
-    labels: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=4,
-    )
-    annotations: MutableMapping[str, str] = proto.MapField(
-        proto.STRING,
-        proto.STRING,
-        number=5,
-    )
-    create_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        message=timestamp_pb2.Timestamp,
-    )
-    scheduled_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=34,
-        message=timestamp_pb2.Timestamp,
-    )
-    start_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=27,
-        message=timestamp_pb2.Timestamp,
-    )
-    completion_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=7,
-        message=timestamp_pb2.Timestamp,
-    )
-    update_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=8,
-        message=timestamp_pb2.Timestamp,
-    )
-    delete_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=9,
-        message=timestamp_pb2.Timestamp,
-    )
-    expire_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=10,
-        message=timestamp_pb2.Timestamp,
-    )
-    job: str = proto.Field(
-        proto.STRING,
-        number=12,
-    )
-    execution: str = proto.Field(
-        proto.STRING,
-        number=13,
-    )
-    containers: MutableSequence[k8s_min.Container] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=14,
-        message=k8s_min.Container,
-    )
-    volumes: MutableSequence[k8s_min.Volume] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=15,
-        message=k8s_min.Volume,
-    )
-    max_retries: int = proto.Field(
-        proto.INT32,
-        number=16,
-    )
-    timeout: duration_pb2.Duration = proto.Field(
-        proto.MESSAGE,
-        number=17,
-        message=duration_pb2.Duration,
-    )
-    service_account: str = proto.Field(
-        proto.STRING,
-        number=18,
-    )
-    execution_environment: vendor_settings.ExecutionEnvironment = proto.Field(
-        proto.ENUM,
-        number=20,
-        enum=vendor_settings.ExecutionEnvironment,
-    )
-    reconciling: bool = proto.Field(
-        proto.BOOL,
-        number=21,
-    )
-    conditions: MutableSequence[condition.Condition] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=22,
-        message=condition.Condition,
-    )
-    observed_generation: int = proto.Field(
-        proto.INT64,
-        number=23,
-    )
-    index: int = proto.Field(
-        proto.INT32,
-        number=24,
-    )
-    retried: int = proto.Field(
-        proto.INT32,
-        number=25,
-    )
-    last_attempt_result: 'TaskAttemptResult' = proto.Field(
-        proto.MESSAGE,
-        number=26,
-        message='TaskAttemptResult',
-    )
-    encryption_key: str = proto.Field(
-        proto.STRING,
-        number=28,
-    )
-    vpc_access: vendor_settings.VpcAccess = proto.Field(
-        proto.MESSAGE,
-        number=29,
-        message=vendor_settings.VpcAccess,
-    )
-    log_uri: str = proto.Field(
-        proto.STRING,
-        number=32,
-    )
-    satisfies_pzs: bool = proto.Field(
-        proto.BOOL,
-        number=33,
-    )
-    etag: str = proto.Field(
-        proto.STRING,
-        number=99,
-    )
-
-
-class TaskAttemptResult(proto.Message):
-    r"""Result of a task attempt.
-
-    Attributes:
-        status (google.rpc.status_pb2.Status):
-            Output only. The status of this attempt.
-            If the status code is OK, then the attempt
-            succeeded.
-        exit_code (int):
-            Output only. The exit code of this attempt.
-            This may be unset if the container was unable to
-            exit cleanly with a code due to some other
-            failure.
-            See status field for possible failure details.
-    """
-
-    status: status_pb2.Status = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message=status_pb2.Status,
-    )
-    exit_code: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task_template.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task_template.py
deleted file mode 100644
index 121be8e72208..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/task_template.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import vendor_settings
-from google.protobuf import duration_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'TaskTemplate',
-    },
-)
-
-
-class TaskTemplate(proto.Message):
-    r"""TaskTemplate describes the data a task should have when
-    created from a template.
-
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        containers (MutableSequence[google.cloud.run_v2.types.Container]):
-            Holds the single container that defines the
-            unit of execution for this task.
-        volumes (MutableSequence[google.cloud.run_v2.types.Volume]):
-            Optional. A list of Volumes to make available
-            to containers.
-        max_retries (int):
-            Number of retries allowed per Task, before
-            marking this Task failed. Defaults to 3.
-
-            This field is a member of `oneof`_ ``retries``.
-        timeout (google.protobuf.duration_pb2.Duration):
-            Optional. Max allowed time duration the Task
-            may be active before the system will actively
-            try to mark it failed and kill associated
-            containers. This applies per attempt of a task,
-            meaning each retry can run for the full timeout.
-            Defaults to 600 seconds.
-        service_account (str):
-            Optional. Email address of the IAM service
-            account associated with the Task of a Job. The
-            service account represents the identity of the
-            running task, and determines what permissions
-            the task has. If not provided, the task will use
-            the project's default service account.
-        execution_environment (google.cloud.run_v2.types.ExecutionEnvironment):
-            Optional. The execution environment being
-            used to host this Task.
-        encryption_key (str):
-            A reference to a customer managed encryption
-            key (CMEK) to use to encrypt this container
-            image. For more information, go to
-            https://cloud.google.com/run/docs/securing/using-cmek
-        vpc_access (google.cloud.run_v2.types.VpcAccess):
-            Optional. VPC Access configuration to use for
-            this Task. For more information, visit
-            https://cloud.google.com/run/docs/configuring/connecting-vpc.
-    """
-
-    containers: MutableSequence[k8s_min.Container] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=1,
-        message=k8s_min.Container,
-    )
-    volumes: MutableSequence[k8s_min.Volume] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=2,
-        message=k8s_min.Volume,
-    )
-    max_retries: int = proto.Field(
-        proto.INT32,
-        number=3,
-        oneof='retries',
-    )
-    timeout: duration_pb2.Duration = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        message=duration_pb2.Duration,
-    )
-    service_account: str = proto.Field(
-        proto.STRING,
-        number=5,
-    )
-    execution_environment: vendor_settings.ExecutionEnvironment = proto.Field(
-        proto.ENUM,
-        number=6,
-        enum=vendor_settings.ExecutionEnvironment,
-    )
-    encryption_key: str = proto.Field(
-        proto.STRING,
-        number=7,
-    )
-    vpc_access: vendor_settings.VpcAccess = proto.Field(
-        proto.MESSAGE,
-        number=8,
-        message=vendor_settings.VpcAccess,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/traffic_target.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/traffic_target.py
deleted file mode 100644
index adeddeef7288..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/traffic_target.py
+++ /dev/null
@@ -1,129 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'TrafficTargetAllocationType',
-        'TrafficTarget',
-        'TrafficTargetStatus',
-    },
-)
-
-
-class TrafficTargetAllocationType(proto.Enum):
-    r"""The type of instance allocation.
-
-    Values:
-        TRAFFIC_TARGET_ALLOCATION_TYPE_UNSPECIFIED (0):
-            Unspecified instance allocation type.
-        TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST (1):
-            Allocates instances to the Service's latest
-            ready Revision.
-        TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION (2):
-            Allocates instances to a Revision by name.
-    """
-    TRAFFIC_TARGET_ALLOCATION_TYPE_UNSPECIFIED = 0
-    TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST = 1
-    TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION = 2
-
-
-class TrafficTarget(proto.Message):
-    r"""Holds a single traffic routing entry for the Service.
-    Allocations can be done to a specific Revision name, or pointing
-    to the latest Ready Revision.
-
-    Attributes:
-        type_ (google.cloud.run_v2.types.TrafficTargetAllocationType):
-            The allocation type for this traffic target.
-        revision (str):
-            Revision to which to send this portion of
-            traffic, if traffic allocation is by revision.
-        percent (int):
-            Specifies percent of the traffic to this
-            Revision. This defaults to zero if unspecified.
-        tag (str):
-            Indicates a string to be part of the URI to
-            exclusively reference this target.
-    """
-
-    type_: 'TrafficTargetAllocationType' = proto.Field(
-        proto.ENUM,
-        number=1,
-        enum='TrafficTargetAllocationType',
-    )
-    revision: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    percent: int = proto.Field(
-        proto.INT32,
-        number=3,
-    )
-    tag: str = proto.Field(
-        proto.STRING,
-        number=4,
-    )
-
-
-class TrafficTargetStatus(proto.Message):
-    r"""Represents the observed state of a single ``TrafficTarget`` entry.
-
-    Attributes:
-        type_ (google.cloud.run_v2.types.TrafficTargetAllocationType):
-            The allocation type for this traffic target.
-        revision (str):
-            Revision to which this traffic is sent.
-        percent (int):
-            Specifies percent of the traffic to this
-            Revision.
-        tag (str):
-            Indicates the string used in the URI to
-            exclusively reference this target.
-        uri (str):
-            Displays the target URI.
-    """
-
-    type_: 'TrafficTargetAllocationType' = proto.Field(
-        proto.ENUM,
-        number=1,
-        enum='TrafficTargetAllocationType',
-    )
-    revision: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    percent: int = proto.Field(
-        proto.INT32,
-        number=3,
-    )
-    tag: str = proto.Field(
-        proto.STRING,
-        number=4,
-    )
-    uri: str = proto.Field(
-        proto.STRING,
-        number=5,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/vendor_settings.py b/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/vendor_settings.py
deleted file mode 100644
index 61dd6f7e626f..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/google/cloud/run_v2/types/vendor_settings.py
+++ /dev/null
@@ -1,351 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-from __future__ import annotations
-
-from typing import MutableMapping, MutableSequence
-
-import proto  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.cloud.run.v2',
-    manifest={
-        'IngressTraffic',
-        'ExecutionEnvironment',
-        'EncryptionKeyRevocationAction',
-        'VpcAccess',
-        'BinaryAuthorization',
-        'RevisionScaling',
-        'ServiceMesh',
-        'ServiceScaling',
-        'NodeSelector',
-    },
-)
-
-
-class IngressTraffic(proto.Enum):
-    r"""Allowed ingress traffic for the Container.
-
-    Values:
-        INGRESS_TRAFFIC_UNSPECIFIED (0):
-            Unspecified
-        INGRESS_TRAFFIC_ALL (1):
-            All inbound traffic is allowed.
-        INGRESS_TRAFFIC_INTERNAL_ONLY (2):
-            Only internal traffic is allowed.
-        INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER (3):
-            Both internal and Google Cloud Load Balancer
-            traffic is allowed.
-        INGRESS_TRAFFIC_NONE (4):
-            No ingress traffic is allowed.
-    """
-    INGRESS_TRAFFIC_UNSPECIFIED = 0
-    INGRESS_TRAFFIC_ALL = 1
-    INGRESS_TRAFFIC_INTERNAL_ONLY = 2
-    INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER = 3
-    INGRESS_TRAFFIC_NONE = 4
-
-
-class ExecutionEnvironment(proto.Enum):
-    r"""Alternatives for execution environments.
-
-    Values:
-        EXECUTION_ENVIRONMENT_UNSPECIFIED (0):
-            Unspecified
-        EXECUTION_ENVIRONMENT_GEN1 (1):
-            Uses the First Generation environment.
-        EXECUTION_ENVIRONMENT_GEN2 (2):
-            Uses Second Generation environment.
-    """
-    EXECUTION_ENVIRONMENT_UNSPECIFIED = 0
-    EXECUTION_ENVIRONMENT_GEN1 = 1
-    EXECUTION_ENVIRONMENT_GEN2 = 2
-
-
-class EncryptionKeyRevocationAction(proto.Enum):
-    r"""Specifies behavior if an encryption key used by a resource is
-    revoked.
-
-    Values:
-        ENCRYPTION_KEY_REVOCATION_ACTION_UNSPECIFIED (0):
-            Unspecified
-        PREVENT_NEW (1):
-            Prevents the creation of new instances.
-        SHUTDOWN (2):
-            Shuts down existing instances, and prevents
-            creation of new ones.
-    """
-    ENCRYPTION_KEY_REVOCATION_ACTION_UNSPECIFIED = 0
-    PREVENT_NEW = 1
-    SHUTDOWN = 2
-
-
-class VpcAccess(proto.Message):
-    r"""VPC Access settings. For more information on sending traffic
-    to a VPC network, visit
-    https://cloud.google.com/run/docs/configuring/connecting-vpc.
-
-    Attributes:
-        connector (str):
-            VPC Access connector name. Format:
-            ``projects/{project}/locations/{location}/connectors/{connector}``,
-            where ``{project}`` can be project id or number. For more
-            information on sending traffic to a VPC network via a
-            connector, visit
-            https://cloud.google.com/run/docs/configuring/vpc-connectors.
-        egress (google.cloud.run_v2.types.VpcAccess.VpcEgress):
-            Optional. Traffic VPC egress settings. If not provided, it
-            defaults to PRIVATE_RANGES_ONLY.
-        network_interfaces (MutableSequence[google.cloud.run_v2.types.VpcAccess.NetworkInterface]):
-            Optional. Direct VPC egress settings.
-            Currently only single network interface is
-            supported.
-    """
-    class VpcEgress(proto.Enum):
-        r"""Egress options for VPC access.
-
-        Values:
-            VPC_EGRESS_UNSPECIFIED (0):
-                Unspecified
-            ALL_TRAFFIC (1):
-                All outbound traffic is routed through the
-                VPC connector.
-            PRIVATE_RANGES_ONLY (2):
-                Only private IP ranges are routed through the
-                VPC connector.
-        """
-        VPC_EGRESS_UNSPECIFIED = 0
-        ALL_TRAFFIC = 1
-        PRIVATE_RANGES_ONLY = 2
-
-    class NetworkInterface(proto.Message):
-        r"""Direct VPC egress settings.
-
-        Attributes:
-            network (str):
-                Optional. The VPC network that the Cloud Run
-                resource will be able to send traffic to. At
-                least one of network or subnetwork must be
-                specified. If both network and subnetwork are
-                specified, the given VPC subnetwork must belong
-                to the given VPC network. If network is not
-                specified, it will be looked up from the
-                subnetwork.
-            subnetwork (str):
-                Optional. The VPC subnetwork that the Cloud
-                Run resource will get IPs from. At least one of
-                network or subnetwork must be specified. If both
-                network and subnetwork are specified, the given
-                VPC subnetwork must belong to the given VPC
-                network. If subnetwork is not specified, the
-                subnetwork with the same name with the network
-                will be used.
-            tags (MutableSequence[str]):
-                Optional. Network tags applied to this Cloud
-                Run resource.
-        """
-
-        network: str = proto.Field(
-            proto.STRING,
-            number=1,
-        )
-        subnetwork: str = proto.Field(
-            proto.STRING,
-            number=2,
-        )
-        tags: MutableSequence[str] = proto.RepeatedField(
-            proto.STRING,
-            number=3,
-        )
-
-    connector: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    egress: VpcEgress = proto.Field(
-        proto.ENUM,
-        number=2,
-        enum=VpcEgress,
-    )
-    network_interfaces: MutableSequence[NetworkInterface] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=3,
-        message=NetworkInterface,
-    )
-
-
-class BinaryAuthorization(proto.Message):
-    r"""Settings for Binary Authorization feature.
-
-    This message has `oneof`_ fields (mutually exclusive fields).
-    For each oneof, at most one member field can be set at the same time.
-    Setting any member of the oneof automatically clears all other
-    members.
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        use_default (bool):
-            Optional. If True, indicates to use the
-            default project's binary authorization policy.
-            If False, binary authorization will be disabled.
-
-            This field is a member of `oneof`_ ``binauthz_method``.
-        policy (str):
-            Optional. The path to a binary authorization policy. Format:
-            ``projects/{project}/platforms/cloudRun/{policy-name}``
-
-            This field is a member of `oneof`_ ``binauthz_method``.
-        breakglass_justification (str):
-            Optional. If present, indicates to use Breakglass using this
-            justification. If use_default is False, then it must be
-            empty. For more information on breakglass, see
-            https://cloud.google.com/binary-authorization/docs/using-breakglass
-    """
-
-    use_default: bool = proto.Field(
-        proto.BOOL,
-        number=1,
-        oneof='binauthz_method',
-    )
-    policy: str = proto.Field(
-        proto.STRING,
-        number=3,
-        oneof='binauthz_method',
-    )
-    breakglass_justification: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-
-
-class RevisionScaling(proto.Message):
-    r"""Settings for revision-level scaling settings.
-
-    Attributes:
-        min_instance_count (int):
-            Optional. Minimum number of serving instances
-            that this resource should have.
-        max_instance_count (int):
-            Optional. Maximum number of serving instances
-            that this resource should have. When
-            unspecified, the field is set to the server
-            default value of
-            100. For more information see
-            https://cloud.google.com/run/docs/configuring/max-instances
-    """
-
-    min_instance_count: int = proto.Field(
-        proto.INT32,
-        number=1,
-    )
-    max_instance_count: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-
-
-class ServiceMesh(proto.Message):
-    r"""Settings for Cloud Service Mesh. For more information see
-    https://cloud.google.com/service-mesh/docs/overview.
-
-    Attributes:
-        mesh (str):
-            The Mesh resource name. Format:
-            ``projects/{project}/locations/global/meshes/{mesh}``, where
-            ``{project}`` can be project id or number.
-    """
-
-    mesh: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class ServiceScaling(proto.Message):
-    r"""Scaling settings applied at the service level rather than
-    at the revision level.
-
-
-    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
-
-    Attributes:
-        min_instance_count (int):
-            Optional. total min instances for the
-            service. This number of instances is divided
-            among all revisions with specified traffic based
-            on the percent of traffic they are receiving.
-        scaling_mode (google.cloud.run_v2.types.ServiceScaling.ScalingMode):
-            Optional. The scaling mode for the service.
-        manual_instance_count (int):
-            Optional. total instance count for the
-            service in manual scaling mode. This number of
-            instances is divided among all revisions with
-            specified traffic based on the percent of
-            traffic they are receiving.
-
-            This field is a member of `oneof`_ ``_manual_instance_count``.
-    """
-    class ScalingMode(proto.Enum):
-        r"""The scaling mode for the service. If not provided, it
-        defaults to AUTOMATIC.
-
-        Values:
-            SCALING_MODE_UNSPECIFIED (0):
-                Unspecified.
-            AUTOMATIC (1):
-                Scale based on traffic between min and max
-                instances.
-            MANUAL (2):
-                Scale to exactly min instances and ignore max
-                instances.
-        """
-        SCALING_MODE_UNSPECIFIED = 0
-        AUTOMATIC = 1
-        MANUAL = 2
-
-    min_instance_count: int = proto.Field(
-        proto.INT32,
-        number=1,
-    )
-    scaling_mode: ScalingMode = proto.Field(
-        proto.ENUM,
-        number=3,
-        enum=ScalingMode,
-    )
-    manual_instance_count: int = proto.Field(
-        proto.INT32,
-        number=6,
-        optional=True,
-    )
-
-
-class NodeSelector(proto.Message):
-    r"""Hardware constraints configuration.
-
-    Attributes:
-        accelerator (str):
-            Required. GPU accelerator type to attach to
-            an instance.
-    """
-
-    accelerator: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/google-cloud-run/v2/mypy.ini b/owl-bot-staging/google-cloud-run/v2/mypy.ini
deleted file mode 100644
index 574c5aed394b..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/mypy.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[mypy]
-python_version = 3.7
-namespace_packages = True
diff --git a/owl-bot-staging/google-cloud-run/v2/noxfile.py b/owl-bot-staging/google-cloud-run/v2/noxfile.py
deleted file mode 100644
index 13a9cb1f9a37..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/noxfile.py
+++ /dev/null
@@ -1,280 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 os
-import pathlib
-import re
-import shutil
-import subprocess
-import sys
-
-
-import nox  # type: ignore
-
-ALL_PYTHON = [
-    "3.7",
-    "3.8",
-    "3.9",
-    "3.10",
-    "3.11",
-    "3.12",
-    "3.13",
-]
-
-CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()
-
-LOWER_BOUND_CONSTRAINTS_FILE = CURRENT_DIRECTORY / "constraints.txt"
-PACKAGE_NAME = 'google-cloud-run'
-
-BLACK_VERSION = "black==22.3.0"
-BLACK_PATHS = ["docs", "google", "tests", "samples", "noxfile.py", "setup.py"]
-DEFAULT_PYTHON_VERSION = "3.13"
-
-nox.sessions = [
-    "unit",
-    "cover",
-    "mypy",
-    "check_lower_bounds"
-    # exclude update_lower_bounds from default
-    "docs",
-    "blacken",
-    "lint",
-    "prerelease_deps",
-]
-
-@nox.session(python=ALL_PYTHON)
-@nox.parametrize(
-    "protobuf_implementation",
-    [ "python", "upb", "cpp" ],
-)
-def unit(session, protobuf_implementation):
-    """Run the unit test suite."""
-
-    if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):
-        session.skip("cpp implementation is not supported in python 3.11+")
-
-    session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"')
-    session.install('-e', '.', "-c", f"testing/constraints-{session.python}.txt")
-
-    # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped.
-    # The 'cpp' implementation requires Protobuf<4.
-    if protobuf_implementation == "cpp":
-        session.install("protobuf<4")
-
-    session.run(
-        'py.test',
-        '--quiet',
-        '--cov=google/cloud/run_v2/',
-        '--cov=tests/',
-        '--cov-config=.coveragerc',
-        '--cov-report=term',
-        '--cov-report=html',
-        os.path.join('tests', 'unit', ''.join(session.posargs)),
-        env={
-            "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation,
-        },
-    )
-
-@nox.session(python=ALL_PYTHON[-1])
-@nox.parametrize(
-    "protobuf_implementation",
-    [ "python", "upb", "cpp" ],
-)
-def prerelease_deps(session, protobuf_implementation):
-    """Run the unit test suite against pre-release versions of dependencies."""
-
-    if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"):
-        session.skip("cpp implementation is not supported in python 3.11+")
-
-    # Install test environment dependencies
-    session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"')
-
-    # Install the package without dependencies
-    session.install('-e', '.', '--no-deps')
-
-    # We test the minimum dependency versions using the minimum Python
-    # version so the lowest python runtime that we test has a corresponding constraints
-    # file, located at `testing/constraints-<version>-.txt`,  which contains all of the
-    # dependencies and extras.
-    with open(
-        CURRENT_DIRECTORY
-        / "testing"
-        / f"constraints-{ALL_PYTHON[0]}.txt",
-        encoding="utf-8",
-    ) as constraints_file:
-        constraints_text = constraints_file.read()
-
-    # Ignore leading whitespace and comment lines.
-    constraints_deps = [
-        match.group(1)
-        for match in re.finditer(
-            r"^\s*(\S+)(?===\S+)", constraints_text, flags=re.MULTILINE
-        )
-    ]
-
-    session.install(*constraints_deps)
-
-    prerel_deps = [
-        "googleapis-common-protos",
-        "google-api-core",
-        "google-auth",
-        # Exclude grpcio!=1.67.0rc1 which does not support python 3.13
-        "grpcio!=1.67.0rc1",
-        "grpcio-status",
-        "protobuf",
-        "proto-plus",
-    ]
-
-    for dep in prerel_deps:
-        session.install("--pre", "--no-deps", "--upgrade", dep)
-
-    # Remaining dependencies
-    other_deps = [
-        "requests",
-    ]
-    session.install(*other_deps)
-
-    # Print out prerelease package versions
-
-    session.run("python", "-c", "import google.api_core; print(google.api_core.__version__)")
-    session.run("python", "-c", "import google.auth; print(google.auth.__version__)")
-    session.run("python", "-c", "import grpc; print(grpc.__version__)")
-    session.run(
-        "python", "-c", "import google.protobuf; print(google.protobuf.__version__)"
-    )
-    session.run(
-        "python", "-c", "import proto; print(proto.__version__)"
-    )
-
-    session.run(
-        'py.test',
-        '--quiet',
-        '--cov=google/cloud/run_v2/',
-        '--cov=tests/',
-        '--cov-config=.coveragerc',
-        '--cov-report=term',
-        '--cov-report=html',
-        os.path.join('tests', 'unit', ''.join(session.posargs)),
-        env={
-            "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation,
-        },
-    )
-
-
-@nox.session(python=DEFAULT_PYTHON_VERSION)
-def cover(session):
-    """Run the final coverage report.
-    This outputs the coverage report aggregating coverage from the unit
-    test runs (not system test runs), and then erases coverage data.
-    """
-    session.install("coverage", "pytest-cov")
-    session.run("coverage", "report", "--show-missing", "--fail-under=100")
-
-    session.run("coverage", "erase")
-
-
-@nox.session(python=ALL_PYTHON)
-def mypy(session):
-    """Run the type checker."""
-    session.install(
-        'mypy',
-        'types-requests',
-        'types-protobuf'
-    )
-    session.install('.')
-    session.run(
-        'mypy',
-        '-p',
-        'google',
-    )
-
-
-@nox.session
-def update_lower_bounds(session):
-    """Update lower bounds in constraints.txt to match setup.py"""
-    session.install('google-cloud-testutils')
-    session.install('.')
-
-    session.run(
-        'lower-bound-checker',
-        'update',
-        '--package-name',
-        PACKAGE_NAME,
-        '--constraints-file',
-        str(LOWER_BOUND_CONSTRAINTS_FILE),
-    )
-
-
-@nox.session
-def check_lower_bounds(session):
-    """Check lower bounds in setup.py are reflected in constraints file"""
-    session.install('google-cloud-testutils')
-    session.install('.')
-
-    session.run(
-        'lower-bound-checker',
-        'check',
-        '--package-name',
-        PACKAGE_NAME,
-        '--constraints-file',
-        str(LOWER_BOUND_CONSTRAINTS_FILE),
-    )
-
-@nox.session(python=DEFAULT_PYTHON_VERSION)
-def docs(session):
-    """Build the docs for this library."""
-
-    session.install("-e", ".")
-    session.install("sphinx==7.0.1", "alabaster", "recommonmark")
-
-    shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True)
-    session.run(
-        "sphinx-build",
-        "-W",  # warnings as errors
-        "-T",  # show full traceback on exception
-        "-N",  # no colors
-        "-b",
-        "html",
-        "-d",
-        os.path.join("docs", "_build", "doctrees", ""),
-        os.path.join("docs", ""),
-        os.path.join("docs", "_build", "html", ""),
-    )
-
-
-@nox.session(python=DEFAULT_PYTHON_VERSION)
-def lint(session):
-    """Run linters.
-
-    Returns a failure if the linters find linting errors or sufficiently
-    serious code quality issues.
-    """
-    session.install("flake8", BLACK_VERSION)
-    session.run(
-        "black",
-        "--check",
-        *BLACK_PATHS,
-    )
-    session.run("flake8", "google", "tests", "samples")
-
-
-@nox.session(python=DEFAULT_PYTHON_VERSION)
-def blacken(session):
-    """Run black. Format code to uniform standard."""
-    session.install(BLACK_VERSION)
-    session.run(
-        "black",
-        *BLACK_PATHS,
-    )
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_async.py
deleted file mode 100644
index a5a58398f493..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_async.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for SubmitBuild
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Builds_SubmitBuild_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_submit_build():
-    # Create a client
-    client = run_v2.BuildsAsyncClient()
-
-    # Initialize request argument(s)
-    storage_source = run_v2.StorageSource()
-    storage_source.bucket = "bucket_value"
-    storage_source.object_ = "object__value"
-
-    request = run_v2.SubmitBuildRequest(
-        storage_source=storage_source,
-        parent="parent_value",
-        image_uri="image_uri_value",
-    )
-
-    # Make the request
-    response = await client.submit_build(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Builds_SubmitBuild_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_sync.py
deleted file mode 100644
index 17d11866d645..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_builds_submit_build_sync.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for SubmitBuild
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Builds_SubmitBuild_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_submit_build():
-    # Create a client
-    client = run_v2.BuildsClient()
-
-    # Initialize request argument(s)
-    storage_source = run_v2.StorageSource()
-    storage_source.bucket = "bucket_value"
-    storage_source.object_ = "object__value"
-
-    request = run_v2.SubmitBuildRequest(
-        storage_source=storage_source,
-        parent="parent_value",
-        image_uri="image_uri_value",
-    )
-
-    # Make the request
-    response = client.submit_build(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Builds_SubmitBuild_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_async.py
deleted file mode 100644
index badef7f1f4aa..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_async.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for CancelExecution
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Executions_CancelExecution_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_cancel_execution():
-    # Create a client
-    client = run_v2.ExecutionsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.CancelExecutionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.cancel_execution(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Executions_CancelExecution_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_sync.py
deleted file mode 100644
index ad1c216565ba..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_cancel_execution_sync.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for CancelExecution
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Executions_CancelExecution_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_cancel_execution():
-    # Create a client
-    client = run_v2.ExecutionsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.CancelExecutionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.cancel_execution(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Executions_CancelExecution_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_async.py
deleted file mode 100644
index ea29a38fdf5a..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_async.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for DeleteExecution
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Executions_DeleteExecution_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_delete_execution():
-    # Create a client
-    client = run_v2.ExecutionsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.DeleteExecutionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.delete_execution(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Executions_DeleteExecution_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_sync.py
deleted file mode 100644
index 60866ab562f9..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_delete_execution_sync.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for DeleteExecution
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Executions_DeleteExecution_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_delete_execution():
-    # Create a client
-    client = run_v2.ExecutionsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.DeleteExecutionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.delete_execution(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Executions_DeleteExecution_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_async.py
deleted file mode 100644
index e98e081cde1b..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_async.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetExecution
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Executions_GetExecution_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_get_execution():
-    # Create a client
-    client = run_v2.ExecutionsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetExecutionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = await client.get_execution(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Executions_GetExecution_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_sync.py
deleted file mode 100644
index 038079bcc3b7..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_get_execution_sync.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetExecution
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Executions_GetExecution_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_get_execution():
-    # Create a client
-    client = run_v2.ExecutionsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetExecutionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = client.get_execution(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Executions_GetExecution_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_async.py
deleted file mode 100644
index cd30dd68ab16..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListExecutions
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Executions_ListExecutions_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_list_executions():
-    # Create a client
-    client = run_v2.ExecutionsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListExecutionsRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_executions(request=request)
-
-    # Handle the response
-    async for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Executions_ListExecutions_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_sync.py
deleted file mode 100644
index e1b073a03351..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_executions_list_executions_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListExecutions
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Executions_ListExecutions_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_list_executions():
-    # Create a client
-    client = run_v2.ExecutionsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListExecutionsRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_executions(request=request)
-
-    # Handle the response
-    for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Executions_ListExecutions_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_async.py
deleted file mode 100644
index b734d8d64618..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_async.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for CreateJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_CreateJob_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_create_job():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    job = run_v2.Job()
-    job.start_execution_token = "start_execution_token_value"
-    job.template.template.max_retries = 1187
-
-    request = run_v2.CreateJobRequest(
-        parent="parent_value",
-        job=job,
-        job_id="job_id_value",
-    )
-
-    # Make the request
-    operation = client.create_job(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_CreateJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_sync.py
deleted file mode 100644
index 5472e142193d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_create_job_sync.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for CreateJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_CreateJob_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_create_job():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    job = run_v2.Job()
-    job.start_execution_token = "start_execution_token_value"
-    job.template.template.max_retries = 1187
-
-    request = run_v2.CreateJobRequest(
-        parent="parent_value",
-        job=job,
-        job_id="job_id_value",
-    )
-
-    # Make the request
-    operation = client.create_job(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_CreateJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_async.py
deleted file mode 100644
index 28c6c5e77d1e..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_async.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for DeleteJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_DeleteJob_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_delete_job():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.DeleteJobRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.delete_job(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_DeleteJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_sync.py
deleted file mode 100644
index 2511a7e87f6b..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_delete_job_sync.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for DeleteJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_DeleteJob_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_delete_job():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.DeleteJobRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.delete_job(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_DeleteJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_async.py
deleted file mode 100644
index cff3fa269c38..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetIamPolicy
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_GetIamPolicy_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-async def sample_get_iam_policy():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.GetIamPolicyRequest(
-        resource="resource_value",
-    )
-
-    # Make the request
-    response = await client.get_iam_policy(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_GetIamPolicy_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_sync.py
deleted file mode 100644
index 3e6f4ff92763..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_iam_policy_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetIamPolicy
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_GetIamPolicy_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-def sample_get_iam_policy():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.GetIamPolicyRequest(
-        resource="resource_value",
-    )
-
-    # Make the request
-    response = client.get_iam_policy(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_GetIamPolicy_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_async.py
deleted file mode 100644
index 04dc34bd572a..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_async.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_GetJob_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_get_job():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetJobRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = await client.get_job(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_GetJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_sync.py
deleted file mode 100644
index c32233106ff4..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_get_job_sync.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_GetJob_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_get_job():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetJobRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = client.get_job(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_GetJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_async.py
deleted file mode 100644
index d0182493deba..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListJobs
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_ListJobs_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_list_jobs():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListJobsRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_jobs(request=request)
-
-    # Handle the response
-    async for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Jobs_ListJobs_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_sync.py
deleted file mode 100644
index 3e5f6dead459..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_list_jobs_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListJobs
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_ListJobs_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_list_jobs():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListJobsRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_jobs(request=request)
-
-    # Handle the response
-    for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Jobs_ListJobs_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_async.py
deleted file mode 100644
index 56ac69aa9b34..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_async.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for RunJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_RunJob_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_run_job():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.RunJobRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.run_job(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_RunJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_sync.py
deleted file mode 100644
index 2a1febcc204d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_run_job_sync.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for RunJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_RunJob_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_run_job():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.RunJobRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.run_job(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_RunJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_async.py
deleted file mode 100644
index 26398cc28efd..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for SetIamPolicy
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_SetIamPolicy_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-async def sample_set_iam_policy():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.SetIamPolicyRequest(
-        resource="resource_value",
-    )
-
-    # Make the request
-    response = await client.set_iam_policy(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_SetIamPolicy_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_sync.py
deleted file mode 100644
index edc0a717dba0..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_set_iam_policy_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for SetIamPolicy
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_SetIamPolicy_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-def sample_set_iam_policy():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.SetIamPolicyRequest(
-        resource="resource_value",
-    )
-
-    # Make the request
-    response = client.set_iam_policy(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_SetIamPolicy_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_async.py
deleted file mode 100644
index 1e2c88d9e52d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_async.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for TestIamPermissions
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_TestIamPermissions_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-async def sample_test_iam_permissions():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.TestIamPermissionsRequest(
-        resource="resource_value",
-        permissions=['permissions_value1', 'permissions_value2'],
-    )
-
-    # Make the request
-    response = await client.test_iam_permissions(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_TestIamPermissions_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_sync.py
deleted file mode 100644
index 5fe6551b1491..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_test_iam_permissions_sync.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for TestIamPermissions
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_TestIamPermissions_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-def sample_test_iam_permissions():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.TestIamPermissionsRequest(
-        resource="resource_value",
-        permissions=['permissions_value1', 'permissions_value2'],
-    )
-
-    # Make the request
-    response = client.test_iam_permissions(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_TestIamPermissions_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_async.py
deleted file mode 100644
index be2832cf54e5..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_async.py
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for UpdateJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_UpdateJob_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_update_job():
-    # Create a client
-    client = run_v2.JobsAsyncClient()
-
-    # Initialize request argument(s)
-    job = run_v2.Job()
-    job.start_execution_token = "start_execution_token_value"
-    job.template.template.max_retries = 1187
-
-    request = run_v2.UpdateJobRequest(
-        job=job,
-    )
-
-    # Make the request
-    operation = client.update_job(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_UpdateJob_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_sync.py
deleted file mode 100644
index 3fa185f4d430..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_jobs_update_job_sync.py
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for UpdateJob
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Jobs_UpdateJob_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_update_job():
-    # Create a client
-    client = run_v2.JobsClient()
-
-    # Initialize request argument(s)
-    job = run_v2.Job()
-    job.start_execution_token = "start_execution_token_value"
-    job.template.template.max_retries = 1187
-
-    request = run_v2.UpdateJobRequest(
-        job=job,
-    )
-
-    # Make the request
-    operation = client.update_job(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Jobs_UpdateJob_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_async.py
deleted file mode 100644
index 91a76517fc9b..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_async.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for DeleteRevision
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Revisions_DeleteRevision_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_delete_revision():
-    # Create a client
-    client = run_v2.RevisionsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.DeleteRevisionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.delete_revision(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Revisions_DeleteRevision_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_sync.py
deleted file mode 100644
index ac2b5f5eb455..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_delete_revision_sync.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for DeleteRevision
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Revisions_DeleteRevision_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_delete_revision():
-    # Create a client
-    client = run_v2.RevisionsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.DeleteRevisionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.delete_revision(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Revisions_DeleteRevision_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_async.py
deleted file mode 100644
index c97f06b47583..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_async.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetRevision
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Revisions_GetRevision_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_get_revision():
-    # Create a client
-    client = run_v2.RevisionsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetRevisionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = await client.get_revision(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Revisions_GetRevision_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_sync.py
deleted file mode 100644
index c1d407bd364c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_get_revision_sync.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetRevision
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Revisions_GetRevision_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_get_revision():
-    # Create a client
-    client = run_v2.RevisionsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetRevisionRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = client.get_revision(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Revisions_GetRevision_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_async.py
deleted file mode 100644
index 63790358693f..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListRevisions
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Revisions_ListRevisions_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_list_revisions():
-    # Create a client
-    client = run_v2.RevisionsAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListRevisionsRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_revisions(request=request)
-
-    # Handle the response
-    async for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Revisions_ListRevisions_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_sync.py
deleted file mode 100644
index 6f803529b2c0..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_revisions_list_revisions_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListRevisions
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Revisions_ListRevisions_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_list_revisions():
-    # Create a client
-    client = run_v2.RevisionsClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListRevisionsRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_revisions(request=request)
-
-    # Handle the response
-    for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Revisions_ListRevisions_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_async.py
deleted file mode 100644
index 2696bfc2fb8c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_async.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for CreateService
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_CreateService_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_create_service():
-    # Create a client
-    client = run_v2.ServicesAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.CreateServiceRequest(
-        parent="parent_value",
-        service_id="service_id_value",
-    )
-
-    # Make the request
-    operation = client.create_service(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_CreateService_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_sync.py
deleted file mode 100644
index 0122c9670ffb..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_create_service_sync.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for CreateService
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_CreateService_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_create_service():
-    # Create a client
-    client = run_v2.ServicesClient()
-
-    # Initialize request argument(s)
-    request = run_v2.CreateServiceRequest(
-        parent="parent_value",
-        service_id="service_id_value",
-    )
-
-    # Make the request
-    operation = client.create_service(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_CreateService_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_async.py
deleted file mode 100644
index efd8fb3011df..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_async.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for DeleteService
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_DeleteService_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_delete_service():
-    # Create a client
-    client = run_v2.ServicesAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.DeleteServiceRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.delete_service(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_DeleteService_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_sync.py
deleted file mode 100644
index 5f417f9277cb..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_delete_service_sync.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for DeleteService
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_DeleteService_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_delete_service():
-    # Create a client
-    client = run_v2.ServicesClient()
-
-    # Initialize request argument(s)
-    request = run_v2.DeleteServiceRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    operation = client.delete_service(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_DeleteService_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_async.py
deleted file mode 100644
index 5bdbd0de8cc0..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetIamPolicy
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_GetIamPolicy_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-async def sample_get_iam_policy():
-    # Create a client
-    client = run_v2.ServicesAsyncClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.GetIamPolicyRequest(
-        resource="resource_value",
-    )
-
-    # Make the request
-    response = await client.get_iam_policy(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_GetIamPolicy_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_sync.py
deleted file mode 100644
index 485987005460..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_iam_policy_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetIamPolicy
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_GetIamPolicy_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-def sample_get_iam_policy():
-    # Create a client
-    client = run_v2.ServicesClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.GetIamPolicyRequest(
-        resource="resource_value",
-    )
-
-    # Make the request
-    response = client.get_iam_policy(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_GetIamPolicy_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_async.py
deleted file mode 100644
index e27a5a20eed8..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_async.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetService
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_GetService_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_get_service():
-    # Create a client
-    client = run_v2.ServicesAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetServiceRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = await client.get_service(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_GetService_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_sync.py
deleted file mode 100644
index cf30a1bca4dd..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_get_service_sync.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetService
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_GetService_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_get_service():
-    # Create a client
-    client = run_v2.ServicesClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetServiceRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = client.get_service(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_GetService_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_async.py
deleted file mode 100644
index b566686c8aaa..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListServices
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_ListServices_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_list_services():
-    # Create a client
-    client = run_v2.ServicesAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListServicesRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_services(request=request)
-
-    # Handle the response
-    async for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Services_ListServices_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_sync.py
deleted file mode 100644
index 6fe61a94d59a..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_list_services_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListServices
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_ListServices_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_list_services():
-    # Create a client
-    client = run_v2.ServicesClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListServicesRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_services(request=request)
-
-    # Handle the response
-    for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Services_ListServices_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_async.py
deleted file mode 100644
index cf9956dccce1..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for SetIamPolicy
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_SetIamPolicy_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-async def sample_set_iam_policy():
-    # Create a client
-    client = run_v2.ServicesAsyncClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.SetIamPolicyRequest(
-        resource="resource_value",
-    )
-
-    # Make the request
-    response = await client.set_iam_policy(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_SetIamPolicy_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_sync.py
deleted file mode 100644
index 048f5918b93b..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_set_iam_policy_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for SetIamPolicy
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_SetIamPolicy_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-def sample_set_iam_policy():
-    # Create a client
-    client = run_v2.ServicesClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.SetIamPolicyRequest(
-        resource="resource_value",
-    )
-
-    # Make the request
-    response = client.set_iam_policy(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_SetIamPolicy_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_async.py
deleted file mode 100644
index dbe5caadba4f..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_async.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for TestIamPermissions
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_TestIamPermissions_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-async def sample_test_iam_permissions():
-    # Create a client
-    client = run_v2.ServicesAsyncClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.TestIamPermissionsRequest(
-        resource="resource_value",
-        permissions=['permissions_value1', 'permissions_value2'],
-    )
-
-    # Make the request
-    response = await client.test_iam_permissions(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_TestIamPermissions_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_sync.py
deleted file mode 100644
index 0978c3e8e467..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_test_iam_permissions_sync.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for TestIamPermissions
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_TestIamPermissions_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-
-
-def sample_test_iam_permissions():
-    # Create a client
-    client = run_v2.ServicesClient()
-
-    # Initialize request argument(s)
-    request = iam_policy_pb2.TestIamPermissionsRequest(
-        resource="resource_value",
-        permissions=['permissions_value1', 'permissions_value2'],
-    )
-
-    # Make the request
-    response = client.test_iam_permissions(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_TestIamPermissions_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_async.py
deleted file mode 100644
index 9de05838e2e1..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_async.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for UpdateService
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_UpdateService_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_update_service():
-    # Create a client
-    client = run_v2.ServicesAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.UpdateServiceRequest(
-    )
-
-    # Make the request
-    operation = client.update_service(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = (await operation).result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_UpdateService_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_sync.py
deleted file mode 100644
index 681f7120f73a..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_services_update_service_sync.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for UpdateService
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Services_UpdateService_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_update_service():
-    # Create a client
-    client = run_v2.ServicesClient()
-
-    # Initialize request argument(s)
-    request = run_v2.UpdateServiceRequest(
-    )
-
-    # Make the request
-    operation = client.update_service(request=request)
-
-    print("Waiting for operation to complete...")
-
-    response = operation.result()
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Services_UpdateService_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_async.py
deleted file mode 100644
index da35f41f0a9d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_async.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetTask
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Tasks_GetTask_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_get_task():
-    # Create a client
-    client = run_v2.TasksAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetTaskRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = await client.get_task(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Tasks_GetTask_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_sync.py
deleted file mode 100644
index 6e0b116d372d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_get_task_sync.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for GetTask
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Tasks_GetTask_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_get_task():
-    # Create a client
-    client = run_v2.TasksClient()
-
-    # Initialize request argument(s)
-    request = run_v2.GetTaskRequest(
-        name="name_value",
-    )
-
-    # Make the request
-    response = client.get_task(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END run_v2_generated_Tasks_GetTask_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_async.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_async.py
deleted file mode 100644
index a4e3e4130d15..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListTasks
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Tasks_ListTasks_async]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-async def sample_list_tasks():
-    # Create a client
-    client = run_v2.TasksAsyncClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListTasksRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_tasks(request=request)
-
-    # Handle the response
-    async for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Tasks_ListTasks_async]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_sync.py b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_sync.py
deleted file mode 100644
index 053cd4ba0cec..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/run_v2_generated_tasks_list_tasks_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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.
-#
-# Generated code. DO NOT EDIT!
-#
-# Snippet for ListTasks
-# NOTE: This snippet has been automatically generated for illustrative purposes only.
-# It may require modifications to work in your environment.
-
-# To install the latest published package dependency, execute the following:
-#   python3 -m pip install google-cloud-run
-
-
-# [START run_v2_generated_Tasks_ListTasks_sync]
-# This snippet has been automatically generated and should be regarded as a
-# code template only.
-# It will require modifications to work:
-# - It may require correct/in-range values for request initialization.
-# - It may require specifying regional endpoints when creating the service
-#   client as shown in:
-#   https://googleapis.dev/python/google-api-core/latest/client_options.html
-from google.cloud import run_v2
-
-
-def sample_list_tasks():
-    # Create a client
-    client = run_v2.TasksClient()
-
-    # Initialize request argument(s)
-    request = run_v2.ListTasksRequest(
-        parent="parent_value",
-    )
-
-    # Make the request
-    page_result = client.list_tasks(request=request)
-
-    # Handle the response
-    for response in page_result:
-        print(response)
-
-# [END run_v2_generated_Tasks_ListTasks_sync]
diff --git a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json b/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
deleted file mode 100644
index 84a8ca294789..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
+++ /dev/null
@@ -1,4346 +0,0 @@
-{
-  "clientLibrary": {
-    "apis": [
-      {
-        "id": "google.cloud.run.v2",
-        "version": "v2"
-      }
-    ],
-    "language": "PYTHON",
-    "name": "google-cloud-run",
-    "version": "0.1.0"
-  },
-  "snippets": [
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.BuildsAsyncClient",
-          "shortName": "BuildsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.BuildsAsyncClient.submit_build",
-        "method": {
-          "fullName": "google.cloud.run.v2.Builds.SubmitBuild",
-          "service": {
-            "fullName": "google.cloud.run.v2.Builds",
-            "shortName": "Builds"
-          },
-          "shortName": "SubmitBuild"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.SubmitBuildRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.SubmitBuildResponse",
-        "shortName": "submit_build"
-      },
-      "description": "Sample for SubmitBuild",
-      "file": "run_v2_generated_builds_submit_build_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Builds_SubmitBuild_async",
-      "segments": [
-        {
-          "end": 57,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 57,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 51,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 54,
-          "start": 52,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 58,
-          "start": 55,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_builds_submit_build_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.BuildsClient",
-          "shortName": "BuildsClient"
-        },
-        "fullName": "google.cloud.run_v2.BuildsClient.submit_build",
-        "method": {
-          "fullName": "google.cloud.run.v2.Builds.SubmitBuild",
-          "service": {
-            "fullName": "google.cloud.run.v2.Builds",
-            "shortName": "Builds"
-          },
-          "shortName": "SubmitBuild"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.SubmitBuildRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.SubmitBuildResponse",
-        "shortName": "submit_build"
-      },
-      "description": "Sample for SubmitBuild",
-      "file": "run_v2_generated_builds_submit_build_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Builds_SubmitBuild_sync",
-      "segments": [
-        {
-          "end": 57,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 57,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 51,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 54,
-          "start": 52,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 58,
-          "start": 55,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_builds_submit_build_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ExecutionsAsyncClient",
-          "shortName": "ExecutionsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ExecutionsAsyncClient.cancel_execution",
-        "method": {
-          "fullName": "google.cloud.run.v2.Executions.CancelExecution",
-          "service": {
-            "fullName": "google.cloud.run.v2.Executions",
-            "shortName": "Executions"
-          },
-          "shortName": "CancelExecution"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.CancelExecutionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "cancel_execution"
-      },
-      "description": "Sample for CancelExecution",
-      "file": "run_v2_generated_executions_cancel_execution_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Executions_CancelExecution_async",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_executions_cancel_execution_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ExecutionsClient",
-          "shortName": "ExecutionsClient"
-        },
-        "fullName": "google.cloud.run_v2.ExecutionsClient.cancel_execution",
-        "method": {
-          "fullName": "google.cloud.run.v2.Executions.CancelExecution",
-          "service": {
-            "fullName": "google.cloud.run.v2.Executions",
-            "shortName": "Executions"
-          },
-          "shortName": "CancelExecution"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.CancelExecutionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "cancel_execution"
-      },
-      "description": "Sample for CancelExecution",
-      "file": "run_v2_generated_executions_cancel_execution_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Executions_CancelExecution_sync",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_executions_cancel_execution_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ExecutionsAsyncClient",
-          "shortName": "ExecutionsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ExecutionsAsyncClient.delete_execution",
-        "method": {
-          "fullName": "google.cloud.run.v2.Executions.DeleteExecution",
-          "service": {
-            "fullName": "google.cloud.run.v2.Executions",
-            "shortName": "Executions"
-          },
-          "shortName": "DeleteExecution"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.DeleteExecutionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "delete_execution"
-      },
-      "description": "Sample for DeleteExecution",
-      "file": "run_v2_generated_executions_delete_execution_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Executions_DeleteExecution_async",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_executions_delete_execution_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ExecutionsClient",
-          "shortName": "ExecutionsClient"
-        },
-        "fullName": "google.cloud.run_v2.ExecutionsClient.delete_execution",
-        "method": {
-          "fullName": "google.cloud.run.v2.Executions.DeleteExecution",
-          "service": {
-            "fullName": "google.cloud.run.v2.Executions",
-            "shortName": "Executions"
-          },
-          "shortName": "DeleteExecution"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.DeleteExecutionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "delete_execution"
-      },
-      "description": "Sample for DeleteExecution",
-      "file": "run_v2_generated_executions_delete_execution_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Executions_DeleteExecution_sync",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_executions_delete_execution_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ExecutionsAsyncClient",
-          "shortName": "ExecutionsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ExecutionsAsyncClient.get_execution",
-        "method": {
-          "fullName": "google.cloud.run.v2.Executions.GetExecution",
-          "service": {
-            "fullName": "google.cloud.run.v2.Executions",
-            "shortName": "Executions"
-          },
-          "shortName": "GetExecution"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetExecutionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Execution",
-        "shortName": "get_execution"
-      },
-      "description": "Sample for GetExecution",
-      "file": "run_v2_generated_executions_get_execution_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Executions_GetExecution_async",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_executions_get_execution_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ExecutionsClient",
-          "shortName": "ExecutionsClient"
-        },
-        "fullName": "google.cloud.run_v2.ExecutionsClient.get_execution",
-        "method": {
-          "fullName": "google.cloud.run.v2.Executions.GetExecution",
-          "service": {
-            "fullName": "google.cloud.run.v2.Executions",
-            "shortName": "Executions"
-          },
-          "shortName": "GetExecution"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetExecutionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Execution",
-        "shortName": "get_execution"
-      },
-      "description": "Sample for GetExecution",
-      "file": "run_v2_generated_executions_get_execution_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Executions_GetExecution_sync",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_executions_get_execution_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ExecutionsAsyncClient",
-          "shortName": "ExecutionsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ExecutionsAsyncClient.list_executions",
-        "method": {
-          "fullName": "google.cloud.run.v2.Executions.ListExecutions",
-          "service": {
-            "fullName": "google.cloud.run.v2.Executions",
-            "shortName": "Executions"
-          },
-          "shortName": "ListExecutions"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListExecutionsRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.executions.pagers.ListExecutionsAsyncPager",
-        "shortName": "list_executions"
-      },
-      "description": "Sample for ListExecutions",
-      "file": "run_v2_generated_executions_list_executions_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Executions_ListExecutions_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_executions_list_executions_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ExecutionsClient",
-          "shortName": "ExecutionsClient"
-        },
-        "fullName": "google.cloud.run_v2.ExecutionsClient.list_executions",
-        "method": {
-          "fullName": "google.cloud.run.v2.Executions.ListExecutions",
-          "service": {
-            "fullName": "google.cloud.run.v2.Executions",
-            "shortName": "Executions"
-          },
-          "shortName": "ListExecutions"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListExecutionsRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.executions.pagers.ListExecutionsPager",
-        "shortName": "list_executions"
-      },
-      "description": "Sample for ListExecutions",
-      "file": "run_v2_generated_executions_list_executions_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Executions_ListExecutions_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_executions_list_executions_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.create_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.CreateJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "CreateJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.CreateJobRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "job",
-            "type": "google.cloud.run_v2.types.Job"
-          },
-          {
-            "name": "job_id",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "create_job"
-      },
-      "description": "Sample for CreateJob",
-      "file": "run_v2_generated_jobs_create_job_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_CreateJob_async",
-      "segments": [
-        {
-          "end": 61,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 61,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 51,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 58,
-          "start": 52,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 62,
-          "start": 59,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_create_job_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.create_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.CreateJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "CreateJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.CreateJobRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "job",
-            "type": "google.cloud.run_v2.types.Job"
-          },
-          {
-            "name": "job_id",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "create_job"
-      },
-      "description": "Sample for CreateJob",
-      "file": "run_v2_generated_jobs_create_job_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_CreateJob_sync",
-      "segments": [
-        {
-          "end": 61,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 61,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 51,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 58,
-          "start": 52,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 62,
-          "start": 59,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_create_job_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.delete_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.DeleteJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "DeleteJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.DeleteJobRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "delete_job"
-      },
-      "description": "Sample for DeleteJob",
-      "file": "run_v2_generated_jobs_delete_job_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_DeleteJob_async",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_delete_job_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.delete_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.DeleteJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "DeleteJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.DeleteJobRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "delete_job"
-      },
-      "description": "Sample for DeleteJob",
-      "file": "run_v2_generated_jobs_delete_job_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_DeleteJob_sync",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_delete_job_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.get_iam_policy",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.GetIamPolicy",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "GetIamPolicy"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.GetIamPolicyRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.policy_pb2.Policy",
-        "shortName": "get_iam_policy"
-      },
-      "description": "Sample for GetIamPolicy",
-      "file": "run_v2_generated_jobs_get_iam_policy_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_GetIamPolicy_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_get_iam_policy_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.get_iam_policy",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.GetIamPolicy",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "GetIamPolicy"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.GetIamPolicyRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.policy_pb2.Policy",
-        "shortName": "get_iam_policy"
-      },
-      "description": "Sample for GetIamPolicy",
-      "file": "run_v2_generated_jobs_get_iam_policy_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_GetIamPolicy_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_get_iam_policy_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.get_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.GetJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "GetJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetJobRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Job",
-        "shortName": "get_job"
-      },
-      "description": "Sample for GetJob",
-      "file": "run_v2_generated_jobs_get_job_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_GetJob_async",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_get_job_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.get_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.GetJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "GetJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetJobRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Job",
-        "shortName": "get_job"
-      },
-      "description": "Sample for GetJob",
-      "file": "run_v2_generated_jobs_get_job_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_GetJob_sync",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_get_job_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.list_jobs",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.ListJobs",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "ListJobs"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListJobsRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.jobs.pagers.ListJobsAsyncPager",
-        "shortName": "list_jobs"
-      },
-      "description": "Sample for ListJobs",
-      "file": "run_v2_generated_jobs_list_jobs_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_ListJobs_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_list_jobs_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.list_jobs",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.ListJobs",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "ListJobs"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListJobsRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.jobs.pagers.ListJobsPager",
-        "shortName": "list_jobs"
-      },
-      "description": "Sample for ListJobs",
-      "file": "run_v2_generated_jobs_list_jobs_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_ListJobs_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_list_jobs_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.run_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.RunJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "RunJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.RunJobRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "run_job"
-      },
-      "description": "Sample for RunJob",
-      "file": "run_v2_generated_jobs_run_job_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_RunJob_async",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_run_job_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.run_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.RunJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "RunJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.RunJobRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "run_job"
-      },
-      "description": "Sample for RunJob",
-      "file": "run_v2_generated_jobs_run_job_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_RunJob_sync",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_run_job_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.set_iam_policy",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.SetIamPolicy",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "SetIamPolicy"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.SetIamPolicyRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.policy_pb2.Policy",
-        "shortName": "set_iam_policy"
-      },
-      "description": "Sample for SetIamPolicy",
-      "file": "run_v2_generated_jobs_set_iam_policy_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_SetIamPolicy_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_set_iam_policy_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.set_iam_policy",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.SetIamPolicy",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "SetIamPolicy"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.SetIamPolicyRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.policy_pb2.Policy",
-        "shortName": "set_iam_policy"
-      },
-      "description": "Sample for SetIamPolicy",
-      "file": "run_v2_generated_jobs_set_iam_policy_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_SetIamPolicy_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_set_iam_policy_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.test_iam_permissions",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.TestIamPermissions",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "TestIamPermissions"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse",
-        "shortName": "test_iam_permissions"
-      },
-      "description": "Sample for TestIamPermissions",
-      "file": "run_v2_generated_jobs_test_iam_permissions_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_TestIamPermissions_async",
-      "segments": [
-        {
-          "end": 53,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 53,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 47,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 50,
-          "start": 48,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 54,
-          "start": 51,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_test_iam_permissions_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.test_iam_permissions",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.TestIamPermissions",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "TestIamPermissions"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse",
-        "shortName": "test_iam_permissions"
-      },
-      "description": "Sample for TestIamPermissions",
-      "file": "run_v2_generated_jobs_test_iam_permissions_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_TestIamPermissions_sync",
-      "segments": [
-        {
-          "end": 53,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 53,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 47,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 50,
-          "start": 48,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 54,
-          "start": 51,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_test_iam_permissions_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsAsyncClient",
-          "shortName": "JobsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsAsyncClient.update_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.UpdateJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "UpdateJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.UpdateJobRequest"
-          },
-          {
-            "name": "job",
-            "type": "google.cloud.run_v2.types.Job"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "update_job"
-      },
-      "description": "Sample for UpdateJob",
-      "file": "run_v2_generated_jobs_update_job_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_UpdateJob_async",
-      "segments": [
-        {
-          "end": 59,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 59,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 56,
-          "start": 50,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 60,
-          "start": 57,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_update_job_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.JobsClient",
-          "shortName": "JobsClient"
-        },
-        "fullName": "google.cloud.run_v2.JobsClient.update_job",
-        "method": {
-          "fullName": "google.cloud.run.v2.Jobs.UpdateJob",
-          "service": {
-            "fullName": "google.cloud.run.v2.Jobs",
-            "shortName": "Jobs"
-          },
-          "shortName": "UpdateJob"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.UpdateJobRequest"
-          },
-          {
-            "name": "job",
-            "type": "google.cloud.run_v2.types.Job"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "update_job"
-      },
-      "description": "Sample for UpdateJob",
-      "file": "run_v2_generated_jobs_update_job_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Jobs_UpdateJob_sync",
-      "segments": [
-        {
-          "end": 59,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 59,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 56,
-          "start": 50,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 60,
-          "start": 57,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_jobs_update_job_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.RevisionsAsyncClient",
-          "shortName": "RevisionsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.RevisionsAsyncClient.delete_revision",
-        "method": {
-          "fullName": "google.cloud.run.v2.Revisions.DeleteRevision",
-          "service": {
-            "fullName": "google.cloud.run.v2.Revisions",
-            "shortName": "Revisions"
-          },
-          "shortName": "DeleteRevision"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.DeleteRevisionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "delete_revision"
-      },
-      "description": "Sample for DeleteRevision",
-      "file": "run_v2_generated_revisions_delete_revision_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Revisions_DeleteRevision_async",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_revisions_delete_revision_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.RevisionsClient",
-          "shortName": "RevisionsClient"
-        },
-        "fullName": "google.cloud.run_v2.RevisionsClient.delete_revision",
-        "method": {
-          "fullName": "google.cloud.run.v2.Revisions.DeleteRevision",
-          "service": {
-            "fullName": "google.cloud.run.v2.Revisions",
-            "shortName": "Revisions"
-          },
-          "shortName": "DeleteRevision"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.DeleteRevisionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "delete_revision"
-      },
-      "description": "Sample for DeleteRevision",
-      "file": "run_v2_generated_revisions_delete_revision_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Revisions_DeleteRevision_sync",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_revisions_delete_revision_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.RevisionsAsyncClient",
-          "shortName": "RevisionsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.RevisionsAsyncClient.get_revision",
-        "method": {
-          "fullName": "google.cloud.run.v2.Revisions.GetRevision",
-          "service": {
-            "fullName": "google.cloud.run.v2.Revisions",
-            "shortName": "Revisions"
-          },
-          "shortName": "GetRevision"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetRevisionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Revision",
-        "shortName": "get_revision"
-      },
-      "description": "Sample for GetRevision",
-      "file": "run_v2_generated_revisions_get_revision_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Revisions_GetRevision_async",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_revisions_get_revision_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.RevisionsClient",
-          "shortName": "RevisionsClient"
-        },
-        "fullName": "google.cloud.run_v2.RevisionsClient.get_revision",
-        "method": {
-          "fullName": "google.cloud.run.v2.Revisions.GetRevision",
-          "service": {
-            "fullName": "google.cloud.run.v2.Revisions",
-            "shortName": "Revisions"
-          },
-          "shortName": "GetRevision"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetRevisionRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Revision",
-        "shortName": "get_revision"
-      },
-      "description": "Sample for GetRevision",
-      "file": "run_v2_generated_revisions_get_revision_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Revisions_GetRevision_sync",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_revisions_get_revision_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.RevisionsAsyncClient",
-          "shortName": "RevisionsAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.RevisionsAsyncClient.list_revisions",
-        "method": {
-          "fullName": "google.cloud.run.v2.Revisions.ListRevisions",
-          "service": {
-            "fullName": "google.cloud.run.v2.Revisions",
-            "shortName": "Revisions"
-          },
-          "shortName": "ListRevisions"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListRevisionsRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.revisions.pagers.ListRevisionsAsyncPager",
-        "shortName": "list_revisions"
-      },
-      "description": "Sample for ListRevisions",
-      "file": "run_v2_generated_revisions_list_revisions_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Revisions_ListRevisions_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_revisions_list_revisions_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.RevisionsClient",
-          "shortName": "RevisionsClient"
-        },
-        "fullName": "google.cloud.run_v2.RevisionsClient.list_revisions",
-        "method": {
-          "fullName": "google.cloud.run.v2.Revisions.ListRevisions",
-          "service": {
-            "fullName": "google.cloud.run.v2.Revisions",
-            "shortName": "Revisions"
-          },
-          "shortName": "ListRevisions"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListRevisionsRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.revisions.pagers.ListRevisionsPager",
-        "shortName": "list_revisions"
-      },
-      "description": "Sample for ListRevisions",
-      "file": "run_v2_generated_revisions_list_revisions_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Revisions_ListRevisions_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_revisions_list_revisions_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
-          "shortName": "ServicesAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesAsyncClient.create_service",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.CreateService",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "CreateService"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.CreateServiceRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "service",
-            "type": "google.cloud.run_v2.types.Service"
-          },
-          {
-            "name": "service_id",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "create_service"
-      },
-      "description": "Sample for CreateService",
-      "file": "run_v2_generated_services_create_service_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_CreateService_async",
-      "segments": [
-        {
-          "end": 56,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 56,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 53,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 57,
-          "start": 54,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_create_service_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesClient",
-          "shortName": "ServicesClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesClient.create_service",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.CreateService",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "CreateService"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.CreateServiceRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "service",
-            "type": "google.cloud.run_v2.types.Service"
-          },
-          {
-            "name": "service_id",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "create_service"
-      },
-      "description": "Sample for CreateService",
-      "file": "run_v2_generated_services_create_service_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_CreateService_sync",
-      "segments": [
-        {
-          "end": 56,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 56,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 53,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 57,
-          "start": 54,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_create_service_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
-          "shortName": "ServicesAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesAsyncClient.delete_service",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.DeleteService",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "DeleteService"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.DeleteServiceRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "delete_service"
-      },
-      "description": "Sample for DeleteService",
-      "file": "run_v2_generated_services_delete_service_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_DeleteService_async",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_delete_service_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesClient",
-          "shortName": "ServicesClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesClient.delete_service",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.DeleteService",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "DeleteService"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.DeleteServiceRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "delete_service"
-      },
-      "description": "Sample for DeleteService",
-      "file": "run_v2_generated_services_delete_service_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_DeleteService_sync",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_delete_service_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
-          "shortName": "ServicesAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesAsyncClient.get_iam_policy",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.GetIamPolicy",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "GetIamPolicy"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.GetIamPolicyRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.policy_pb2.Policy",
-        "shortName": "get_iam_policy"
-      },
-      "description": "Sample for GetIamPolicy",
-      "file": "run_v2_generated_services_get_iam_policy_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_GetIamPolicy_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_get_iam_policy_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesClient",
-          "shortName": "ServicesClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesClient.get_iam_policy",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.GetIamPolicy",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "GetIamPolicy"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.GetIamPolicyRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.policy_pb2.Policy",
-        "shortName": "get_iam_policy"
-      },
-      "description": "Sample for GetIamPolicy",
-      "file": "run_v2_generated_services_get_iam_policy_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_GetIamPolicy_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_get_iam_policy_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
-          "shortName": "ServicesAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesAsyncClient.get_service",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.GetService",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "GetService"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetServiceRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Service",
-        "shortName": "get_service"
-      },
-      "description": "Sample for GetService",
-      "file": "run_v2_generated_services_get_service_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_GetService_async",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_get_service_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesClient",
-          "shortName": "ServicesClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesClient.get_service",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.GetService",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "GetService"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetServiceRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Service",
-        "shortName": "get_service"
-      },
-      "description": "Sample for GetService",
-      "file": "run_v2_generated_services_get_service_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_GetService_sync",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_get_service_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
-          "shortName": "ServicesAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesAsyncClient.list_services",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.ListServices",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "ListServices"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListServicesRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.services.pagers.ListServicesAsyncPager",
-        "shortName": "list_services"
-      },
-      "description": "Sample for ListServices",
-      "file": "run_v2_generated_services_list_services_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_ListServices_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_list_services_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesClient",
-          "shortName": "ServicesClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesClient.list_services",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.ListServices",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "ListServices"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListServicesRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.services.pagers.ListServicesPager",
-        "shortName": "list_services"
-      },
-      "description": "Sample for ListServices",
-      "file": "run_v2_generated_services_list_services_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_ListServices_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_list_services_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
-          "shortName": "ServicesAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesAsyncClient.set_iam_policy",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.SetIamPolicy",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "SetIamPolicy"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.SetIamPolicyRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.policy_pb2.Policy",
-        "shortName": "set_iam_policy"
-      },
-      "description": "Sample for SetIamPolicy",
-      "file": "run_v2_generated_services_set_iam_policy_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_SetIamPolicy_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_set_iam_policy_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesClient",
-          "shortName": "ServicesClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesClient.set_iam_policy",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.SetIamPolicy",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "SetIamPolicy"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.SetIamPolicyRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.policy_pb2.Policy",
-        "shortName": "set_iam_policy"
-      },
-      "description": "Sample for SetIamPolicy",
-      "file": "run_v2_generated_services_set_iam_policy_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_SetIamPolicy_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_set_iam_policy_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
-          "shortName": "ServicesAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesAsyncClient.test_iam_permissions",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.TestIamPermissions",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "TestIamPermissions"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse",
-        "shortName": "test_iam_permissions"
-      },
-      "description": "Sample for TestIamPermissions",
-      "file": "run_v2_generated_services_test_iam_permissions_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_TestIamPermissions_async",
-      "segments": [
-        {
-          "end": 53,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 53,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 47,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 50,
-          "start": 48,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 54,
-          "start": 51,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_test_iam_permissions_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesClient",
-          "shortName": "ServicesClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesClient.test_iam_permissions",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.TestIamPermissions",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "TestIamPermissions"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse",
-        "shortName": "test_iam_permissions"
-      },
-      "description": "Sample for TestIamPermissions",
-      "file": "run_v2_generated_services_test_iam_permissions_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_TestIamPermissions_sync",
-      "segments": [
-        {
-          "end": 53,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 53,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 41,
-          "start": 39,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 47,
-          "start": 42,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 50,
-          "start": 48,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 54,
-          "start": 51,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_test_iam_permissions_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesAsyncClient",
-          "shortName": "ServicesAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesAsyncClient.update_service",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.UpdateService",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "UpdateService"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.UpdateServiceRequest"
-          },
-          {
-            "name": "service",
-            "type": "google.cloud.run_v2.types.Service"
-          },
-          {
-            "name": "update_mask",
-            "type": "google.protobuf.field_mask_pb2.FieldMask"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation_async.AsyncOperation",
-        "shortName": "update_service"
-      },
-      "description": "Sample for UpdateService",
-      "file": "run_v2_generated_services_update_service_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_UpdateService_async",
-      "segments": [
-        {
-          "end": 54,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 54,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 44,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 51,
-          "start": 45,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 55,
-          "start": 52,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_update_service_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.ServicesClient",
-          "shortName": "ServicesClient"
-        },
-        "fullName": "google.cloud.run_v2.ServicesClient.update_service",
-        "method": {
-          "fullName": "google.cloud.run.v2.Services.UpdateService",
-          "service": {
-            "fullName": "google.cloud.run.v2.Services",
-            "shortName": "Services"
-          },
-          "shortName": "UpdateService"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.UpdateServiceRequest"
-          },
-          {
-            "name": "service",
-            "type": "google.cloud.run_v2.types.Service"
-          },
-          {
-            "name": "update_mask",
-            "type": "google.protobuf.field_mask_pb2.FieldMask"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.api_core.operation.Operation",
-        "shortName": "update_service"
-      },
-      "description": "Sample for UpdateService",
-      "file": "run_v2_generated_services_update_service_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Services_UpdateService_sync",
-      "segments": [
-        {
-          "end": 54,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 54,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 44,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 51,
-          "start": 45,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 55,
-          "start": 52,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_services_update_service_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.TasksAsyncClient",
-          "shortName": "TasksAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.TasksAsyncClient.get_task",
-        "method": {
-          "fullName": "google.cloud.run.v2.Tasks.GetTask",
-          "service": {
-            "fullName": "google.cloud.run.v2.Tasks",
-            "shortName": "Tasks"
-          },
-          "shortName": "GetTask"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetTaskRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Task",
-        "shortName": "get_task"
-      },
-      "description": "Sample for GetTask",
-      "file": "run_v2_generated_tasks_get_task_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Tasks_GetTask_async",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_tasks_get_task_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.TasksClient",
-          "shortName": "TasksClient"
-        },
-        "fullName": "google.cloud.run_v2.TasksClient.get_task",
-        "method": {
-          "fullName": "google.cloud.run.v2.Tasks.GetTask",
-          "service": {
-            "fullName": "google.cloud.run.v2.Tasks",
-            "shortName": "Tasks"
-          },
-          "shortName": "GetTask"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.GetTaskRequest"
-          },
-          {
-            "name": "name",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.types.Task",
-        "shortName": "get_task"
-      },
-      "description": "Sample for GetTask",
-      "file": "run_v2_generated_tasks_get_task_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Tasks_GetTask_sync",
-      "segments": [
-        {
-          "end": 51,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 51,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 52,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_tasks_get_task_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.run_v2.TasksAsyncClient",
-          "shortName": "TasksAsyncClient"
-        },
-        "fullName": "google.cloud.run_v2.TasksAsyncClient.list_tasks",
-        "method": {
-          "fullName": "google.cloud.run.v2.Tasks.ListTasks",
-          "service": {
-            "fullName": "google.cloud.run.v2.Tasks",
-            "shortName": "Tasks"
-          },
-          "shortName": "ListTasks"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListTasksRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.tasks.pagers.ListTasksAsyncPager",
-        "shortName": "list_tasks"
-      },
-      "description": "Sample for ListTasks",
-      "file": "run_v2_generated_tasks_list_tasks_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Tasks_ListTasks_async",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_tasks_list_tasks_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.run_v2.TasksClient",
-          "shortName": "TasksClient"
-        },
-        "fullName": "google.cloud.run_v2.TasksClient.list_tasks",
-        "method": {
-          "fullName": "google.cloud.run.v2.Tasks.ListTasks",
-          "service": {
-            "fullName": "google.cloud.run.v2.Tasks",
-            "shortName": "Tasks"
-          },
-          "shortName": "ListTasks"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.run_v2.types.ListTasksRequest"
-          },
-          {
-            "name": "parent",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.run_v2.services.tasks.pagers.ListTasksPager",
-        "shortName": "list_tasks"
-      },
-      "description": "Sample for ListTasks",
-      "file": "run_v2_generated_tasks_list_tasks_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "run_v2_generated_Tasks_ListTasks_sync",
-      "segments": [
-        {
-          "end": 52,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 52,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 45,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 48,
-          "start": 46,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 53,
-          "start": 49,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "run_v2_generated_tasks_list_tasks_sync.py"
-    }
-  ]
-}
diff --git a/owl-bot-staging/google-cloud-run/v2/scripts/fixup_run_v2_keywords.py b/owl-bot-staging/google-cloud-run/v2/scripts/fixup_run_v2_keywords.py
deleted file mode 100644
index 84f0f0b13518..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/scripts/fixup_run_v2_keywords.py
+++ /dev/null
@@ -1,199 +0,0 @@
-#! /usr/bin/env python3
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 argparse
-import os
-import libcst as cst
-import pathlib
-import sys
-from typing import (Any, Callable, Dict, List, Sequence, Tuple)
-
-
-def partition(
-    predicate: Callable[[Any], bool],
-    iterator: Sequence[Any]
-) -> Tuple[List[Any], List[Any]]:
-    """A stable, out-of-place partition."""
-    results = ([], [])
-
-    for i in iterator:
-        results[int(predicate(i))].append(i)
-
-    # Returns trueList, falseList
-    return results[1], results[0]
-
-
-class runCallTransformer(cst.CSTTransformer):
-    CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata')
-    METHOD_TO_PARAMS: Dict[str, Tuple[str]] = {
-        'cancel_execution': ('name', 'validate_only', 'etag', ),
-        'create_job': ('parent', 'job', 'job_id', 'validate_only', ),
-        'create_service': ('parent', 'service', 'service_id', 'validate_only', ),
-        'delete_execution': ('name', 'validate_only', 'etag', ),
-        'delete_job': ('name', 'validate_only', 'etag', ),
-        'delete_revision': ('name', 'validate_only', 'etag', ),
-        'delete_service': ('name', 'validate_only', 'etag', ),
-        'get_execution': ('name', ),
-        'get_iam_policy': ('resource', 'options', ),
-        'get_job': ('name', ),
-        'get_revision': ('name', ),
-        'get_service': ('name', ),
-        'get_task': ('name', ),
-        'list_executions': ('parent', 'page_size', 'page_token', 'show_deleted', ),
-        'list_jobs': ('parent', 'page_size', 'page_token', 'show_deleted', ),
-        'list_revisions': ('parent', 'page_size', 'page_token', 'show_deleted', ),
-        'list_services': ('parent', 'page_size', 'page_token', 'show_deleted', ),
-        'list_tasks': ('parent', 'page_size', 'page_token', 'show_deleted', ),
-        'run_job': ('name', 'validate_only', 'etag', 'overrides', ),
-        'set_iam_policy': ('resource', 'policy', 'update_mask', ),
-        'submit_build': ('parent', 'storage_source', 'image_uri', 'buildpack_build', 'docker_build', 'service_account', 'worker_pool', 'tags', ),
-        'test_iam_permissions': ('resource', 'permissions', ),
-        'update_job': ('job', 'validate_only', 'allow_missing', ),
-        'update_service': ('service', 'update_mask', 'validate_only', 'allow_missing', ),
-    }
-
-    def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode:
-        try:
-            key = original.func.attr.value
-            kword_params = self.METHOD_TO_PARAMS[key]
-        except (AttributeError, KeyError):
-            # Either not a method from the API or too convoluted to be sure.
-            return updated
-
-        # If the existing code is valid, keyword args come after positional args.
-        # Therefore, all positional args must map to the first parameters.
-        args, kwargs = partition(lambda a: not bool(a.keyword), updated.args)
-        if any(k.keyword.value == "request" for k in kwargs):
-            # We've already fixed this file, don't fix it again.
-            return updated
-
-        kwargs, ctrl_kwargs = partition(
-            lambda a: a.keyword.value not in self.CTRL_PARAMS,
-            kwargs
-        )
-
-        args, ctrl_args = args[:len(kword_params)], args[len(kword_params):]
-        ctrl_kwargs.extend(cst.Arg(value=a.value, keyword=cst.Name(value=ctrl))
-                           for a, ctrl in zip(ctrl_args, self.CTRL_PARAMS))
-
-        request_arg = cst.Arg(
-            value=cst.Dict([
-                cst.DictElement(
-                    cst.SimpleString("'{}'".format(name)),
-cst.Element(value=arg.value)
-                )
-                # Note: the args + kwargs looks silly, but keep in mind that
-                # the control parameters had to be stripped out, and that
-                # those could have been passed positionally or by keyword.
-                for name, arg in zip(kword_params, args + kwargs)]),
-            keyword=cst.Name("request")
-        )
-
-        return updated.with_changes(
-            args=[request_arg] + ctrl_kwargs
-        )
-
-
-def fix_files(
-    in_dir: pathlib.Path,
-    out_dir: pathlib.Path,
-    *,
-    transformer=runCallTransformer(),
-):
-    """Duplicate the input dir to the output dir, fixing file method calls.
-
-    Preconditions:
-    * in_dir is a real directory
-    * out_dir is a real, empty directory
-    """
-    pyfile_gen = (
-        pathlib.Path(os.path.join(root, f))
-        for root, _, files in os.walk(in_dir)
-        for f in files if os.path.splitext(f)[1] == ".py"
-    )
-
-    for fpath in pyfile_gen:
-        with open(fpath, 'r') as f:
-            src = f.read()
-
-        # Parse the code and insert method call fixes.
-        tree = cst.parse_module(src)
-        updated = tree.visit(transformer)
-
-        # Create the path and directory structure for the new file.
-        updated_path = out_dir.joinpath(fpath.relative_to(in_dir))
-        updated_path.parent.mkdir(parents=True, exist_ok=True)
-
-        # Generate the updated source file at the corresponding path.
-        with open(updated_path, 'w') as f:
-            f.write(updated.code)
-
-
-if __name__ == '__main__':
-    parser = argparse.ArgumentParser(
-        description="""Fix up source that uses the run client library.
-
-The existing sources are NOT overwritten but are copied to output_dir with changes made.
-
-Note: This tool operates at a best-effort level at converting positional
-      parameters in client method calls to keyword based parameters.
-      Cases where it WILL FAIL include
-      A) * or ** expansion in a method call.
-      B) Calls via function or method alias (includes free function calls)
-      C) Indirect or dispatched calls (e.g. the method is looked up dynamically)
-
-      These all constitute false negatives. The tool will also detect false
-      positives when an API method shares a name with another method.
-""")
-    parser.add_argument(
-        '-d',
-        '--input-directory',
-        required=True,
-        dest='input_dir',
-        help='the input directory to walk for python files to fix up',
-    )
-    parser.add_argument(
-        '-o',
-        '--output-directory',
-        required=True,
-        dest='output_dir',
-        help='the directory to output files fixed via un-flattening',
-    )
-    args = parser.parse_args()
-    input_dir = pathlib.Path(args.input_dir)
-    output_dir = pathlib.Path(args.output_dir)
-    if not input_dir.is_dir():
-        print(
-            f"input directory '{input_dir}' does not exist or is not a directory",
-            file=sys.stderr,
-        )
-        sys.exit(-1)
-
-    if not output_dir.is_dir():
-        print(
-            f"output directory '{output_dir}' does not exist or is not a directory",
-            file=sys.stderr,
-        )
-        sys.exit(-1)
-
-    if os.listdir(output_dir):
-        print(
-            f"output directory '{output_dir}' is not empty",
-            file=sys.stderr,
-        )
-        sys.exit(-1)
-
-    fix_files(input_dir, output_dir)
diff --git a/owl-bot-staging/google-cloud-run/v2/setup.py b/owl-bot-staging/google-cloud-run/v2/setup.py
deleted file mode 100644
index c5e3a15ad773..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/setup.py
+++ /dev/null
@@ -1,99 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 io
-import os
-import re
-
-import setuptools # type: ignore
-
-package_root = os.path.abspath(os.path.dirname(__file__))
-
-name = 'google-cloud-run'
-
-
-description = "Google Cloud Run API client library"
-
-version = None
-
-with open(os.path.join(package_root, 'google/cloud/run/gapic_version.py')) as fp:
-    version_candidates = re.findall(r"(?<=\")\d+.\d+.\d+(?=\")", fp.read())
-    assert (len(version_candidates) == 1)
-    version = version_candidates[0]
-
-if version[0] == "0":
-    release_status = "Development Status :: 4 - Beta"
-else:
-    release_status = "Development Status :: 5 - Production/Stable"
-
-dependencies = [
-    "google-api-core[grpc] >= 1.34.1, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*",
-    # Exclude incompatible versions of `google-auth`
-    # See https://github.com/googleapis/google-cloud-python/issues/12364
-    "google-auth >= 2.14.1, <3.0.0dev,!=2.24.0,!=2.25.0",
-    "proto-plus >= 1.22.3, <2.0.0dev",
-    "proto-plus >= 1.25.0, <2.0.0dev; python_version >= '3.13'",
-    "protobuf>=3.20.2,<6.0.0dev,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
-    "grpc-google-iam-v1 >= 0.12.4, <1.0.0dev",
-]
-extras = {
-}
-url = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-run"
-
-package_root = os.path.abspath(os.path.dirname(__file__))
-
-readme_filename = os.path.join(package_root, "README.rst")
-with io.open(readme_filename, encoding="utf-8") as readme_file:
-    readme = readme_file.read()
-
-packages = [
-    package
-    for package in setuptools.find_namespace_packages()
-    if package.startswith("google")
-]
-
-setuptools.setup(
-    name=name,
-    version=version,
-    description=description,
-    long_description=readme,
-    author="Google LLC",
-    author_email="googleapis-packages@google.com",
-    license="Apache 2.0",
-    url=url,
-    classifiers=[
-        release_status,
-        "Intended Audience :: Developers",
-        "License :: OSI Approved :: Apache Software License",
-        "Programming Language :: Python",
-        "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
-        "Programming Language :: Python :: 3.9",
-        "Programming Language :: Python :: 3.10",
-        "Programming Language :: Python :: 3.11",
-        "Programming Language :: Python :: 3.12",
-        "Programming Language :: Python :: 3.13",
-        "Operating System :: OS Independent",
-        "Topic :: Internet",
-    ],
-    platforms="Posix; MacOS X; Windows",
-    packages=packages,
-    python_requires=">=3.7",
-    install_requires=dependencies,
-    extras_require=extras,
-    include_package_data=True,
-    zip_safe=False,
-)
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.10.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.10.txt
deleted file mode 100644
index ad3f0fa58e2d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.10.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- 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
-grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.11.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.11.txt
deleted file mode 100644
index ad3f0fa58e2d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.11.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- 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
-grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.12.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.12.txt
deleted file mode 100644
index ad3f0fa58e2d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.12.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- 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
-grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.13.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.13.txt
deleted file mode 100644
index ad3f0fa58e2d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.13.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- 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
-grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.7.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.7.txt
deleted file mode 100644
index a81fb6bcd05c..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.7.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-# This constraints file is used to check that lower bounds
-# are correct in setup.py
-# List all library dependencies and extras in this file.
-# Pin the version to the lower bound.
-# 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.34.1
-google-auth==2.14.1
-proto-plus==1.22.3
-protobuf==3.20.2
-grpc-google-iam-v1==0.12.4
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.8.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.8.txt
deleted file mode 100644
index ad3f0fa58e2d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.8.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- 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
-grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.9.txt b/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.9.txt
deleted file mode 100644
index ad3f0fa58e2d..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/testing/constraints-3.9.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- 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
-grpc-google-iam-v1
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/__init__.py b/owl-bot-staging/google-cloud-run/v2/tests/__init__.py
deleted file mode 100644
index 7b3de3117f38..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/__init__.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/__init__.py
deleted file mode 100644
index 7b3de3117f38..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/__init__.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/__init__.py
deleted file mode 100644
index 7b3de3117f38..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/__init__.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/__init__.py
deleted file mode 100644
index 7b3de3117f38..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_builds.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_builds.py
deleted file mode 100644
index cd1505140bd5..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_builds.py
+++ /dev/null
@@ -1,2690 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 os
-# try/except added for compatibility with python < 3.8
-try:
-    from unittest import mock
-    from unittest.mock import AsyncMock  # pragma: NO COVER
-except ImportError:  # pragma: NO COVER
-    import mock
-
-import grpc
-from grpc.experimental import aio
-from collections.abc import Iterable, AsyncIterable
-from google.protobuf import json_format
-import json
-import math
-import pytest
-from google.api_core import api_core_version
-from proto.marshal.rules.dates import DurationRule, TimestampRule
-from proto.marshal.rules import wrappers
-from requests import Response
-from requests import Request, PreparedRequest
-from requests.sessions import Session
-from google.protobuf import json_format
-
-try:
-    from google.auth.aio import credentials as ga_credentials_async
-    HAS_GOOGLE_AUTH_AIO = True
-except ImportError: # pragma: NO COVER
-    HAS_GOOGLE_AUTH_AIO = False
-
-from google.api_core import client_options
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers
-from google.api_core import grpc_helpers_async
-from google.api_core import path_template
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.location import locations_pb2
-from google.cloud.run_v2.services.builds import BuildsAsyncClient
-from google.cloud.run_v2.services.builds import BuildsClient
-from google.cloud.run_v2.services.builds import transports
-from google.cloud.run_v2.types import build
-from google.longrunning import operations_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from google.oauth2 import service_account
-import google.auth
-
-
-async def mock_async_gen(data, chunk_size=1):
-    for i in range(0, len(data)):  # pragma: NO COVER
-        chunk = data[i : i + chunk_size]
-        yield chunk.encode("utf-8")
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
-# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
-def async_anonymous_credentials():
-    if HAS_GOOGLE_AUTH_AIO:
-        return ga_credentials_async.AnonymousCredentials()
-    return ga_credentials.AnonymousCredentials()
-
-# If default endpoint is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint(client):
-    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
-
-# If default endpoint template is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint template so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint_template(client):
-    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
-
-
-def test__get_default_mtls_endpoint():
-    api_endpoint = "example.googleapis.com"
-    api_mtls_endpoint = "example.mtls.googleapis.com"
-    sandbox_endpoint = "example.sandbox.googleapis.com"
-    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
-    non_googleapi = "api.example.com"
-
-    assert BuildsClient._get_default_mtls_endpoint(None) is None
-    assert BuildsClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert BuildsClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert BuildsClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert BuildsClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert BuildsClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-def test__read_environment_variables():
-    assert BuildsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        assert BuildsClient._read_environment_variables() == (True, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        assert BuildsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            BuildsClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        assert BuildsClient._read_environment_variables() == (False, "never", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        assert BuildsClient._read_environment_variables() == (False, "always", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
-        assert BuildsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            BuildsClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
-        assert BuildsClient._read_environment_variables() == (False, "auto", "foo.com")
-
-def test__get_client_cert_source():
-    mock_provided_cert_source = mock.Mock()
-    mock_default_cert_source = mock.Mock()
-
-    assert BuildsClient._get_client_cert_source(None, False) is None
-    assert BuildsClient._get_client_cert_source(mock_provided_cert_source, False) is None
-    assert BuildsClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
-
-    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
-            assert BuildsClient._get_client_cert_source(None, True) is mock_default_cert_source
-            assert BuildsClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
-
-@mock.patch.object(BuildsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsClient))
-@mock.patch.object(BuildsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsAsyncClient))
-def test__get_api_endpoint():
-    api_override = "foo.com"
-    mock_client_cert_source = mock.Mock()
-    default_universe = BuildsClient._DEFAULT_UNIVERSE
-    default_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    assert BuildsClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
-    assert BuildsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == BuildsClient.DEFAULT_MTLS_ENDPOINT
-    assert BuildsClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
-    assert BuildsClient._get_api_endpoint(None, None, default_universe, "always") == BuildsClient.DEFAULT_MTLS_ENDPOINT
-    assert BuildsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == BuildsClient.DEFAULT_MTLS_ENDPOINT
-    assert BuildsClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
-    assert BuildsClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
-
-    with pytest.raises(MutualTLSChannelError) as excinfo:
-        BuildsClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
-    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
-
-
-def test__get_universe_domain():
-    client_universe_domain = "foo.com"
-    universe_domain_env = "bar.com"
-
-    assert BuildsClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
-    assert BuildsClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
-    assert BuildsClient._get_universe_domain(None, None) == BuildsClient._DEFAULT_UNIVERSE
-
-    with pytest.raises(ValueError) as excinfo:
-        BuildsClient._get_universe_domain("", None)
-    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (BuildsClient, "grpc"),
-    (BuildsAsyncClient, "grpc_asyncio"),
-    (BuildsClient, "rest"),
-])
-def test_builds_client_from_service_account_info(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
-        factory.return_value = creds
-        info = {"valid": True}
-        client = client_class.from_service_account_info(info, transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.BuildsGrpcTransport, "grpc"),
-    (transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.BuildsRestTransport, "rest"),
-])
-def test_builds_client_service_account_always_use_jwt(transport_class, transport_name):
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=True)
-        use_jwt.assert_called_once_with(True)
-
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=False)
-        use_jwt.assert_not_called()
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (BuildsClient, "grpc"),
-    (BuildsAsyncClient, "grpc_asyncio"),
-    (BuildsClient, "rest"),
-])
-def test_builds_client_from_service_account_file(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
-        factory.return_value = creds
-        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-def test_builds_client_get_transport_class():
-    transport = BuildsClient.get_transport_class()
-    available_transports = [
-        transports.BuildsGrpcTransport,
-        transports.BuildsRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = BuildsClient.get_transport_class("grpc")
-    assert transport == transports.BuildsGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (BuildsClient, transports.BuildsGrpcTransport, "grpc"),
-    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (BuildsClient, transports.BuildsRestTransport, "rest"),
-])
-@mock.patch.object(BuildsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsClient))
-@mock.patch.object(BuildsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsAsyncClient))
-def test_builds_client_client_options(client_class, transport_class, transport_name):
-    # Check that if channel is provided we won't create a new one.
-    with mock.patch.object(BuildsClient, 'get_transport_class') as gtc:
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-        client = client_class(transport=transport)
-        gtc.assert_not_called()
-
-    # Check that if channel is provided via str we will create a new one.
-    with mock.patch.object(BuildsClient, 'get_transport_class') as gtc:
-        client = client_class(transport=transport_name)
-        gtc.assert_called()
-
-    # Check the case api_endpoint is provided.
-    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(transport=transport_name, client_options=options)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "never".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "always".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client.DEFAULT_MTLS_ENDPOINT,
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    # Check the case quota_project_id is provided
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id="octopus",
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-    # Check the case api_endpoint is provided
-    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
-    with mock.patch.object(transport_class, '__init__') as patched:
-        patched.return_value = None
-        client = client_class(client_options=options, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience="https://language.googleapis.com"
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
-    (BuildsClient, transports.BuildsGrpcTransport, "grpc", "true"),
-    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (BuildsClient, transports.BuildsGrpcTransport, "grpc", "false"),
-    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (BuildsClient, transports.BuildsRestTransport, "rest", "true"),
-    (BuildsClient, transports.BuildsRestTransport, "rest", "false"),
-])
-@mock.patch.object(BuildsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsClient))
-@mock.patch.object(BuildsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_builds_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
-    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
-    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
-
-    # Check the case client_cert_source is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
-        with mock.patch.object(transport_class, '__init__') as patched:
-            patched.return_value = None
-            client = client_class(client_options=options, transport=transport_name)
-
-            if use_client_cert_env == "false":
-                expected_client_cert_source = None
-                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-            else:
-                expected_client_cert_source = client_cert_source_callback
-                expected_host = client.DEFAULT_MTLS_ENDPOINT
-
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=expected_host,
-                scopes=None,
-                client_cert_source_for_mtls=expected_client_cert_source,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case ADC client cert is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
-                    if use_client_cert_env == "false":
-                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-                        expected_client_cert_source = None
-                    else:
-                        expected_host = client.DEFAULT_MTLS_ENDPOINT
-                        expected_client_cert_source = client_cert_source_callback
-
-                    patched.return_value = None
-                    client = client_class(transport=transport_name)
-                    patched.assert_called_once_with(
-                        credentials=None,
-                        credentials_file=None,
-                        host=expected_host,
-                        scopes=None,
-                        client_cert_source_for_mtls=expected_client_cert_source,
-                        quota_project_id=None,
-                        client_info=transports.base.DEFAULT_CLIENT_INFO,
-                        always_use_jwt_access=True,
-                        api_audience=None,
-                    )
-
-    # Check the case client_cert_source and ADC client cert are not provided.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
-                patched.return_value = None
-                client = client_class(transport=transport_name)
-                patched.assert_called_once_with(
-                    credentials=None,
-                    credentials_file=None,
-                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                    scopes=None,
-                    client_cert_source_for_mtls=None,
-                    quota_project_id=None,
-                    client_info=transports.base.DEFAULT_CLIENT_INFO,
-                    always_use_jwt_access=True,
-                    api_audience=None,
-                )
-
-
-@pytest.mark.parametrize("client_class", [
-    BuildsClient, BuildsAsyncClient
-])
-@mock.patch.object(BuildsClient, "DEFAULT_ENDPOINT", modify_default_endpoint(BuildsClient))
-@mock.patch.object(BuildsAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(BuildsAsyncClient))
-def test_builds_client_get_mtls_endpoint_and_cert_source(client_class):
-    mock_client_cert_source = mock.Mock()
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source == mock_client_cert_source
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        mock_client_cert_source = mock.Mock()
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
-            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-            assert api_endpoint == client_class.DEFAULT_ENDPOINT
-            assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
-                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-                assert cert_source == mock_client_cert_source
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-@pytest.mark.parametrize("client_class", [
-    BuildsClient, BuildsAsyncClient
-])
-@mock.patch.object(BuildsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsClient))
-@mock.patch.object(BuildsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(BuildsAsyncClient))
-def test_builds_client_client_api_endpoint(client_class):
-    mock_client_cert_source = client_cert_source_callback
-    api_override = "foo.com"
-    default_universe = BuildsClient._DEFAULT_UNIVERSE
-    default_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = BuildsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
-    # use ClientOptions.api_endpoint as the api endpoint regardless.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
-            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
-            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-            assert client.api_endpoint == api_override
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
-    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-
-    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
-    # and ClientOptions.universe_domain="bar.com",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
-    options = client_options.ClientOptions()
-    universe_exists = hasattr(options, "universe_domain")
-    if universe_exists:
-        options = client_options.ClientOptions(universe_domain=mock_universe)
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    else:
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
-    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
-
-    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    options = client_options.ClientOptions()
-    if hasattr(options, "universe_domain"):
-        delattr(options, "universe_domain")
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (BuildsClient, transports.BuildsGrpcTransport, "grpc"),
-    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (BuildsClient, transports.BuildsRestTransport, "rest"),
-])
-def test_builds_client_client_options_scopes(client_class, transport_class, transport_name):
-    # Check the case scopes are provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=["1", "2"],
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (BuildsClient, transports.BuildsGrpcTransport, "grpc", grpc_helpers),
-    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (BuildsClient, transports.BuildsRestTransport, "rest", None),
-])
-def test_builds_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-def test_builds_client_client_options_from_dict():
-    with mock.patch('google.cloud.run_v2.services.builds.transports.BuildsGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = BuildsClient(
-            client_options={'api_endpoint': 'squid.clam.whelk'}
-        )
-        grpc_transport.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (BuildsClient, transports.BuildsGrpcTransport, "grpc", grpc_helpers),
-    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_builds_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # test that the credentials from file are saved and used as the credentials.
-    with mock.patch.object(
-        google.auth, "load_credentials_from_file", autospec=True
-    ) as load_creds, mock.patch.object(
-        google.auth, "default", autospec=True
-    ) as adc, mock.patch.object(
-        grpc_helpers, "create_channel"
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        file_creds = ga_credentials.AnonymousCredentials()
-        load_creds.return_value = (file_creds, None)
-        adc.return_value = (creds, None)
-        client = client_class(client_options=options, transport=transport_name)
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=file_creds,
-            credentials_file=None,
-            quota_project_id=None,
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=None,
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  build.SubmitBuildRequest,
-  dict,
-])
-def test_submit_build(request_type, transport: str = 'grpc'):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.submit_build),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = build.SubmitBuildResponse(
-            base_image_uri='base_image_uri_value',
-            base_image_warning='base_image_warning_value',
-        )
-        response = client.submit_build(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = build.SubmitBuildRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, build.SubmitBuildResponse)
-    assert response.base_image_uri == 'base_image_uri_value'
-    assert response.base_image_warning == 'base_image_warning_value'
-
-
-def test_submit_build_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = build.SubmitBuildRequest(
-        parent='parent_value',
-        image_uri='image_uri_value',
-        service_account='service_account_value',
-        worker_pool='worker_pool_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.submit_build),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.submit_build(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == build.SubmitBuildRequest(
-            parent='parent_value',
-            image_uri='image_uri_value',
-            service_account='service_account_value',
-            worker_pool='worker_pool_value',
-        )
-
-def test_submit_build_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = BuildsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.submit_build in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.submit_build] = mock_rpc
-        request = {}
-        client.submit_build(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.submit_build(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_submit_build_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = BuildsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.submit_build in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.submit_build] = mock_rpc
-
-        request = {}
-        await client.submit_build(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.submit_build(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_submit_build_async(transport: str = 'grpc_asyncio', request_type=build.SubmitBuildRequest):
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.submit_build),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(build.SubmitBuildResponse(
-            base_image_uri='base_image_uri_value',
-            base_image_warning='base_image_warning_value',
-        ))
-        response = await client.submit_build(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = build.SubmitBuildRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, build.SubmitBuildResponse)
-    assert response.base_image_uri == 'base_image_uri_value'
-    assert response.base_image_warning == 'base_image_warning_value'
-
-
-@pytest.mark.asyncio
-async def test_submit_build_async_from_dict():
-    await test_submit_build_async(request_type=dict)
-
-def test_submit_build_field_headers():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = build.SubmitBuildRequest()
-
-    request.parent = 'parent_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.submit_build),
-            '__call__') as call:
-        call.return_value = build.SubmitBuildResponse()
-        client.submit_build(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'parent=parent_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_submit_build_field_headers_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = build.SubmitBuildRequest()
-
-    request.parent = 'parent_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.submit_build),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(build.SubmitBuildResponse())
-        await client.submit_build(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'parent=parent_value',
-    ) in kw['metadata']
-
-
-def test_submit_build_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = BuildsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.submit_build in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.submit_build] = mock_rpc
-
-        request = {}
-        client.submit_build(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.submit_build(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_submit_build_rest_required_fields(request_type=build.SubmitBuildRequest):
-    transport_class = transports.BuildsRestTransport
-
-    request_init = {}
-    request_init["parent"] = ""
-    request_init["image_uri"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).submit_build._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["parent"] = 'parent_value'
-    jsonified_request["imageUri"] = 'image_uri_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).submit_build._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "parent" in jsonified_request
-    assert jsonified_request["parent"] == 'parent_value'
-    assert "imageUri" in jsonified_request
-    assert jsonified_request["imageUri"] == 'image_uri_value'
-
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = build.SubmitBuildResponse()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = build.SubmitBuildResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.submit_build(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_submit_build_rest_unset_required_fields():
-    transport = transports.BuildsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.submit_build._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("parent", "storageSource", "imageUri", )))
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.BuildsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = BuildsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.BuildsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = BuildsClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.BuildsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = BuildsClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = BuildsClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.BuildsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = BuildsClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.BuildsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = BuildsClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.BuildsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.BuildsGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.BuildsGrpcTransport,
-    transports.BuildsGrpcAsyncIOTransport,
-    transports.BuildsRestTransport,
-])
-def test_transport_adc(transport_class):
-    # Test default credentials are used if not provided.
-    with mock.patch.object(google.auth, 'default') as adc:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport_class()
-        adc.assert_called_once()
-
-def test_transport_kind_grpc():
-    transport = BuildsClient.get_transport_class("grpc")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "grpc"
-
-
-def test_initialize_client_w_grpc():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_submit_build_empty_call_grpc():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.submit_build),
-            '__call__') as call:
-        call.return_value = build.SubmitBuildResponse()
-        client.submit_build(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = build.SubmitBuildRequest()
-
-        assert args[0] == request_msg
-
-
-def test_transport_kind_grpc_asyncio():
-    transport = BuildsAsyncClient.get_transport_class("grpc_asyncio")(
-        credentials=async_anonymous_credentials()
-    )
-    assert transport.kind == "grpc_asyncio"
-
-
-def test_initialize_client_w_grpc_asyncio():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_submit_build_empty_call_grpc_asyncio():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.submit_build),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(build.SubmitBuildResponse(
-            base_image_uri='base_image_uri_value',
-            base_image_warning='base_image_warning_value',
-        ))
-        await client.submit_build(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = build.SubmitBuildRequest()
-
-        assert args[0] == request_msg
-
-
-def test_transport_kind_rest():
-    transport = BuildsClient.get_transport_class("rest")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "rest"
-
-
-def test_submit_build_rest_bad_request(request_type=build.SubmitBuildRequest):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.submit_build(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  build.SubmitBuildRequest,
-  dict,
-])
-def test_submit_build_rest_call_success(request_type):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = build.SubmitBuildResponse(
-              base_image_uri='base_image_uri_value',
-              base_image_warning='base_image_warning_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = build.SubmitBuildResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.submit_build(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, build.SubmitBuildResponse)
-    assert response.base_image_uri == 'base_image_uri_value'
-    assert response.base_image_warning == 'base_image_warning_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_submit_build_rest_interceptors(null_interceptor):
-    transport = transports.BuildsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.BuildsRestInterceptor(),
-        )
-    client = BuildsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.BuildsRestInterceptor, "post_submit_build") as post, \
-        mock.patch.object(transports.BuildsRestInterceptor, "pre_submit_build") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = build.SubmitBuildRequest.pb(build.SubmitBuildRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = build.SubmitBuildResponse.to_json(build.SubmitBuildResponse())
-        req.return_value.content = return_value
-
-        request = build.SubmitBuildRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = build.SubmitBuildResponse()
-
-        client.submit_build(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.delete_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.DeleteOperationRequest,
-    dict,
-])
-def test_delete_operation_rest(request_type):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = None
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = '{}'
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.delete_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-
-def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.get_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.GetOperationRequest,
-    dict,
-])
-def test_get_operation_rest(request_type):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.get_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-
-def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.list_operations(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.ListOperationsRequest,
-    dict,
-])
-def test_list_operations_rest(request_type):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.ListOperationsResponse()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.list_operations(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-
-def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.wait_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.WaitOperationRequest,
-    dict,
-])
-def test_wait_operation_rest(request_type):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.wait_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_initialize_client_w_rest():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_submit_build_empty_call_rest():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.submit_build),
-            '__call__') as call:
-        client.submit_build(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = build.SubmitBuildRequest()
-
-        assert args[0] == request_msg
-
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.BuildsGrpcTransport,
-    )
-
-def test_builds_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.BuildsTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_builds_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.run_v2.services.builds.transports.BuildsTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.BuildsTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'submit_build',
-        'get_operation',
-        'wait_operation',
-        'delete_operation',
-        'list_operations',
-    )
-    for method in methods:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, method)(request=object())
-
-    with pytest.raises(NotImplementedError):
-        transport.close()
-
-    # Catch all for all remaining methods and properties
-    remainder = [
-        'kind',
-    ]
-    for r in remainder:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, r)()
-
-
-def test_builds_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.builds.transports.BuildsTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.BuildsTransport(
-            credentials_file="credentials.json",
-            quota_project_id="octopus",
-        )
-        load_creds.assert_called_once_with("credentials.json",
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id="octopus",
-        )
-
-
-def test_builds_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.builds.transports.BuildsTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.BuildsTransport()
-        adc.assert_called_once()
-
-
-def test_builds_auth_adc():
-    # 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)
-        BuildsClient()
-        adc.assert_called_once_with(
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id=None,
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.BuildsGrpcTransport,
-        transports.BuildsGrpcAsyncIOTransport,
-    ],
-)
-def test_builds_transport_auth_adc(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", scopes=["1", "2"])
-        adc.assert_called_once_with(
-            scopes=["1", "2"],
-            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
-            quota_project_id="octopus",
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.BuildsGrpcTransport,
-        transports.BuildsGrpcAsyncIOTransport,
-        transports.BuildsRestTransport,
-    ],
-)
-def test_builds_transport_auth_gdch_credentials(transport_class):
-    host = 'https://language.com'
-    api_audience_tests = [None, 'https://language2.com']
-    api_audience_expect = [host, 'https://language2.com']
-    for t, e in zip(api_audience_tests, api_audience_expect):
-        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
-            gdch_mock = mock.MagicMock()
-            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
-            adc.return_value = (gdch_mock, None)
-            transport_class(host=host, api_audience=t)
-            gdch_mock.with_gdch_audience.assert_called_once_with(
-                e
-            )
-
-
-@pytest.mark.parametrize(
-    "transport_class,grpc_helpers",
-    [
-        (transports.BuildsGrpcTransport, grpc_helpers),
-        (transports.BuildsGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_builds_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=creds,
-            credentials_file=None,
-            quota_project_id="octopus",
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=["1", "2"],
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.BuildsGrpcTransport, transports.BuildsGrpcAsyncIOTransport])
-def test_builds_grpc_transport_client_cert_source_for_mtls(
-    transport_class
-):
-    cred = ga_credentials.AnonymousCredentials()
-
-    # Check ssl_channel_credentials is used if provided.
-    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
-        mock_ssl_channel_creds = mock.Mock()
-        transport_class(
-            host="squid.clam.whelk",
-            credentials=cred,
-            ssl_channel_credentials=mock_ssl_channel_creds
-        )
-        mock_create_channel.assert_called_once_with(
-            "squid.clam.whelk:443",
-            credentials=cred,
-            credentials_file=None,
-            scopes=None,
-            ssl_credentials=mock_ssl_channel_creds,
-            quota_project_id=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
-    # is used.
-    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
-        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
-            transport_class(
-                credentials=cred,
-                client_cert_source_for_mtls=client_cert_source_callback
-            )
-            expected_cert, expected_key = client_cert_source_callback()
-            mock_ssl_cred.assert_called_once_with(
-                certificate_chain=expected_cert,
-                private_key=expected_key
-            )
-
-def test_builds_http_transport_client_cert_source_for_mtls():
-    cred = ga_credentials.AnonymousCredentials()
-    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
-        transports.BuildsRestTransport (
-            credentials=cred,
-            client_cert_source_for_mtls=client_cert_source_callback
-        )
-        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
-
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_builds_host_no_port(transport_name):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_builds_host_with_port(transport_name):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_builds_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = BuildsClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = BuildsClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.submit_build._session
-    session2 = client2.transport.submit_build._session
-    assert session1 != session2
-def test_builds_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.BuildsGrpcTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-def test_builds_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.BuildsGrpcAsyncIOTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.BuildsGrpcTransport, transports.BuildsGrpcAsyncIOTransport])
-def test_builds_transport_channel_mtls_with_client_cert_source(
-    transport_class
-):
-    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_ssl_cred = mock.Mock()
-            grpc_ssl_channel_cred.return_value = mock_ssl_cred
-
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-
-            cred = ga_credentials.AnonymousCredentials()
-            with pytest.warns(DeprecationWarning):
-                with mock.patch.object(google.auth, 'default') as adc:
-                    adc.return_value = (cred, None)
-                    transport = transport_class(
-                        host="squid.clam.whelk",
-                        api_mtls_endpoint="mtls.squid.clam.whelk",
-                        client_cert_source=client_cert_source_callback,
-                    )
-                    adc.assert_called_once()
-
-            grpc_ssl_channel_cred.assert_called_once_with(
-                certificate_chain=b"cert bytes", private_key=b"key bytes"
-            )
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-            assert transport._ssl_channel_credentials == mock_ssl_cred
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.BuildsGrpcTransport, transports.BuildsGrpcAsyncIOTransport])
-def test_builds_transport_channel_mtls_with_adc(
-    transport_class
-):
-    mock_ssl_cred = mock.Mock()
-    with mock.patch.multiple(
-        "google.auth.transport.grpc.SslCredentials",
-        __init__=mock.Mock(return_value=None),
-        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
-    ):
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-            mock_cred = mock.Mock()
-
-            with pytest.warns(DeprecationWarning):
-                transport = transport_class(
-                    host="squid.clam.whelk",
-                    credentials=mock_cred,
-                    api_mtls_endpoint="mtls.squid.clam.whelk",
-                    client_cert_source=None,
-                )
-
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=mock_cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-
-
-def test_worker_pool_path():
-    project = "squid"
-    location = "clam"
-    worker_pool = "whelk"
-    expected = "projects/{project}/locations/{location}/workerPools/{worker_pool}".format(project=project, location=location, worker_pool=worker_pool, )
-    actual = BuildsClient.worker_pool_path(project, location, worker_pool)
-    assert expected == actual
-
-
-def test_parse_worker_pool_path():
-    expected = {
-        "project": "octopus",
-        "location": "oyster",
-        "worker_pool": "nudibranch",
-    }
-    path = BuildsClient.worker_pool_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = BuildsClient.parse_worker_pool_path(path)
-    assert expected == actual
-
-def test_common_billing_account_path():
-    billing_account = "cuttlefish"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = BuildsClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "mussel",
-    }
-    path = BuildsClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = BuildsClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "winkle"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = BuildsClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "nautilus",
-    }
-    path = BuildsClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = BuildsClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "scallop"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = BuildsClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "abalone",
-    }
-    path = BuildsClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = BuildsClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "squid"
-    expected = "projects/{project}".format(project=project, )
-    actual = BuildsClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "clam",
-    }
-    path = BuildsClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = BuildsClient.parse_common_project_path(path)
-    assert expected == actual
-
-def test_common_location_path():
-    project = "whelk"
-    location = "octopus"
-    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
-    actual = BuildsClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "oyster",
-        "location": "nudibranch",
-    }
-    path = BuildsClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = BuildsClient.parse_common_location_path(path)
-    assert expected == actual
-
-
-def test_client_with_default_client_info():
-    client_info = gapic_v1.client_info.ClientInfo()
-
-    with mock.patch.object(transports.BuildsTransport, '_prep_wrapped_messages') as prep:
-        client = BuildsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.BuildsTransport, '_prep_wrapped_messages') as prep:
-        transport_class = BuildsClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-
-def test_delete_operation(transport: str = "grpc"):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-        response = client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-@pytest.mark.asyncio
-async def test_delete_operation_async(transport: str = "grpc_asyncio"):
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-def test_delete_operation_field_headers():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value =  None
-
-        client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_delete_operation_field_headers_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_delete_operation_from_dict():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-
-        response = client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_delete_operation_from_dict_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_wait_operation(transport: str = "grpc"):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_wait_operation(transport: str = "grpc_asyncio"):
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_wait_operation_field_headers():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_wait_operation_field_headers_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_wait_operation_from_dict():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_wait_operation_from_dict_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_get_operation(transport: str = "grpc"):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_get_operation_async(transport: str = "grpc_asyncio"):
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_get_operation_field_headers():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_get_operation_field_headers_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_get_operation_from_dict():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_get_operation_from_dict_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_list_operations(transport: str = "grpc"):
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-        response = client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-@pytest.mark.asyncio
-async def test_list_operations_async(transport: str = "grpc_asyncio"):
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-def test_list_operations_field_headers():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_list_operations_field_headers_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_list_operations_from_dict():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        response = client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_list_operations_from_dict_async():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_transport_close_grpc():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-@pytest.mark.asyncio
-async def test_transport_close_grpc_asyncio():
-    client = BuildsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        async with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_transport_close_rest():
-    client = BuildsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_client_ctx():
-    transports = [
-        'rest',
-        'grpc',
-    ]
-    for transport in transports:
-        client = BuildsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        # Test client calls underlying transport.
-        with mock.patch.object(type(client.transport), "close") as close:
-            close.assert_not_called()
-            with client:
-                pass
-            close.assert_called()
-
-@pytest.mark.parametrize("client_class,transport_class", [
-    (BuildsClient, transports.BuildsGrpcTransport),
-    (BuildsAsyncClient, transports.BuildsGrpcAsyncIOTransport),
-])
-def test_api_key_credentials(client_class, transport_class):
-    with mock.patch.object(
-        google.auth._default, "get_api_key_credentials", create=True
-    ) as get_api_key_credentials:
-        mock_cred = mock.Mock()
-        get_api_key_credentials.return_value = mock_cred
-        options = client_options.ClientOptions()
-        options.api_key = "api_key"
-        with mock.patch.object(transport_class, "__init__") as patched:
-            patched.return_value = None
-            client = client_class(client_options=options)
-            patched.assert_called_once_with(
-                credentials=mock_cred,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_executions.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_executions.py
deleted file mode 100644
index fd189d8e1981..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_executions.py
+++ /dev/null
@@ -1,5309 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 os
-# try/except added for compatibility with python < 3.8
-try:
-    from unittest import mock
-    from unittest.mock import AsyncMock  # pragma: NO COVER
-except ImportError:  # pragma: NO COVER
-    import mock
-
-import grpc
-from grpc.experimental import aio
-from collections.abc import Iterable, AsyncIterable
-from google.protobuf import json_format
-import json
-import math
-import pytest
-from google.api_core import api_core_version
-from proto.marshal.rules.dates import DurationRule, TimestampRule
-from proto.marshal.rules import wrappers
-from requests import Response
-from requests import Request, PreparedRequest
-from requests.sessions import Session
-from google.protobuf import json_format
-
-try:
-    from google.auth.aio import credentials as ga_credentials_async
-    HAS_GOOGLE_AUTH_AIO = True
-except ImportError: # pragma: NO COVER
-    HAS_GOOGLE_AUTH_AIO = False
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import client_options
-from google.api_core import exceptions as core_exceptions
-from google.api_core import future
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers
-from google.api_core import grpc_helpers_async
-from google.api_core import operation
-from google.api_core import operation_async  # type: ignore
-from google.api_core import operations_v1
-from google.api_core import path_template
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.location import locations_pb2
-from google.cloud.run_v2.services.executions import ExecutionsAsyncClient
-from google.cloud.run_v2.services.executions import ExecutionsClient
-from google.cloud.run_v2.services.executions import pagers
-from google.cloud.run_v2.services.executions import transports
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import execution
-from google.cloud.run_v2.types import task_template
-from google.longrunning import operations_pb2 # type: ignore
-from google.oauth2 import service_account
-from google.protobuf import timestamp_pb2  # type: ignore
-import google.auth
-
-
-async def mock_async_gen(data, chunk_size=1):
-    for i in range(0, len(data)):  # pragma: NO COVER
-        chunk = data[i : i + chunk_size]
-        yield chunk.encode("utf-8")
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
-# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
-def async_anonymous_credentials():
-    if HAS_GOOGLE_AUTH_AIO:
-        return ga_credentials_async.AnonymousCredentials()
-    return ga_credentials.AnonymousCredentials()
-
-# If default endpoint is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint(client):
-    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
-
-# If default endpoint template is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint template so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint_template(client):
-    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
-
-
-def test__get_default_mtls_endpoint():
-    api_endpoint = "example.googleapis.com"
-    api_mtls_endpoint = "example.mtls.googleapis.com"
-    sandbox_endpoint = "example.sandbox.googleapis.com"
-    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
-    non_googleapi = "api.example.com"
-
-    assert ExecutionsClient._get_default_mtls_endpoint(None) is None
-    assert ExecutionsClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert ExecutionsClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert ExecutionsClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert ExecutionsClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert ExecutionsClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-def test__read_environment_variables():
-    assert ExecutionsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        assert ExecutionsClient._read_environment_variables() == (True, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        assert ExecutionsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            ExecutionsClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        assert ExecutionsClient._read_environment_variables() == (False, "never", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        assert ExecutionsClient._read_environment_variables() == (False, "always", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
-        assert ExecutionsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            ExecutionsClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
-        assert ExecutionsClient._read_environment_variables() == (False, "auto", "foo.com")
-
-def test__get_client_cert_source():
-    mock_provided_cert_source = mock.Mock()
-    mock_default_cert_source = mock.Mock()
-
-    assert ExecutionsClient._get_client_cert_source(None, False) is None
-    assert ExecutionsClient._get_client_cert_source(mock_provided_cert_source, False) is None
-    assert ExecutionsClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
-
-    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
-            assert ExecutionsClient._get_client_cert_source(None, True) is mock_default_cert_source
-            assert ExecutionsClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
-
-@mock.patch.object(ExecutionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsClient))
-@mock.patch.object(ExecutionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsAsyncClient))
-def test__get_api_endpoint():
-    api_override = "foo.com"
-    mock_client_cert_source = mock.Mock()
-    default_universe = ExecutionsClient._DEFAULT_UNIVERSE
-    default_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    assert ExecutionsClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
-    assert ExecutionsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == ExecutionsClient.DEFAULT_MTLS_ENDPOINT
-    assert ExecutionsClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
-    assert ExecutionsClient._get_api_endpoint(None, None, default_universe, "always") == ExecutionsClient.DEFAULT_MTLS_ENDPOINT
-    assert ExecutionsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == ExecutionsClient.DEFAULT_MTLS_ENDPOINT
-    assert ExecutionsClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
-    assert ExecutionsClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
-
-    with pytest.raises(MutualTLSChannelError) as excinfo:
-        ExecutionsClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
-    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
-
-
-def test__get_universe_domain():
-    client_universe_domain = "foo.com"
-    universe_domain_env = "bar.com"
-
-    assert ExecutionsClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
-    assert ExecutionsClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
-    assert ExecutionsClient._get_universe_domain(None, None) == ExecutionsClient._DEFAULT_UNIVERSE
-
-    with pytest.raises(ValueError) as excinfo:
-        ExecutionsClient._get_universe_domain("", None)
-    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (ExecutionsClient, "grpc"),
-    (ExecutionsAsyncClient, "grpc_asyncio"),
-    (ExecutionsClient, "rest"),
-])
-def test_executions_client_from_service_account_info(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
-        factory.return_value = creds
-        info = {"valid": True}
-        client = client_class.from_service_account_info(info, transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.ExecutionsGrpcTransport, "grpc"),
-    (transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.ExecutionsRestTransport, "rest"),
-])
-def test_executions_client_service_account_always_use_jwt(transport_class, transport_name):
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=True)
-        use_jwt.assert_called_once_with(True)
-
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=False)
-        use_jwt.assert_not_called()
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (ExecutionsClient, "grpc"),
-    (ExecutionsAsyncClient, "grpc_asyncio"),
-    (ExecutionsClient, "rest"),
-])
-def test_executions_client_from_service_account_file(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
-        factory.return_value = creds
-        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-def test_executions_client_get_transport_class():
-    transport = ExecutionsClient.get_transport_class()
-    available_transports = [
-        transports.ExecutionsGrpcTransport,
-        transports.ExecutionsRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = ExecutionsClient.get_transport_class("grpc")
-    assert transport == transports.ExecutionsGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc"),
-    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ExecutionsClient, transports.ExecutionsRestTransport, "rest"),
-])
-@mock.patch.object(ExecutionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsClient))
-@mock.patch.object(ExecutionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsAsyncClient))
-def test_executions_client_client_options(client_class, transport_class, transport_name):
-    # Check that if channel is provided we won't create a new one.
-    with mock.patch.object(ExecutionsClient, 'get_transport_class') as gtc:
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-        client = client_class(transport=transport)
-        gtc.assert_not_called()
-
-    # Check that if channel is provided via str we will create a new one.
-    with mock.patch.object(ExecutionsClient, 'get_transport_class') as gtc:
-        client = client_class(transport=transport_name)
-        gtc.assert_called()
-
-    # Check the case api_endpoint is provided.
-    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(transport=transport_name, client_options=options)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "never".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "always".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client.DEFAULT_MTLS_ENDPOINT,
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    # Check the case quota_project_id is provided
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id="octopus",
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-    # Check the case api_endpoint is provided
-    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
-    with mock.patch.object(transport_class, '__init__') as patched:
-        patched.return_value = None
-        client = client_class(client_options=options, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience="https://language.googleapis.com"
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
-    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc", "true"),
-    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc", "false"),
-    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (ExecutionsClient, transports.ExecutionsRestTransport, "rest", "true"),
-    (ExecutionsClient, transports.ExecutionsRestTransport, "rest", "false"),
-])
-@mock.patch.object(ExecutionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsClient))
-@mock.patch.object(ExecutionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_executions_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
-    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
-    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
-
-    # Check the case client_cert_source is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
-        with mock.patch.object(transport_class, '__init__') as patched:
-            patched.return_value = None
-            client = client_class(client_options=options, transport=transport_name)
-
-            if use_client_cert_env == "false":
-                expected_client_cert_source = None
-                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-            else:
-                expected_client_cert_source = client_cert_source_callback
-                expected_host = client.DEFAULT_MTLS_ENDPOINT
-
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=expected_host,
-                scopes=None,
-                client_cert_source_for_mtls=expected_client_cert_source,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case ADC client cert is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
-                    if use_client_cert_env == "false":
-                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-                        expected_client_cert_source = None
-                    else:
-                        expected_host = client.DEFAULT_MTLS_ENDPOINT
-                        expected_client_cert_source = client_cert_source_callback
-
-                    patched.return_value = None
-                    client = client_class(transport=transport_name)
-                    patched.assert_called_once_with(
-                        credentials=None,
-                        credentials_file=None,
-                        host=expected_host,
-                        scopes=None,
-                        client_cert_source_for_mtls=expected_client_cert_source,
-                        quota_project_id=None,
-                        client_info=transports.base.DEFAULT_CLIENT_INFO,
-                        always_use_jwt_access=True,
-                        api_audience=None,
-                    )
-
-    # Check the case client_cert_source and ADC client cert are not provided.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
-                patched.return_value = None
-                client = client_class(transport=transport_name)
-                patched.assert_called_once_with(
-                    credentials=None,
-                    credentials_file=None,
-                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                    scopes=None,
-                    client_cert_source_for_mtls=None,
-                    quota_project_id=None,
-                    client_info=transports.base.DEFAULT_CLIENT_INFO,
-                    always_use_jwt_access=True,
-                    api_audience=None,
-                )
-
-
-@pytest.mark.parametrize("client_class", [
-    ExecutionsClient, ExecutionsAsyncClient
-])
-@mock.patch.object(ExecutionsClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ExecutionsClient))
-@mock.patch.object(ExecutionsAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ExecutionsAsyncClient))
-def test_executions_client_get_mtls_endpoint_and_cert_source(client_class):
-    mock_client_cert_source = mock.Mock()
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source == mock_client_cert_source
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        mock_client_cert_source = mock.Mock()
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
-            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-            assert api_endpoint == client_class.DEFAULT_ENDPOINT
-            assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
-                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-                assert cert_source == mock_client_cert_source
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-@pytest.mark.parametrize("client_class", [
-    ExecutionsClient, ExecutionsAsyncClient
-])
-@mock.patch.object(ExecutionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsClient))
-@mock.patch.object(ExecutionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ExecutionsAsyncClient))
-def test_executions_client_client_api_endpoint(client_class):
-    mock_client_cert_source = client_cert_source_callback
-    api_override = "foo.com"
-    default_universe = ExecutionsClient._DEFAULT_UNIVERSE
-    default_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = ExecutionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
-    # use ClientOptions.api_endpoint as the api endpoint regardless.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
-            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
-            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-            assert client.api_endpoint == api_override
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
-    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-
-    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
-    # and ClientOptions.universe_domain="bar.com",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
-    options = client_options.ClientOptions()
-    universe_exists = hasattr(options, "universe_domain")
-    if universe_exists:
-        options = client_options.ClientOptions(universe_domain=mock_universe)
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    else:
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
-    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
-
-    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    options = client_options.ClientOptions()
-    if hasattr(options, "universe_domain"):
-        delattr(options, "universe_domain")
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc"),
-    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ExecutionsClient, transports.ExecutionsRestTransport, "rest"),
-])
-def test_executions_client_client_options_scopes(client_class, transport_class, transport_name):
-    # Check the case scopes are provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=["1", "2"],
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc", grpc_helpers),
-    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (ExecutionsClient, transports.ExecutionsRestTransport, "rest", None),
-])
-def test_executions_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-def test_executions_client_client_options_from_dict():
-    with mock.patch('google.cloud.run_v2.services.executions.transports.ExecutionsGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = ExecutionsClient(
-            client_options={'api_endpoint': 'squid.clam.whelk'}
-        )
-        grpc_transport.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (ExecutionsClient, transports.ExecutionsGrpcTransport, "grpc", grpc_helpers),
-    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_executions_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # test that the credentials from file are saved and used as the credentials.
-    with mock.patch.object(
-        google.auth, "load_credentials_from_file", autospec=True
-    ) as load_creds, mock.patch.object(
-        google.auth, "default", autospec=True
-    ) as adc, mock.patch.object(
-        grpc_helpers, "create_channel"
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        file_creds = ga_credentials.AnonymousCredentials()
-        load_creds.return_value = (file_creds, None)
-        adc.return_value = (creds, None)
-        client = client_class(client_options=options, transport=transport_name)
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=file_creds,
-            credentials_file=None,
-            quota_project_id=None,
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=None,
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  execution.GetExecutionRequest,
-  dict,
-])
-def test_get_execution(request_type, transport: str = 'grpc'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = execution.Execution(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            job='job_value',
-            parallelism=1174,
-            task_count=1083,
-            reconciling=True,
-            observed_generation=2021,
-            running_count=1417,
-            succeeded_count=1581,
-            failed_count=1261,
-            cancelled_count=1571,
-            retried_count=1399,
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            etag='etag_value',
-        )
-        response = client.get_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = execution.GetExecutionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, execution.Execution)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.job == 'job_value'
-    assert response.parallelism == 1174
-    assert response.task_count == 1083
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.running_count == 1417
-    assert response.succeeded_count == 1581
-    assert response.failed_count == 1261
-    assert response.cancelled_count == 1571
-    assert response.retried_count == 1399
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-def test_get_execution_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = execution.GetExecutionRequest(
-        name='name_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.get_execution(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == execution.GetExecutionRequest(
-            name='name_value',
-        )
-
-def test_get_execution_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_execution in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_execution] = mock_rpc
-        request = {}
-        client.get_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_execution_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ExecutionsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.get_execution in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.get_execution] = mock_rpc
-
-        request = {}
-        await client.get_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.get_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_execution_async(transport: str = 'grpc_asyncio', request_type=execution.GetExecutionRequest):
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(execution.Execution(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            job='job_value',
-            parallelism=1174,
-            task_count=1083,
-            reconciling=True,
-            observed_generation=2021,
-            running_count=1417,
-            succeeded_count=1581,
-            failed_count=1261,
-            cancelled_count=1571,
-            retried_count=1399,
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            etag='etag_value',
-        ))
-        response = await client.get_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = execution.GetExecutionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, execution.Execution)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.job == 'job_value'
-    assert response.parallelism == 1174
-    assert response.task_count == 1083
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.running_count == 1417
-    assert response.succeeded_count == 1581
-    assert response.failed_count == 1261
-    assert response.cancelled_count == 1571
-    assert response.retried_count == 1399
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.asyncio
-async def test_get_execution_async_from_dict():
-    await test_get_execution_async(request_type=dict)
-
-def test_get_execution_field_headers():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = execution.GetExecutionRequest()
-
-    request.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        call.return_value = execution.Execution()
-        client.get_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'name=name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_get_execution_field_headers_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = execution.GetExecutionRequest()
-
-    request.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.Execution())
-        await client.get_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'name=name_value',
-    ) in kw['metadata']
-
-
-def test_get_execution_flattened():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = execution.Execution()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.get_execution(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_get_execution_flattened_error():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_execution(
-            execution.GetExecutionRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_get_execution_flattened_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = execution.Execution()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.Execution())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.get_execution(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_get_execution_flattened_error_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.get_execution(
-            execution.GetExecutionRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  execution.ListExecutionsRequest,
-  dict,
-])
-def test_list_executions(request_type, transport: str = 'grpc'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = execution.ListExecutionsResponse(
-            next_page_token='next_page_token_value',
-        )
-        response = client.list_executions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = execution.ListExecutionsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListExecutionsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_executions_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = execution.ListExecutionsRequest(
-        parent='parent_value',
-        page_token='page_token_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.list_executions(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == execution.ListExecutionsRequest(
-            parent='parent_value',
-            page_token='page_token_value',
-        )
-
-def test_list_executions_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_executions in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_executions] = mock_rpc
-        request = {}
-        client.list_executions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_executions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_executions_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ExecutionsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.list_executions in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.list_executions] = mock_rpc
-
-        request = {}
-        await client.list_executions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.list_executions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_executions_async(transport: str = 'grpc_asyncio', request_type=execution.ListExecutionsRequest):
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(execution.ListExecutionsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        response = await client.list_executions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = execution.ListExecutionsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListExecutionsAsyncPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.asyncio
-async def test_list_executions_async_from_dict():
-    await test_list_executions_async(request_type=dict)
-
-def test_list_executions_field_headers():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = execution.ListExecutionsRequest()
-
-    request.parent = 'parent_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        call.return_value = execution.ListExecutionsResponse()
-        client.list_executions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'parent=parent_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_list_executions_field_headers_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = execution.ListExecutionsRequest()
-
-    request.parent = 'parent_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.ListExecutionsResponse())
-        await client.list_executions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'parent=parent_value',
-    ) in kw['metadata']
-
-
-def test_list_executions_flattened():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = execution.ListExecutionsResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.list_executions(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-
-def test_list_executions_flattened_error():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_executions(
-            execution.ListExecutionsRequest(),
-            parent='parent_value',
-        )
-
-@pytest.mark.asyncio
-async def test_list_executions_flattened_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = execution.ListExecutionsResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.ListExecutionsResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.list_executions(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_list_executions_flattened_error_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.list_executions(
-            execution.ListExecutionsRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_executions_pager(transport_name: str = "grpc"):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-                next_page_token='abc',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[],
-                next_page_token='def',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                ],
-                next_page_token='ghi',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-            ),
-            RuntimeError,
-        )
-
-        expected_metadata = ()
-        retry = retries.Retry()
-        timeout = 5
-        expected_metadata = tuple(expected_metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ('parent', ''),
-            )),
-        )
-        pager = client.list_executions(request={}, retry=retry, timeout=timeout)
-
-        assert pager._metadata == expected_metadata
-        assert pager._retry == retry
-        assert pager._timeout == timeout
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, execution.Execution)
-                   for i in results)
-def test_list_executions_pages(transport_name: str = "grpc"):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-                next_page_token='abc',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[],
-                next_page_token='def',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                ],
-                next_page_token='ghi',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = list(client.list_executions(request={}).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.asyncio
-async def test_list_executions_async_pager():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-                next_page_token='abc',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[],
-                next_page_token='def',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                ],
-                next_page_token='ghi',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-            ),
-            RuntimeError,
-        )
-        async_pager = await client.list_executions(request={},)
-        assert async_pager.next_page_token == 'abc'
-        responses = []
-        async for response in async_pager: # pragma: no branch
-            responses.append(response)
-
-        assert len(responses) == 6
-        assert all(isinstance(i, execution.Execution)
-                for i in responses)
-
-
-@pytest.mark.asyncio
-async def test_list_executions_async_pages():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-                next_page_token='abc',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[],
-                next_page_token='def',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                ],
-                next_page_token='ghi',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = []
-        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
-        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
-        async for page_ in ( # pragma: no branch
-            await client.list_executions(request={})
-        ).pages:
-            pages.append(page_)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.parametrize("request_type", [
-  execution.DeleteExecutionRequest,
-  dict,
-])
-def test_delete_execution(request_type, transport: str = 'grpc'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.delete_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = execution.DeleteExecutionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_delete_execution_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = execution.DeleteExecutionRequest(
-        name='name_value',
-        etag='etag_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.delete_execution(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == execution.DeleteExecutionRequest(
-            name='name_value',
-            etag='etag_value',
-        )
-
-def test_delete_execution_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.delete_execution in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.delete_execution] = mock_rpc
-        request = {}
-        client.delete_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.delete_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_delete_execution_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ExecutionsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.delete_execution in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.delete_execution] = mock_rpc
-
-        request = {}
-        await client.delete_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.delete_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_delete_execution_async(transport: str = 'grpc_asyncio', request_type=execution.DeleteExecutionRequest):
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.delete_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = execution.DeleteExecutionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_delete_execution_async_from_dict():
-    await test_delete_execution_async(request_type=dict)
-
-def test_delete_execution_field_headers():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = execution.DeleteExecutionRequest()
-
-    request.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.delete_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'name=name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_delete_execution_field_headers_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = execution.DeleteExecutionRequest()
-
-    request.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op'))
-        await client.delete_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'name=name_value',
-    ) in kw['metadata']
-
-
-def test_delete_execution_flattened():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.delete_execution(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_delete_execution_flattened_error():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.delete_execution(
-            execution.DeleteExecutionRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_delete_execution_flattened_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.delete_execution(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_delete_execution_flattened_error_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.delete_execution(
-            execution.DeleteExecutionRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  execution.CancelExecutionRequest,
-  dict,
-])
-def test_cancel_execution(request_type, transport: str = 'grpc'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.cancel_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = execution.CancelExecutionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_cancel_execution_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = execution.CancelExecutionRequest(
-        name='name_value',
-        etag='etag_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.cancel_execution(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == execution.CancelExecutionRequest(
-            name='name_value',
-            etag='etag_value',
-        )
-
-def test_cancel_execution_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.cancel_execution in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.cancel_execution] = mock_rpc
-        request = {}
-        client.cancel_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.cancel_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_cancel_execution_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ExecutionsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.cancel_execution in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.cancel_execution] = mock_rpc
-
-        request = {}
-        await client.cancel_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.cancel_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_cancel_execution_async(transport: str = 'grpc_asyncio', request_type=execution.CancelExecutionRequest):
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.cancel_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = execution.CancelExecutionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_cancel_execution_async_from_dict():
-    await test_cancel_execution_async(request_type=dict)
-
-def test_cancel_execution_field_headers():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = execution.CancelExecutionRequest()
-
-    request.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.cancel_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'name=name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_cancel_execution_field_headers_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = execution.CancelExecutionRequest()
-
-    request.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op'))
-        await client.cancel_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'name=name_value',
-    ) in kw['metadata']
-
-
-def test_cancel_execution_flattened():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.cancel_execution(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_cancel_execution_flattened_error():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.cancel_execution(
-            execution.CancelExecutionRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_cancel_execution_flattened_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.cancel_execution(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_cancel_execution_flattened_error_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.cancel_execution(
-            execution.CancelExecutionRequest(),
-            name='name_value',
-        )
-
-
-def test_get_execution_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_execution in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_execution] = mock_rpc
-
-        request = {}
-        client.get_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_get_execution_rest_required_fields(request_type=execution.GetExecutionRequest):
-    transport_class = transports.ExecutionsRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_execution._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_execution._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = execution.Execution()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = execution.Execution.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.get_execution(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_get_execution_rest_unset_required_fields():
-    transport = transports.ExecutionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.get_execution._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("name", )))
-
-
-def test_get_execution_rest_flattened():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = execution.Execution()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = execution.Execution.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.get_execution(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*/executions/*}" % client.transport._host, args[1])
-
-
-def test_get_execution_rest_flattened_error(transport: str = 'rest'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_execution(
-            execution.GetExecutionRequest(),
-            name='name_value',
-        )
-
-
-def test_list_executions_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_executions in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_executions] = mock_rpc
-
-        request = {}
-        client.list_executions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_executions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_list_executions_rest_required_fields(request_type=execution.ListExecutionsRequest):
-    transport_class = transports.ExecutionsRestTransport
-
-    request_init = {}
-    request_init["parent"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_executions._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["parent"] = 'parent_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_executions._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "parent" in jsonified_request
-    assert jsonified_request["parent"] == 'parent_value'
-
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = execution.ListExecutionsResponse()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = execution.ListExecutionsResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.list_executions(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_list_executions_rest_unset_required_fields():
-    transport = transports.ExecutionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.list_executions._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
-
-
-def test_list_executions_rest_flattened():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = execution.ListExecutionsResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'parent': 'projects/sample1/locations/sample2/jobs/sample3'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            parent='parent_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = execution.ListExecutionsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.list_executions(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{parent=projects/*/locations/*/jobs/*}/executions" % client.transport._host, args[1])
-
-
-def test_list_executions_rest_flattened_error(transport: str = 'rest'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_executions(
-            execution.ListExecutionsRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_executions_rest_pager(transport: str = 'rest'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # TODO(kbandes): remove this mock unless there's a good reason for it.
-        #with mock.patch.object(path_template, 'transcode') as transcode:
-        # Set the response as a series of pages
-        response = (
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-                next_page_token='abc',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[],
-                next_page_token='def',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                ],
-                next_page_token='ghi',
-            ),
-            execution.ListExecutionsResponse(
-                executions=[
-                    execution.Execution(),
-                    execution.Execution(),
-                ],
-            ),
-        )
-        # Two responses for two calls
-        response = response + response
-
-        # Wrap the values into proper Response objs
-        response = tuple(execution.ListExecutionsResponse.to_json(x) for x in response)
-        return_values = tuple(Response() for i in response)
-        for return_val, response_val in zip(return_values, response):
-            return_val._content = response_val.encode('UTF-8')
-            return_val.status_code = 200
-        req.side_effect = return_values
-
-        sample_request = {'parent': 'projects/sample1/locations/sample2/jobs/sample3'}
-
-        pager = client.list_executions(request=sample_request)
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, execution.Execution)
-                for i in results)
-
-        pages = list(client.list_executions(request=sample_request).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-
-def test_delete_execution_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.delete_execution in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.delete_execution] = mock_rpc
-
-        request = {}
-        client.delete_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.delete_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_delete_execution_rest_required_fields(request_type=execution.DeleteExecutionRequest):
-    transport_class = transports.ExecutionsRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_execution._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_execution._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("etag", "validate_only", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "delete",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.delete_execution(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_delete_execution_rest_unset_required_fields():
-    transport = transports.ExecutionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.delete_execution._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("etag", "validateOnly", )) & set(("name", )))
-
-
-def test_delete_execution_rest_flattened():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.delete_execution(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*/executions/*}" % client.transport._host, args[1])
-
-
-def test_delete_execution_rest_flattened_error(transport: str = 'rest'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.delete_execution(
-            execution.DeleteExecutionRequest(),
-            name='name_value',
-        )
-
-
-def test_cancel_execution_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.cancel_execution in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.cancel_execution] = mock_rpc
-
-        request = {}
-        client.cancel_execution(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.cancel_execution(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_cancel_execution_rest_required_fields(request_type=execution.CancelExecutionRequest):
-    transport_class = transports.ExecutionsRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).cancel_execution._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).cancel_execution._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.cancel_execution(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_cancel_execution_rest_unset_required_fields():
-    transport = transports.ExecutionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.cancel_execution._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("name", )))
-
-
-def test_cancel_execution_rest_flattened():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.cancel_execution(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*/executions/*}:cancel" % client.transport._host, args[1])
-
-
-def test_cancel_execution_rest_flattened_error(transport: str = 'rest'):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.cancel_execution(
-            execution.CancelExecutionRequest(),
-            name='name_value',
-        )
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.ExecutionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.ExecutionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ExecutionsClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.ExecutionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ExecutionsClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ExecutionsClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.ExecutionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ExecutionsClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ExecutionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = ExecutionsClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ExecutionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.ExecutionsGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.ExecutionsGrpcTransport,
-    transports.ExecutionsGrpcAsyncIOTransport,
-    transports.ExecutionsRestTransport,
-])
-def test_transport_adc(transport_class):
-    # Test default credentials are used if not provided.
-    with mock.patch.object(google.auth, 'default') as adc:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport_class()
-        adc.assert_called_once()
-
-def test_transport_kind_grpc():
-    transport = ExecutionsClient.get_transport_class("grpc")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "grpc"
-
-
-def test_initialize_client_w_grpc():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_execution_empty_call_grpc():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        call.return_value = execution.Execution()
-        client.get_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.GetExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_executions_empty_call_grpc():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        call.return_value = execution.ListExecutionsResponse()
-        client.list_executions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.ListExecutionsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_delete_execution_empty_call_grpc():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.delete_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.DeleteExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_cancel_execution_empty_call_grpc():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.cancel_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.CancelExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-def test_transport_kind_grpc_asyncio():
-    transport = ExecutionsAsyncClient.get_transport_class("grpc_asyncio")(
-        credentials=async_anonymous_credentials()
-    )
-    assert transport.kind == "grpc_asyncio"
-
-
-def test_initialize_client_w_grpc_asyncio():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_get_execution_empty_call_grpc_asyncio():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.Execution(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            job='job_value',
-            parallelism=1174,
-            task_count=1083,
-            reconciling=True,
-            observed_generation=2021,
-            running_count=1417,
-            succeeded_count=1581,
-            failed_count=1261,
-            cancelled_count=1571,
-            retried_count=1399,
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            etag='etag_value',
-        ))
-        await client.get_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.GetExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_list_executions_empty_call_grpc_asyncio():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(execution.ListExecutionsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        await client.list_executions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.ListExecutionsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_delete_execution_empty_call_grpc_asyncio():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.delete_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.DeleteExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_cancel_execution_empty_call_grpc_asyncio():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.cancel_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.CancelExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-def test_transport_kind_rest():
-    transport = ExecutionsClient.get_transport_class("rest")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "rest"
-
-
-def test_get_execution_rest_bad_request(request_type=execution.GetExecutionRequest):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.get_execution(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  execution.GetExecutionRequest,
-  dict,
-])
-def test_get_execution_rest_call_success(request_type):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = execution.Execution(
-              name='name_value',
-              uid='uid_value',
-              generation=1068,
-              launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-              job='job_value',
-              parallelism=1174,
-              task_count=1083,
-              reconciling=True,
-              observed_generation=2021,
-              running_count=1417,
-              succeeded_count=1581,
-              failed_count=1261,
-              cancelled_count=1571,
-              retried_count=1399,
-              log_uri='log_uri_value',
-              satisfies_pzs=True,
-              etag='etag_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = execution.Execution.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.get_execution(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, execution.Execution)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.job == 'job_value'
-    assert response.parallelism == 1174
-    assert response.task_count == 1083
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.running_count == 1417
-    assert response.succeeded_count == 1581
-    assert response.failed_count == 1261
-    assert response.cancelled_count == 1571
-    assert response.retried_count == 1399
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_get_execution_rest_interceptors(null_interceptor):
-    transport = transports.ExecutionsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ExecutionsRestInterceptor(),
-        )
-    client = ExecutionsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.ExecutionsRestInterceptor, "post_get_execution") as post, \
-        mock.patch.object(transports.ExecutionsRestInterceptor, "pre_get_execution") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = execution.GetExecutionRequest.pb(execution.GetExecutionRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = execution.Execution.to_json(execution.Execution())
-        req.return_value.content = return_value
-
-        request = execution.GetExecutionRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = execution.Execution()
-
-        client.get_execution(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_list_executions_rest_bad_request(request_type=execution.ListExecutionsRequest):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.list_executions(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  execution.ListExecutionsRequest,
-  dict,
-])
-def test_list_executions_rest_call_success(request_type):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = execution.ListExecutionsResponse(
-              next_page_token='next_page_token_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = execution.ListExecutionsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.list_executions(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListExecutionsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_list_executions_rest_interceptors(null_interceptor):
-    transport = transports.ExecutionsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ExecutionsRestInterceptor(),
-        )
-    client = ExecutionsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.ExecutionsRestInterceptor, "post_list_executions") as post, \
-        mock.patch.object(transports.ExecutionsRestInterceptor, "pre_list_executions") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = execution.ListExecutionsRequest.pb(execution.ListExecutionsRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = execution.ListExecutionsResponse.to_json(execution.ListExecutionsResponse())
-        req.return_value.content = return_value
-
-        request = execution.ListExecutionsRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = execution.ListExecutionsResponse()
-
-        client.list_executions(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_execution_rest_bad_request(request_type=execution.DeleteExecutionRequest):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.delete_execution(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  execution.DeleteExecutionRequest,
-  dict,
-])
-def test_delete_execution_rest_call_success(request_type):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.delete_execution(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_delete_execution_rest_interceptors(null_interceptor):
-    transport = transports.ExecutionsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ExecutionsRestInterceptor(),
-        )
-    client = ExecutionsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.ExecutionsRestInterceptor, "post_delete_execution") as post, \
-        mock.patch.object(transports.ExecutionsRestInterceptor, "pre_delete_execution") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = execution.DeleteExecutionRequest.pb(execution.DeleteExecutionRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = execution.DeleteExecutionRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.delete_execution(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_cancel_execution_rest_bad_request(request_type=execution.CancelExecutionRequest):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.cancel_execution(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  execution.CancelExecutionRequest,
-  dict,
-])
-def test_cancel_execution_rest_call_success(request_type):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.cancel_execution(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_cancel_execution_rest_interceptors(null_interceptor):
-    transport = transports.ExecutionsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ExecutionsRestInterceptor(),
-        )
-    client = ExecutionsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.ExecutionsRestInterceptor, "post_cancel_execution") as post, \
-        mock.patch.object(transports.ExecutionsRestInterceptor, "pre_cancel_execution") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = execution.CancelExecutionRequest.pb(execution.CancelExecutionRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = execution.CancelExecutionRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.cancel_execution(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.delete_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.DeleteOperationRequest,
-    dict,
-])
-def test_delete_operation_rest(request_type):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = None
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = '{}'
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.delete_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-
-def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.get_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.GetOperationRequest,
-    dict,
-])
-def test_get_operation_rest(request_type):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.get_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-
-def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.list_operations(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.ListOperationsRequest,
-    dict,
-])
-def test_list_operations_rest(request_type):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.ListOperationsResponse()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.list_operations(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-
-def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.wait_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.WaitOperationRequest,
-    dict,
-])
-def test_wait_operation_rest(request_type):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.wait_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_initialize_client_w_rest():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_execution_empty_call_rest():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_execution),
-            '__call__') as call:
-        client.get_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.GetExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_executions_empty_call_rest():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_executions),
-            '__call__') as call:
-        client.list_executions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.ListExecutionsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_delete_execution_empty_call_rest():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_execution),
-            '__call__') as call:
-        client.delete_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.DeleteExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_cancel_execution_empty_call_rest():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.cancel_execution),
-            '__call__') as call:
-        client.cancel_execution(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = execution.CancelExecutionRequest()
-
-        assert args[0] == request_msg
-
-
-def test_executions_rest_lro_client():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    transport = client.transport
-
-    # Ensure that we have an api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-operations_v1.AbstractOperationsClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.ExecutionsGrpcTransport,
-    )
-
-def test_executions_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.ExecutionsTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_executions_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.run_v2.services.executions.transports.ExecutionsTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.ExecutionsTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'get_execution',
-        'list_executions',
-        'delete_execution',
-        'cancel_execution',
-        'get_operation',
-        'wait_operation',
-        'delete_operation',
-        'list_operations',
-    )
-    for method in methods:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, method)(request=object())
-
-    with pytest.raises(NotImplementedError):
-        transport.close()
-
-    # Additionally, the LRO client (a property) should
-    # also raise NotImplementedError
-    with pytest.raises(NotImplementedError):
-        transport.operations_client
-
-    # Catch all for all remaining methods and properties
-    remainder = [
-        'kind',
-    ]
-    for r in remainder:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, r)()
-
-
-def test_executions_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.executions.transports.ExecutionsTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ExecutionsTransport(
-            credentials_file="credentials.json",
-            quota_project_id="octopus",
-        )
-        load_creds.assert_called_once_with("credentials.json",
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id="octopus",
-        )
-
-
-def test_executions_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.executions.transports.ExecutionsTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ExecutionsTransport()
-        adc.assert_called_once()
-
-
-def test_executions_auth_adc():
-    # 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)
-        ExecutionsClient()
-        adc.assert_called_once_with(
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id=None,
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.ExecutionsGrpcTransport,
-        transports.ExecutionsGrpcAsyncIOTransport,
-    ],
-)
-def test_executions_transport_auth_adc(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", scopes=["1", "2"])
-        adc.assert_called_once_with(
-            scopes=["1", "2"],
-            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
-            quota_project_id="octopus",
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.ExecutionsGrpcTransport,
-        transports.ExecutionsGrpcAsyncIOTransport,
-        transports.ExecutionsRestTransport,
-    ],
-)
-def test_executions_transport_auth_gdch_credentials(transport_class):
-    host = 'https://language.com'
-    api_audience_tests = [None, 'https://language2.com']
-    api_audience_expect = [host, 'https://language2.com']
-    for t, e in zip(api_audience_tests, api_audience_expect):
-        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
-            gdch_mock = mock.MagicMock()
-            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
-            adc.return_value = (gdch_mock, None)
-            transport_class(host=host, api_audience=t)
-            gdch_mock.with_gdch_audience.assert_called_once_with(
-                e
-            )
-
-
-@pytest.mark.parametrize(
-    "transport_class,grpc_helpers",
-    [
-        (transports.ExecutionsGrpcTransport, grpc_helpers),
-        (transports.ExecutionsGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_executions_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=creds,
-            credentials_file=None,
-            quota_project_id="octopus",
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=["1", "2"],
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.ExecutionsGrpcTransport, transports.ExecutionsGrpcAsyncIOTransport])
-def test_executions_grpc_transport_client_cert_source_for_mtls(
-    transport_class
-):
-    cred = ga_credentials.AnonymousCredentials()
-
-    # Check ssl_channel_credentials is used if provided.
-    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
-        mock_ssl_channel_creds = mock.Mock()
-        transport_class(
-            host="squid.clam.whelk",
-            credentials=cred,
-            ssl_channel_credentials=mock_ssl_channel_creds
-        )
-        mock_create_channel.assert_called_once_with(
-            "squid.clam.whelk:443",
-            credentials=cred,
-            credentials_file=None,
-            scopes=None,
-            ssl_credentials=mock_ssl_channel_creds,
-            quota_project_id=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
-    # is used.
-    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
-        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
-            transport_class(
-                credentials=cred,
-                client_cert_source_for_mtls=client_cert_source_callback
-            )
-            expected_cert, expected_key = client_cert_source_callback()
-            mock_ssl_cred.assert_called_once_with(
-                certificate_chain=expected_cert,
-                private_key=expected_key
-            )
-
-def test_executions_http_transport_client_cert_source_for_mtls():
-    cred = ga_credentials.AnonymousCredentials()
-    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
-        transports.ExecutionsRestTransport (
-            credentials=cred,
-            client_cert_source_for_mtls=client_cert_source_callback
-        )
-        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
-
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_executions_host_no_port(transport_name):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_executions_host_with_port(transport_name):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_executions_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = ExecutionsClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = ExecutionsClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.get_execution._session
-    session2 = client2.transport.get_execution._session
-    assert session1 != session2
-    session1 = client1.transport.list_executions._session
-    session2 = client2.transport.list_executions._session
-    assert session1 != session2
-    session1 = client1.transport.delete_execution._session
-    session2 = client2.transport.delete_execution._session
-    assert session1 != session2
-    session1 = client1.transport.cancel_execution._session
-    session2 = client2.transport.cancel_execution._session
-    assert session1 != session2
-def test_executions_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ExecutionsGrpcTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-def test_executions_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ExecutionsGrpcAsyncIOTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.ExecutionsGrpcTransport, transports.ExecutionsGrpcAsyncIOTransport])
-def test_executions_transport_channel_mtls_with_client_cert_source(
-    transport_class
-):
-    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_ssl_cred = mock.Mock()
-            grpc_ssl_channel_cred.return_value = mock_ssl_cred
-
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-
-            cred = ga_credentials.AnonymousCredentials()
-            with pytest.warns(DeprecationWarning):
-                with mock.patch.object(google.auth, 'default') as adc:
-                    adc.return_value = (cred, None)
-                    transport = transport_class(
-                        host="squid.clam.whelk",
-                        api_mtls_endpoint="mtls.squid.clam.whelk",
-                        client_cert_source=client_cert_source_callback,
-                    )
-                    adc.assert_called_once()
-
-            grpc_ssl_channel_cred.assert_called_once_with(
-                certificate_chain=b"cert bytes", private_key=b"key bytes"
-            )
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-            assert transport._ssl_channel_credentials == mock_ssl_cred
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.ExecutionsGrpcTransport, transports.ExecutionsGrpcAsyncIOTransport])
-def test_executions_transport_channel_mtls_with_adc(
-    transport_class
-):
-    mock_ssl_cred = mock.Mock()
-    with mock.patch.multiple(
-        "google.auth.transport.grpc.SslCredentials",
-        __init__=mock.Mock(return_value=None),
-        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
-    ):
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-            mock_cred = mock.Mock()
-
-            with pytest.warns(DeprecationWarning):
-                transport = transport_class(
-                    host="squid.clam.whelk",
-                    credentials=mock_cred,
-                    api_mtls_endpoint="mtls.squid.clam.whelk",
-                    client_cert_source=None,
-                )
-
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=mock_cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-
-
-def test_executions_grpc_lro_client():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-    transport = client.transport
-
-    # Ensure that we have a api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-        operations_v1.OperationsClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-
-def test_executions_grpc_lro_async_client():
-    client = ExecutionsAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc_asyncio',
-    )
-    transport = client.transport
-
-    # Ensure that we have a api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-        operations_v1.OperationsAsyncClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-
-def test_connector_path():
-    project = "squid"
-    location = "clam"
-    connector = "whelk"
-    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-    actual = ExecutionsClient.connector_path(project, location, connector)
-    assert expected == actual
-
-
-def test_parse_connector_path():
-    expected = {
-        "project": "octopus",
-        "location": "oyster",
-        "connector": "nudibranch",
-    }
-    path = ExecutionsClient.connector_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_connector_path(path)
-    assert expected == actual
-
-def test_crypto_key_path():
-    project = "cuttlefish"
-    location = "mussel"
-    key_ring = "winkle"
-    crypto_key = "nautilus"
-    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-    actual = ExecutionsClient.crypto_key_path(project, location, key_ring, crypto_key)
-    assert expected == actual
-
-
-def test_parse_crypto_key_path():
-    expected = {
-        "project": "scallop",
-        "location": "abalone",
-        "key_ring": "squid",
-        "crypto_key": "clam",
-    }
-    path = ExecutionsClient.crypto_key_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_crypto_key_path(path)
-    assert expected == actual
-
-def test_execution_path():
-    project = "whelk"
-    location = "octopus"
-    job = "oyster"
-    execution = "nudibranch"
-    expected = "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
-    actual = ExecutionsClient.execution_path(project, location, job, execution)
-    assert expected == actual
-
-
-def test_parse_execution_path():
-    expected = {
-        "project": "cuttlefish",
-        "location": "mussel",
-        "job": "winkle",
-        "execution": "nautilus",
-    }
-    path = ExecutionsClient.execution_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_execution_path(path)
-    assert expected == actual
-
-def test_job_path():
-    project = "scallop"
-    location = "abalone"
-    job = "squid"
-    expected = "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
-    actual = ExecutionsClient.job_path(project, location, job)
-    assert expected == actual
-
-
-def test_parse_job_path():
-    expected = {
-        "project": "clam",
-        "location": "whelk",
-        "job": "octopus",
-    }
-    path = ExecutionsClient.job_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_job_path(path)
-    assert expected == actual
-
-def test_secret_path():
-    project = "oyster"
-    secret = "nudibranch"
-    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-    actual = ExecutionsClient.secret_path(project, secret)
-    assert expected == actual
-
-
-def test_parse_secret_path():
-    expected = {
-        "project": "cuttlefish",
-        "secret": "mussel",
-    }
-    path = ExecutionsClient.secret_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_secret_path(path)
-    assert expected == actual
-
-def test_secret_version_path():
-    project = "winkle"
-    secret = "nautilus"
-    version = "scallop"
-    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-    actual = ExecutionsClient.secret_version_path(project, secret, version)
-    assert expected == actual
-
-
-def test_parse_secret_version_path():
-    expected = {
-        "project": "abalone",
-        "secret": "squid",
-        "version": "clam",
-    }
-    path = ExecutionsClient.secret_version_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_secret_version_path(path)
-    assert expected == actual
-
-def test_common_billing_account_path():
-    billing_account = "whelk"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = ExecutionsClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "octopus",
-    }
-    path = ExecutionsClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "oyster"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = ExecutionsClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "nudibranch",
-    }
-    path = ExecutionsClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "cuttlefish"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = ExecutionsClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "mussel",
-    }
-    path = ExecutionsClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "winkle"
-    expected = "projects/{project}".format(project=project, )
-    actual = ExecutionsClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "nautilus",
-    }
-    path = ExecutionsClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_common_project_path(path)
-    assert expected == actual
-
-def test_common_location_path():
-    project = "scallop"
-    location = "abalone"
-    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
-    actual = ExecutionsClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "squid",
-        "location": "clam",
-    }
-    path = ExecutionsClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ExecutionsClient.parse_common_location_path(path)
-    assert expected == actual
-
-
-def test_client_with_default_client_info():
-    client_info = gapic_v1.client_info.ClientInfo()
-
-    with mock.patch.object(transports.ExecutionsTransport, '_prep_wrapped_messages') as prep:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.ExecutionsTransport, '_prep_wrapped_messages') as prep:
-        transport_class = ExecutionsClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-
-def test_delete_operation(transport: str = "grpc"):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-        response = client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-@pytest.mark.asyncio
-async def test_delete_operation_async(transport: str = "grpc_asyncio"):
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-def test_delete_operation_field_headers():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value =  None
-
-        client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_delete_operation_field_headers_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_delete_operation_from_dict():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-
-        response = client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_delete_operation_from_dict_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_wait_operation(transport: str = "grpc"):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_wait_operation(transport: str = "grpc_asyncio"):
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_wait_operation_field_headers():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_wait_operation_field_headers_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_wait_operation_from_dict():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_wait_operation_from_dict_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_get_operation(transport: str = "grpc"):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_get_operation_async(transport: str = "grpc_asyncio"):
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_get_operation_field_headers():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_get_operation_field_headers_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_get_operation_from_dict():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_get_operation_from_dict_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_list_operations(transport: str = "grpc"):
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-        response = client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-@pytest.mark.asyncio
-async def test_list_operations_async(transport: str = "grpc_asyncio"):
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-def test_list_operations_field_headers():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_list_operations_field_headers_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_list_operations_from_dict():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        response = client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_list_operations_from_dict_async():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_transport_close_grpc():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-@pytest.mark.asyncio
-async def test_transport_close_grpc_asyncio():
-    client = ExecutionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        async with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_transport_close_rest():
-    client = ExecutionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_client_ctx():
-    transports = [
-        'rest',
-        'grpc',
-    ]
-    for transport in transports:
-        client = ExecutionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        # Test client calls underlying transport.
-        with mock.patch.object(type(client.transport), "close") as close:
-            close.assert_not_called()
-            with client:
-                pass
-            close.assert_called()
-
-@pytest.mark.parametrize("client_class,transport_class", [
-    (ExecutionsClient, transports.ExecutionsGrpcTransport),
-    (ExecutionsAsyncClient, transports.ExecutionsGrpcAsyncIOTransport),
-])
-def test_api_key_credentials(client_class, transport_class):
-    with mock.patch.object(
-        google.auth._default, "get_api_key_credentials", create=True
-    ) as get_api_key_credentials:
-        mock_cred = mock.Mock()
-        get_api_key_credentials.return_value = mock_cred
-        options = client_options.ClientOptions()
-        options.api_key = "api_key"
-        with mock.patch.object(transport_class, "__init__") as patched:
-            patched.return_value = None
-            client = client_class(client_options=options)
-            patched.assert_called_once_with(
-                credentials=mock_cred,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_jobs.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_jobs.py
deleted file mode 100644
index 2856430a0a97..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_jobs.py
+++ /dev/null
@@ -1,8448 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 os
-# try/except added for compatibility with python < 3.8
-try:
-    from unittest import mock
-    from unittest.mock import AsyncMock  # pragma: NO COVER
-except ImportError:  # pragma: NO COVER
-    import mock
-
-import grpc
-from grpc.experimental import aio
-from collections.abc import Iterable, AsyncIterable
-from google.protobuf import json_format
-import json
-import math
-import pytest
-from google.api_core import api_core_version
-from proto.marshal.rules.dates import DurationRule, TimestampRule
-from proto.marshal.rules import wrappers
-from requests import Response
-from requests import Request, PreparedRequest
-from requests.sessions import Session
-from google.protobuf import json_format
-
-try:
-    from google.auth.aio import credentials as ga_credentials_async
-    HAS_GOOGLE_AUTH_AIO = True
-except ImportError: # pragma: NO COVER
-    HAS_GOOGLE_AUTH_AIO = False
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import client_options
-from google.api_core import exceptions as core_exceptions
-from google.api_core import future
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers
-from google.api_core import grpc_helpers_async
-from google.api_core import operation
-from google.api_core import operation_async  # type: ignore
-from google.api_core import operations_v1
-from google.api_core import path_template
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.location import locations_pb2
-from google.cloud.run_v2.services.jobs import JobsAsyncClient
-from google.cloud.run_v2.services.jobs import JobsClient
-from google.cloud.run_v2.services.jobs import pagers
-from google.cloud.run_v2.services.jobs import transports
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import execution
-from google.cloud.run_v2.types import execution_template
-from google.cloud.run_v2.types import job
-from google.cloud.run_v2.types import job as gcr_job
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import task_template
-from google.cloud.run_v2.types import vendor_settings
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import options_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from google.oauth2 import service_account
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import field_mask_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from google.type import expr_pb2  # type: ignore
-import google.auth
-
-
-async def mock_async_gen(data, chunk_size=1):
-    for i in range(0, len(data)):  # pragma: NO COVER
-        chunk = data[i : i + chunk_size]
-        yield chunk.encode("utf-8")
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
-# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
-def async_anonymous_credentials():
-    if HAS_GOOGLE_AUTH_AIO:
-        return ga_credentials_async.AnonymousCredentials()
-    return ga_credentials.AnonymousCredentials()
-
-# If default endpoint is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint(client):
-    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
-
-# If default endpoint template is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint template so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint_template(client):
-    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
-
-
-def test__get_default_mtls_endpoint():
-    api_endpoint = "example.googleapis.com"
-    api_mtls_endpoint = "example.mtls.googleapis.com"
-    sandbox_endpoint = "example.sandbox.googleapis.com"
-    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
-    non_googleapi = "api.example.com"
-
-    assert JobsClient._get_default_mtls_endpoint(None) is None
-    assert JobsClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert JobsClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert JobsClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert JobsClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert JobsClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-def test__read_environment_variables():
-    assert JobsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        assert JobsClient._read_environment_variables() == (True, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        assert JobsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            JobsClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        assert JobsClient._read_environment_variables() == (False, "never", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        assert JobsClient._read_environment_variables() == (False, "always", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
-        assert JobsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            JobsClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
-        assert JobsClient._read_environment_variables() == (False, "auto", "foo.com")
-
-def test__get_client_cert_source():
-    mock_provided_cert_source = mock.Mock()
-    mock_default_cert_source = mock.Mock()
-
-    assert JobsClient._get_client_cert_source(None, False) is None
-    assert JobsClient._get_client_cert_source(mock_provided_cert_source, False) is None
-    assert JobsClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
-
-    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
-            assert JobsClient._get_client_cert_source(None, True) is mock_default_cert_source
-            assert JobsClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
-
-@mock.patch.object(JobsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsClient))
-@mock.patch.object(JobsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsAsyncClient))
-def test__get_api_endpoint():
-    api_override = "foo.com"
-    mock_client_cert_source = mock.Mock()
-    default_universe = JobsClient._DEFAULT_UNIVERSE
-    default_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    assert JobsClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
-    assert JobsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == JobsClient.DEFAULT_MTLS_ENDPOINT
-    assert JobsClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
-    assert JobsClient._get_api_endpoint(None, None, default_universe, "always") == JobsClient.DEFAULT_MTLS_ENDPOINT
-    assert JobsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == JobsClient.DEFAULT_MTLS_ENDPOINT
-    assert JobsClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
-    assert JobsClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
-
-    with pytest.raises(MutualTLSChannelError) as excinfo:
-        JobsClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
-    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
-
-
-def test__get_universe_domain():
-    client_universe_domain = "foo.com"
-    universe_domain_env = "bar.com"
-
-    assert JobsClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
-    assert JobsClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
-    assert JobsClient._get_universe_domain(None, None) == JobsClient._DEFAULT_UNIVERSE
-
-    with pytest.raises(ValueError) as excinfo:
-        JobsClient._get_universe_domain("", None)
-    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (JobsClient, "grpc"),
-    (JobsAsyncClient, "grpc_asyncio"),
-    (JobsClient, "rest"),
-])
-def test_jobs_client_from_service_account_info(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
-        factory.return_value = creds
-        info = {"valid": True}
-        client = client_class.from_service_account_info(info, transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.JobsGrpcTransport, "grpc"),
-    (transports.JobsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.JobsRestTransport, "rest"),
-])
-def test_jobs_client_service_account_always_use_jwt(transport_class, transport_name):
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=True)
-        use_jwt.assert_called_once_with(True)
-
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=False)
-        use_jwt.assert_not_called()
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (JobsClient, "grpc"),
-    (JobsAsyncClient, "grpc_asyncio"),
-    (JobsClient, "rest"),
-])
-def test_jobs_client_from_service_account_file(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
-        factory.return_value = creds
-        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-def test_jobs_client_get_transport_class():
-    transport = JobsClient.get_transport_class()
-    available_transports = [
-        transports.JobsGrpcTransport,
-        transports.JobsRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = JobsClient.get_transport_class("grpc")
-    assert transport == transports.JobsGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (JobsClient, transports.JobsGrpcTransport, "grpc"),
-    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (JobsClient, transports.JobsRestTransport, "rest"),
-])
-@mock.patch.object(JobsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsClient))
-@mock.patch.object(JobsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsAsyncClient))
-def test_jobs_client_client_options(client_class, transport_class, transport_name):
-    # Check that if channel is provided we won't create a new one.
-    with mock.patch.object(JobsClient, 'get_transport_class') as gtc:
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-        client = client_class(transport=transport)
-        gtc.assert_not_called()
-
-    # Check that if channel is provided via str we will create a new one.
-    with mock.patch.object(JobsClient, 'get_transport_class') as gtc:
-        client = client_class(transport=transport_name)
-        gtc.assert_called()
-
-    # Check the case api_endpoint is provided.
-    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(transport=transport_name, client_options=options)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "never".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "always".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client.DEFAULT_MTLS_ENDPOINT,
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    # Check the case quota_project_id is provided
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id="octopus",
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-    # Check the case api_endpoint is provided
-    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
-    with mock.patch.object(transport_class, '__init__') as patched:
-        patched.return_value = None
-        client = client_class(client_options=options, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience="https://language.googleapis.com"
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
-    (JobsClient, transports.JobsGrpcTransport, "grpc", "true"),
-    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (JobsClient, transports.JobsGrpcTransport, "grpc", "false"),
-    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (JobsClient, transports.JobsRestTransport, "rest", "true"),
-    (JobsClient, transports.JobsRestTransport, "rest", "false"),
-])
-@mock.patch.object(JobsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsClient))
-@mock.patch.object(JobsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_jobs_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
-    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
-    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
-
-    # Check the case client_cert_source is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
-        with mock.patch.object(transport_class, '__init__') as patched:
-            patched.return_value = None
-            client = client_class(client_options=options, transport=transport_name)
-
-            if use_client_cert_env == "false":
-                expected_client_cert_source = None
-                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-            else:
-                expected_client_cert_source = client_cert_source_callback
-                expected_host = client.DEFAULT_MTLS_ENDPOINT
-
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=expected_host,
-                scopes=None,
-                client_cert_source_for_mtls=expected_client_cert_source,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case ADC client cert is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
-                    if use_client_cert_env == "false":
-                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-                        expected_client_cert_source = None
-                    else:
-                        expected_host = client.DEFAULT_MTLS_ENDPOINT
-                        expected_client_cert_source = client_cert_source_callback
-
-                    patched.return_value = None
-                    client = client_class(transport=transport_name)
-                    patched.assert_called_once_with(
-                        credentials=None,
-                        credentials_file=None,
-                        host=expected_host,
-                        scopes=None,
-                        client_cert_source_for_mtls=expected_client_cert_source,
-                        quota_project_id=None,
-                        client_info=transports.base.DEFAULT_CLIENT_INFO,
-                        always_use_jwt_access=True,
-                        api_audience=None,
-                    )
-
-    # Check the case client_cert_source and ADC client cert are not provided.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
-                patched.return_value = None
-                client = client_class(transport=transport_name)
-                patched.assert_called_once_with(
-                    credentials=None,
-                    credentials_file=None,
-                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                    scopes=None,
-                    client_cert_source_for_mtls=None,
-                    quota_project_id=None,
-                    client_info=transports.base.DEFAULT_CLIENT_INFO,
-                    always_use_jwt_access=True,
-                    api_audience=None,
-                )
-
-
-@pytest.mark.parametrize("client_class", [
-    JobsClient, JobsAsyncClient
-])
-@mock.patch.object(JobsClient, "DEFAULT_ENDPOINT", modify_default_endpoint(JobsClient))
-@mock.patch.object(JobsAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(JobsAsyncClient))
-def test_jobs_client_get_mtls_endpoint_and_cert_source(client_class):
-    mock_client_cert_source = mock.Mock()
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source == mock_client_cert_source
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        mock_client_cert_source = mock.Mock()
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
-            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-            assert api_endpoint == client_class.DEFAULT_ENDPOINT
-            assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
-                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-                assert cert_source == mock_client_cert_source
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-@pytest.mark.parametrize("client_class", [
-    JobsClient, JobsAsyncClient
-])
-@mock.patch.object(JobsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsClient))
-@mock.patch.object(JobsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(JobsAsyncClient))
-def test_jobs_client_client_api_endpoint(client_class):
-    mock_client_cert_source = client_cert_source_callback
-    api_override = "foo.com"
-    default_universe = JobsClient._DEFAULT_UNIVERSE
-    default_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = JobsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
-    # use ClientOptions.api_endpoint as the api endpoint regardless.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
-            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
-            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-            assert client.api_endpoint == api_override
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
-    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-
-    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
-    # and ClientOptions.universe_domain="bar.com",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
-    options = client_options.ClientOptions()
-    universe_exists = hasattr(options, "universe_domain")
-    if universe_exists:
-        options = client_options.ClientOptions(universe_domain=mock_universe)
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    else:
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
-    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
-
-    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    options = client_options.ClientOptions()
-    if hasattr(options, "universe_domain"):
-        delattr(options, "universe_domain")
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (JobsClient, transports.JobsGrpcTransport, "grpc"),
-    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (JobsClient, transports.JobsRestTransport, "rest"),
-])
-def test_jobs_client_client_options_scopes(client_class, transport_class, transport_name):
-    # Check the case scopes are provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=["1", "2"],
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (JobsClient, transports.JobsGrpcTransport, "grpc", grpc_helpers),
-    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (JobsClient, transports.JobsRestTransport, "rest", None),
-])
-def test_jobs_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-def test_jobs_client_client_options_from_dict():
-    with mock.patch('google.cloud.run_v2.services.jobs.transports.JobsGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = JobsClient(
-            client_options={'api_endpoint': 'squid.clam.whelk'}
-        )
-        grpc_transport.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (JobsClient, transports.JobsGrpcTransport, "grpc", grpc_helpers),
-    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_jobs_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # test that the credentials from file are saved and used as the credentials.
-    with mock.patch.object(
-        google.auth, "load_credentials_from_file", autospec=True
-    ) as load_creds, mock.patch.object(
-        google.auth, "default", autospec=True
-    ) as adc, mock.patch.object(
-        grpc_helpers, "create_channel"
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        file_creds = ga_credentials.AnonymousCredentials()
-        load_creds.return_value = (file_creds, None)
-        adc.return_value = (creds, None)
-        client = client_class(client_options=options, transport=transport_name)
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=file_creds,
-            credentials_file=None,
-            quota_project_id=None,
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=None,
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  gcr_job.CreateJobRequest,
-  dict,
-])
-def test_create_job(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.create_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = gcr_job.CreateJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_create_job_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = gcr_job.CreateJobRequest(
-        parent='parent_value',
-        job_id='job_id_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.create_job(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == gcr_job.CreateJobRequest(
-            parent='parent_value',
-            job_id='job_id_value',
-        )
-
-def test_create_job_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.create_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.create_job] = mock_rpc
-        request = {}
-        client.create_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.create_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_create_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.create_job in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.create_job] = mock_rpc
-
-        request = {}
-        await client.create_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.create_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_create_job_async(transport: str = 'grpc_asyncio', request_type=gcr_job.CreateJobRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.create_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = gcr_job.CreateJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_create_job_async_from_dict():
-    await test_create_job_async(request_type=dict)
-
-
-def test_create_job_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.create_job(
-            parent='parent_value',
-            job=gcr_job.Job(name='name_value'),
-            job_id='job_id_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-        arg = args[0].job
-        mock_val = gcr_job.Job(name='name_value')
-        assert arg == mock_val
-        arg = args[0].job_id
-        mock_val = 'job_id_value'
-        assert arg == mock_val
-
-
-def test_create_job_flattened_error():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.create_job(
-            gcr_job.CreateJobRequest(),
-            parent='parent_value',
-            job=gcr_job.Job(name='name_value'),
-            job_id='job_id_value',
-        )
-
-@pytest.mark.asyncio
-async def test_create_job_flattened_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.create_job(
-            parent='parent_value',
-            job=gcr_job.Job(name='name_value'),
-            job_id='job_id_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-        arg = args[0].job
-        mock_val = gcr_job.Job(name='name_value')
-        assert arg == mock_val
-        arg = args[0].job_id
-        mock_val = 'job_id_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_create_job_flattened_error_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.create_job(
-            gcr_job.CreateJobRequest(),
-            parent='parent_value',
-            job=gcr_job.Job(name='name_value'),
-            job_id='job_id_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  job.GetJobRequest,
-  dict,
-])
-def test_get_job(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = job.Job(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            creator='creator_value',
-            last_modifier='last_modifier_value',
-            client='client_value',
-            client_version='client_version_value',
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            observed_generation=2021,
-            execution_count=1628,
-            reconciling=True,
-            satisfies_pzs=True,
-            etag='etag_value',
-            start_execution_token='start_execution_token_value',
-        )
-        response = client.get_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = job.GetJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, job.Job)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.creator == 'creator_value'
-    assert response.last_modifier == 'last_modifier_value'
-    assert response.client == 'client_value'
-    assert response.client_version == 'client_version_value'
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.observed_generation == 2021
-    assert response.execution_count == 1628
-    assert response.reconciling is True
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-def test_get_job_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = job.GetJobRequest(
-        name='name_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.get_job(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == job.GetJobRequest(
-            name='name_value',
-        )
-
-def test_get_job_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_job] = mock_rpc
-        request = {}
-        client.get_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.get_job in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.get_job] = mock_rpc
-
-        request = {}
-        await client.get_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.get_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_job_async(transport: str = 'grpc_asyncio', request_type=job.GetJobRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(job.Job(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            creator='creator_value',
-            last_modifier='last_modifier_value',
-            client='client_value',
-            client_version='client_version_value',
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            observed_generation=2021,
-            execution_count=1628,
-            reconciling=True,
-            satisfies_pzs=True,
-            etag='etag_value',
-        ))
-        response = await client.get_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = job.GetJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, job.Job)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.creator == 'creator_value'
-    assert response.last_modifier == 'last_modifier_value'
-    assert response.client == 'client_value'
-    assert response.client_version == 'client_version_value'
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.observed_generation == 2021
-    assert response.execution_count == 1628
-    assert response.reconciling is True
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.asyncio
-async def test_get_job_async_from_dict():
-    await test_get_job_async(request_type=dict)
-
-
-def test_get_job_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = job.Job()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.get_job(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_get_job_flattened_error():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_job(
-            job.GetJobRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_get_job_flattened_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = job.Job()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.Job())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.get_job(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_get_job_flattened_error_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.get_job(
-            job.GetJobRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  job.ListJobsRequest,
-  dict,
-])
-def test_list_jobs(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = job.ListJobsResponse(
-            next_page_token='next_page_token_value',
-        )
-        response = client.list_jobs(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = job.ListJobsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListJobsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_jobs_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = job.ListJobsRequest(
-        parent='parent_value',
-        page_token='page_token_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.list_jobs(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == job.ListJobsRequest(
-            parent='parent_value',
-            page_token='page_token_value',
-        )
-
-def test_list_jobs_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_jobs in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_jobs] = mock_rpc
-        request = {}
-        client.list_jobs(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_jobs(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_jobs_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.list_jobs in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.list_jobs] = mock_rpc
-
-        request = {}
-        await client.list_jobs(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.list_jobs(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_jobs_async(transport: str = 'grpc_asyncio', request_type=job.ListJobsRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(job.ListJobsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        response = await client.list_jobs(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = job.ListJobsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListJobsAsyncPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.asyncio
-async def test_list_jobs_async_from_dict():
-    await test_list_jobs_async(request_type=dict)
-
-
-def test_list_jobs_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = job.ListJobsResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.list_jobs(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-
-def test_list_jobs_flattened_error():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_jobs(
-            job.ListJobsRequest(),
-            parent='parent_value',
-        )
-
-@pytest.mark.asyncio
-async def test_list_jobs_flattened_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = job.ListJobsResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.ListJobsResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.list_jobs(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_list_jobs_flattened_error_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.list_jobs(
-            job.ListJobsRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_jobs_pager(transport_name: str = "grpc"):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                    job.Job(),
-                ],
-                next_page_token='abc',
-            ),
-            job.ListJobsResponse(
-                jobs=[],
-                next_page_token='def',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                ],
-                next_page_token='ghi',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                ],
-            ),
-            RuntimeError,
-        )
-
-        expected_metadata = ()
-        retry = retries.Retry()
-        timeout = 5
-        pager = client.list_jobs(request={}, retry=retry, timeout=timeout)
-
-        assert pager._metadata == expected_metadata
-        assert pager._retry == retry
-        assert pager._timeout == timeout
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, job.Job)
-                   for i in results)
-def test_list_jobs_pages(transport_name: str = "grpc"):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                    job.Job(),
-                ],
-                next_page_token='abc',
-            ),
-            job.ListJobsResponse(
-                jobs=[],
-                next_page_token='def',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                ],
-                next_page_token='ghi',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = list(client.list_jobs(request={}).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.asyncio
-async def test_list_jobs_async_pager():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                    job.Job(),
-                ],
-                next_page_token='abc',
-            ),
-            job.ListJobsResponse(
-                jobs=[],
-                next_page_token='def',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                ],
-                next_page_token='ghi',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                ],
-            ),
-            RuntimeError,
-        )
-        async_pager = await client.list_jobs(request={},)
-        assert async_pager.next_page_token == 'abc'
-        responses = []
-        async for response in async_pager: # pragma: no branch
-            responses.append(response)
-
-        assert len(responses) == 6
-        assert all(isinstance(i, job.Job)
-                for i in responses)
-
-
-@pytest.mark.asyncio
-async def test_list_jobs_async_pages():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                    job.Job(),
-                ],
-                next_page_token='abc',
-            ),
-            job.ListJobsResponse(
-                jobs=[],
-                next_page_token='def',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                ],
-                next_page_token='ghi',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = []
-        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
-        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
-        async for page_ in ( # pragma: no branch
-            await client.list_jobs(request={})
-        ).pages:
-            pages.append(page_)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.parametrize("request_type", [
-  gcr_job.UpdateJobRequest,
-  dict,
-])
-def test_update_job(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.update_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = gcr_job.UpdateJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_update_job_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = gcr_job.UpdateJobRequest(
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.update_job(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == gcr_job.UpdateJobRequest(
-        )
-
-def test_update_job_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.update_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.update_job] = mock_rpc
-        request = {}
-        client.update_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.update_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_update_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.update_job in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.update_job] = mock_rpc
-
-        request = {}
-        await client.update_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.update_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_update_job_async(transport: str = 'grpc_asyncio', request_type=gcr_job.UpdateJobRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.update_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = gcr_job.UpdateJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_update_job_async_from_dict():
-    await test_update_job_async(request_type=dict)
-
-
-def test_update_job_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.update_job(
-            job=gcr_job.Job(name='name_value'),
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].job
-        mock_val = gcr_job.Job(name='name_value')
-        assert arg == mock_val
-
-
-def test_update_job_flattened_error():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.update_job(
-            gcr_job.UpdateJobRequest(),
-            job=gcr_job.Job(name='name_value'),
-        )
-
-@pytest.mark.asyncio
-async def test_update_job_flattened_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.update_job(
-            job=gcr_job.Job(name='name_value'),
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].job
-        mock_val = gcr_job.Job(name='name_value')
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_update_job_flattened_error_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.update_job(
-            gcr_job.UpdateJobRequest(),
-            job=gcr_job.Job(name='name_value'),
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  job.DeleteJobRequest,
-  dict,
-])
-def test_delete_job(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.delete_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = job.DeleteJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_delete_job_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = job.DeleteJobRequest(
-        name='name_value',
-        etag='etag_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.delete_job(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == job.DeleteJobRequest(
-            name='name_value',
-            etag='etag_value',
-        )
-
-def test_delete_job_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.delete_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.delete_job] = mock_rpc
-        request = {}
-        client.delete_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.delete_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_delete_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.delete_job in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.delete_job] = mock_rpc
-
-        request = {}
-        await client.delete_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.delete_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_delete_job_async(transport: str = 'grpc_asyncio', request_type=job.DeleteJobRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.delete_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = job.DeleteJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_delete_job_async_from_dict():
-    await test_delete_job_async(request_type=dict)
-
-
-def test_delete_job_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.delete_job(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_delete_job_flattened_error():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.delete_job(
-            job.DeleteJobRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_delete_job_flattened_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.delete_job(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_delete_job_flattened_error_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.delete_job(
-            job.DeleteJobRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  job.RunJobRequest,
-  dict,
-])
-def test_run_job(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.run_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = job.RunJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_run_job_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = job.RunJobRequest(
-        name='name_value',
-        etag='etag_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.run_job(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == job.RunJobRequest(
-            name='name_value',
-            etag='etag_value',
-        )
-
-def test_run_job_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.run_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.run_job] = mock_rpc
-        request = {}
-        client.run_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.run_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_run_job_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.run_job in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.run_job] = mock_rpc
-
-        request = {}
-        await client.run_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.run_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_run_job_async(transport: str = 'grpc_asyncio', request_type=job.RunJobRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.run_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = job.RunJobRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_run_job_async_from_dict():
-    await test_run_job_async(request_type=dict)
-
-
-def test_run_job_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.run_job(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_run_job_flattened_error():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.run_job(
-            job.RunJobRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_run_job_flattened_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.run_job(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_run_job_flattened_error_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.run_job(
-            job.RunJobRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.GetIamPolicyRequest,
-  dict,
-])
-def test_get_iam_policy(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        )
-        response = client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.GetIamPolicyRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-def test_get_iam_policy_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = iam_policy_pb2.GetIamPolicyRequest(
-        resource='resource_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.get_iam_policy(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == iam_policy_pb2.GetIamPolicyRequest(
-            resource='resource_value',
-        )
-
-def test_get_iam_policy_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_iam_policy in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc
-        request = {}
-        client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_iam_policy_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.get_iam_policy in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.get_iam_policy] = mock_rpc
-
-        request = {}
-        await client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.get_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_iam_policy_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.GetIamPolicyRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        ))
-        response = await client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.GetIamPolicyRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-@pytest.mark.asyncio
-async def test_get_iam_policy_async_from_dict():
-    await test_get_iam_policy_async(request_type=dict)
-
-def test_get_iam_policy_field_headers():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.GetIamPolicyRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        call.return_value = policy_pb2.Policy()
-        client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_get_iam_policy_field_headers_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.GetIamPolicyRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy())
-        await client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-def test_get_iam_policy_from_dict_foreign():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = policy_pb2.Policy()
-        response = client.get_iam_policy(request={
-            'resource': 'resource_value',
-            'options': options_pb2.GetPolicyOptions(requested_policy_version=2598),
-            }
-        )
-        call.assert_called()
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.SetIamPolicyRequest,
-  dict,
-])
-def test_set_iam_policy(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        )
-        response = client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.SetIamPolicyRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-def test_set_iam_policy_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = iam_policy_pb2.SetIamPolicyRequest(
-        resource='resource_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.set_iam_policy(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == iam_policy_pb2.SetIamPolicyRequest(
-            resource='resource_value',
-        )
-
-def test_set_iam_policy_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.set_iam_policy in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc
-        request = {}
-        client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.set_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_set_iam_policy_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.set_iam_policy in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.set_iam_policy] = mock_rpc
-
-        request = {}
-        await client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.set_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_set_iam_policy_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.SetIamPolicyRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        ))
-        response = await client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.SetIamPolicyRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-@pytest.mark.asyncio
-async def test_set_iam_policy_async_from_dict():
-    await test_set_iam_policy_async(request_type=dict)
-
-def test_set_iam_policy_field_headers():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.SetIamPolicyRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        call.return_value = policy_pb2.Policy()
-        client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_set_iam_policy_field_headers_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.SetIamPolicyRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy())
-        await client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-def test_set_iam_policy_from_dict_foreign():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = policy_pb2.Policy()
-        response = client.set_iam_policy(request={
-            'resource': 'resource_value',
-            'policy': policy_pb2.Policy(version=774),
-            'update_mask': field_mask_pb2.FieldMask(paths=['paths_value']),
-            }
-        )
-        call.assert_called()
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.TestIamPermissionsRequest,
-  dict,
-])
-def test_test_iam_permissions(request_type, transport: str = 'grpc'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = iam_policy_pb2.TestIamPermissionsResponse(
-            permissions=['permissions_value'],
-        )
-        response = client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.TestIamPermissionsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
-    assert response.permissions == ['permissions_value']
-
-
-def test_test_iam_permissions_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = iam_policy_pb2.TestIamPermissionsRequest(
-        resource='resource_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.test_iam_permissions(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == iam_policy_pb2.TestIamPermissionsRequest(
-            resource='resource_value',
-        )
-
-def test_test_iam_permissions_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.test_iam_permissions in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.test_iam_permissions] = mock_rpc
-        request = {}
-        client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.test_iam_permissions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_test_iam_permissions_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = JobsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.test_iam_permissions in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.test_iam_permissions] = mock_rpc
-
-        request = {}
-        await client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.test_iam_permissions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_test_iam_permissions_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.TestIamPermissionsRequest):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse(
-            permissions=['permissions_value'],
-        ))
-        response = await client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.TestIamPermissionsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
-    assert response.permissions == ['permissions_value']
-
-
-@pytest.mark.asyncio
-async def test_test_iam_permissions_async_from_dict():
-    await test_test_iam_permissions_async(request_type=dict)
-
-def test_test_iam_permissions_field_headers():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.TestIamPermissionsRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
-        client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_test_iam_permissions_field_headers_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.TestIamPermissionsRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse())
-        await client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-def test_test_iam_permissions_from_dict_foreign():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
-        response = client.test_iam_permissions(request={
-            'resource': 'resource_value',
-            'permissions': ['permissions_value'],
-            }
-        )
-        call.assert_called()
-
-
-def test_create_job_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.create_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.create_job] = mock_rpc
-
-        request = {}
-        client.create_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.create_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_create_job_rest_required_fields(request_type=gcr_job.CreateJobRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request_init["parent"] = ""
-    request_init["job_id"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-    assert "jobId" not in jsonified_request
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).create_job._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-    assert "jobId" in jsonified_request
-    assert jsonified_request["jobId"] == request_init["job_id"]
-
-    jsonified_request["parent"] = 'parent_value'
-    jsonified_request["jobId"] = 'job_id_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).create_job._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("job_id", "validate_only", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "parent" in jsonified_request
-    assert jsonified_request["parent"] == 'parent_value'
-    assert "jobId" in jsonified_request
-    assert jsonified_request["jobId"] == 'job_id_value'
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.create_job(request)
-
-            expected_params = [
-                (
-                    "jobId",
-                    "",
-                ),
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_create_job_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.create_job._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("jobId", "validateOnly", )) & set(("parent", "job", "jobId", )))
-
-
-def test_create_job_rest_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'parent': 'projects/sample1/locations/sample2'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            parent='parent_value',
-            job=gcr_job.Job(name='name_value'),
-            job_id='job_id_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.create_job(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{parent=projects/*/locations/*}/jobs" % client.transport._host, args[1])
-
-
-def test_create_job_rest_flattened_error(transport: str = 'rest'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.create_job(
-            gcr_job.CreateJobRequest(),
-            parent='parent_value',
-            job=gcr_job.Job(name='name_value'),
-            job_id='job_id_value',
-        )
-
-
-def test_get_job_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_job] = mock_rpc
-
-        request = {}
-        client.get_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_get_job_rest_required_fields(request_type=job.GetJobRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_job._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_job._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = job.Job()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = job.Job.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.get_job(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_get_job_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.get_job._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("name", )))
-
-
-def test_get_job_rest_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = job.Job()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = job.Job.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.get_job(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*}" % client.transport._host, args[1])
-
-
-def test_get_job_rest_flattened_error(transport: str = 'rest'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_job(
-            job.GetJobRequest(),
-            name='name_value',
-        )
-
-
-def test_list_jobs_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_jobs in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_jobs] = mock_rpc
-
-        request = {}
-        client.list_jobs(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_jobs(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_list_jobs_rest_required_fields(request_type=job.ListJobsRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request_init["parent"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_jobs._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["parent"] = 'parent_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_jobs._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "parent" in jsonified_request
-    assert jsonified_request["parent"] == 'parent_value'
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = job.ListJobsResponse()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = job.ListJobsResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.list_jobs(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_list_jobs_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.list_jobs._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
-
-
-def test_list_jobs_rest_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = job.ListJobsResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'parent': 'projects/sample1/locations/sample2'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            parent='parent_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = job.ListJobsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.list_jobs(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{parent=projects/*/locations/*}/jobs" % client.transport._host, args[1])
-
-
-def test_list_jobs_rest_flattened_error(transport: str = 'rest'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_jobs(
-            job.ListJobsRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_jobs_rest_pager(transport: str = 'rest'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # TODO(kbandes): remove this mock unless there's a good reason for it.
-        #with mock.patch.object(path_template, 'transcode') as transcode:
-        # Set the response as a series of pages
-        response = (
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                    job.Job(),
-                ],
-                next_page_token='abc',
-            ),
-            job.ListJobsResponse(
-                jobs=[],
-                next_page_token='def',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                ],
-                next_page_token='ghi',
-            ),
-            job.ListJobsResponse(
-                jobs=[
-                    job.Job(),
-                    job.Job(),
-                ],
-            ),
-        )
-        # Two responses for two calls
-        response = response + response
-
-        # Wrap the values into proper Response objs
-        response = tuple(job.ListJobsResponse.to_json(x) for x in response)
-        return_values = tuple(Response() for i in response)
-        for return_val, response_val in zip(return_values, response):
-            return_val._content = response_val.encode('UTF-8')
-            return_val.status_code = 200
-        req.side_effect = return_values
-
-        sample_request = {'parent': 'projects/sample1/locations/sample2'}
-
-        pager = client.list_jobs(request=sample_request)
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, job.Job)
-                for i in results)
-
-        pages = list(client.list_jobs(request=sample_request).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-
-def test_update_job_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.update_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.update_job] = mock_rpc
-
-        request = {}
-        client.update_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.update_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_update_job_rest_required_fields(request_type=gcr_job.UpdateJobRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_job._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_job._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("allow_missing", "validate_only", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "patch",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.update_job(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_update_job_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.update_job._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("allowMissing", "validateOnly", )) & set(("job", )))
-
-
-def test_update_job_rest_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'job': {'name': 'projects/sample1/locations/sample2/jobs/sample3'}}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            job=gcr_job.Job(name='name_value'),
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.update_job(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{job.name=projects/*/locations/*/jobs/*}" % client.transport._host, args[1])
-
-
-def test_update_job_rest_flattened_error(transport: str = 'rest'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.update_job(
-            gcr_job.UpdateJobRequest(),
-            job=gcr_job.Job(name='name_value'),
-        )
-
-
-def test_delete_job_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.delete_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.delete_job] = mock_rpc
-
-        request = {}
-        client.delete_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.delete_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_delete_job_rest_required_fields(request_type=job.DeleteJobRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_job._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_job._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("etag", "validate_only", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "delete",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.delete_job(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_delete_job_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.delete_job._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("etag", "validateOnly", )) & set(("name", )))
-
-
-def test_delete_job_rest_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.delete_job(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*}" % client.transport._host, args[1])
-
-
-def test_delete_job_rest_flattened_error(transport: str = 'rest'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.delete_job(
-            job.DeleteJobRequest(),
-            name='name_value',
-        )
-
-
-def test_run_job_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.run_job in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.run_job] = mock_rpc
-
-        request = {}
-        client.run_job(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.run_job(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_run_job_rest_required_fields(request_type=job.RunJobRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).run_job._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).run_job._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.run_job(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_run_job_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.run_job._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("name", )))
-
-
-def test_run_job_rest_flattened():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.run_job(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*}:run" % client.transport._host, args[1])
-
-
-def test_run_job_rest_flattened_error(transport: str = 'rest'):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.run_job(
-            job.RunJobRequest(),
-            name='name_value',
-        )
-
-
-def test_get_iam_policy_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_iam_policy in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc
-
-        request = {}
-        client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_get_iam_policy_rest_required_fields(request_type=iam_policy_pb2.GetIamPolicyRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request_init["resource"] = ""
-    request = request_type(**request_init)
-    pb_request = request
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_iam_policy._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["resource"] = 'resource_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_iam_policy._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("options", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "resource" in jsonified_request
-    assert jsonified_request["resource"] == 'resource_value'
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = policy_pb2.Policy()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.get_iam_policy(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_get_iam_policy_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.get_iam_policy._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("options", )) & set(("resource", )))
-
-
-def test_set_iam_policy_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.set_iam_policy in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc
-
-        request = {}
-        client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.set_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_set_iam_policy_rest_required_fields(request_type=iam_policy_pb2.SetIamPolicyRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request_init["resource"] = ""
-    request = request_type(**request_init)
-    pb_request = request
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).set_iam_policy._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["resource"] = 'resource_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).set_iam_policy._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "resource" in jsonified_request
-    assert jsonified_request["resource"] == 'resource_value'
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = policy_pb2.Policy()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.set_iam_policy(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_set_iam_policy_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.set_iam_policy._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("resource", "policy", )))
-
-
-def test_test_iam_permissions_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.test_iam_permissions in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.test_iam_permissions] = mock_rpc
-
-        request = {}
-        client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.test_iam_permissions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_test_iam_permissions_rest_required_fields(request_type=iam_policy_pb2.TestIamPermissionsRequest):
-    transport_class = transports.JobsRestTransport
-
-    request_init = {}
-    request_init["resource"] = ""
-    request_init["permissions"] = ""
-    request = request_type(**request_init)
-    pb_request = request
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).test_iam_permissions._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["resource"] = 'resource_value'
-    jsonified_request["permissions"] = 'permissions_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).test_iam_permissions._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "resource" in jsonified_request
-    assert jsonified_request["resource"] == 'resource_value'
-    assert "permissions" in jsonified_request
-    assert jsonified_request["permissions"] == 'permissions_value'
-
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = iam_policy_pb2.TestIamPermissionsResponse()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.test_iam_permissions(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_test_iam_permissions_rest_unset_required_fields():
-    transport = transports.JobsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.test_iam_permissions._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("resource", "permissions", )))
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.JobsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.JobsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = JobsClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.JobsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = JobsClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = JobsClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.JobsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = JobsClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.JobsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = JobsClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.JobsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.JobsGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.JobsGrpcTransport,
-    transports.JobsGrpcAsyncIOTransport,
-    transports.JobsRestTransport,
-])
-def test_transport_adc(transport_class):
-    # Test default credentials are used if not provided.
-    with mock.patch.object(google.auth, 'default') as adc:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport_class()
-        adc.assert_called_once()
-
-def test_transport_kind_grpc():
-    transport = JobsClient.get_transport_class("grpc")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "grpc"
-
-
-def test_initialize_client_w_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_create_job_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.create_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_job.CreateJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_job_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        call.return_value = job.Job()
-        client.get_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.GetJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_jobs_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        call.return_value = job.ListJobsResponse()
-        client.list_jobs(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.ListJobsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_update_job_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.update_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_job.UpdateJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_delete_job_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.delete_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.DeleteJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_run_job_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.run_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.RunJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_iam_policy_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        call.return_value = policy_pb2.Policy()
-        client.get_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.GetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_set_iam_policy_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        call.return_value = policy_pb2.Policy()
-        client.set_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.SetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_test_iam_permissions_empty_call_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
-        client.test_iam_permissions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
-
-        assert args[0] == request_msg
-
-
-def test_create_job_routing_parameters_request_1_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.create_job(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_job.CreateJobRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_get_job_routing_parameters_request_1_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        call.return_value = job.Job()
-        client.get_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.GetJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_list_jobs_routing_parameters_request_1_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        call.return_value = job.ListJobsResponse()
-        client.list_jobs(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.ListJobsRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_update_job_routing_parameters_request_1_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.update_job(request={"job": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_job.UpdateJobRequest(**{"job": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_delete_job_routing_parameters_request_1_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.delete_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.DeleteJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_run_job_routing_parameters_request_1_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.run_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.RunJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_transport_kind_grpc_asyncio():
-    transport = JobsAsyncClient.get_transport_class("grpc_asyncio")(
-        credentials=async_anonymous_credentials()
-    )
-    assert transport.kind == "grpc_asyncio"
-
-
-def test_initialize_client_w_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_create_job_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.create_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_job.CreateJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_get_job_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.Job(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            creator='creator_value',
-            last_modifier='last_modifier_value',
-            client='client_value',
-            client_version='client_version_value',
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            observed_generation=2021,
-            execution_count=1628,
-            reconciling=True,
-            satisfies_pzs=True,
-            etag='etag_value',
-        ))
-        await client.get_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.GetJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_list_jobs_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.ListJobsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        await client.list_jobs(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.ListJobsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_update_job_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.update_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_job.UpdateJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_delete_job_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.delete_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.DeleteJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_run_job_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.run_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.RunJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_get_iam_policy_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        ))
-        await client.get_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.GetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_set_iam_policy_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        ))
-        await client.set_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.SetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_test_iam_permissions_empty_call_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse(
-            permissions=['permissions_value'],
-        ))
-        await client.test_iam_permissions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
-
-        assert args[0] == request_msg
-
-
-@pytest.mark.asyncio
-async def test_create_job_routing_parameters_request_1_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.create_job(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_job.CreateJobRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_get_job_routing_parameters_request_1_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.Job(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            creator='creator_value',
-            last_modifier='last_modifier_value',
-            client='client_value',
-            client_version='client_version_value',
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            observed_generation=2021,
-            execution_count=1628,
-            reconciling=True,
-            satisfies_pzs=True,
-            etag='etag_value',
-        ))
-        await client.get_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.GetJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_list_jobs_routing_parameters_request_1_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(job.ListJobsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        await client.list_jobs(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.ListJobsRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_update_job_routing_parameters_request_1_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.update_job(request={"job": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_job.UpdateJobRequest(**{"job": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_delete_job_routing_parameters_request_1_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.delete_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.DeleteJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_run_job_routing_parameters_request_1_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.run_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.RunJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_transport_kind_rest():
-    transport = JobsClient.get_transport_class("rest")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "rest"
-
-
-def test_create_job_rest_bad_request(request_type=gcr_job.CreateJobRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.create_job(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  gcr_job.CreateJobRequest,
-  dict,
-])
-def test_create_job_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request_init["job"] = {'name': 'name_value', 'uid': 'uid_value', 'generation': 1068, 'labels': {}, 'annotations': {}, 'create_time': {'seconds': 751, 'nanos': 543}, 'update_time': {}, 'delete_time': {}, 'expire_time': {}, 'creator': 'creator_value', 'last_modifier': 'last_modifier_value', 'client': 'client_value', 'client_version': 'client_version_value', 'launch_stage': 6, 'binary_authorization': {'use_default': True, 'policy': 'policy_value', 'breakglass_justification': 'breakglass_justification_value'}, 'template': {'labels': {}, 'annotations': {}, 'parallelism': 1174, 'task_count': 1083, 'template': {'containers': [{'name': 'name_value', 'image': 'image_value', 'command': ['command_value1', 'command_value2'], 'args': ['args_value1', 'args_value2'], 'env': [{'name': 'name_value', 'value': 'value_value', 'value_source': {'secret_key_ref': {'secret': 'secret_value', 'version': 'version_value'}}}], 'resources': {'limits': {}, 'cpu_idle': True, 'startup_cpu_boost': True}, 'ports': [{'name': 'name_value', 'container_port': 1511}], 'volume_mounts': [{'name': 'name_value', 'mount_path': 'mount_path_value'}], 'working_dir': 'working_dir_value', 'liveness_probe': {'initial_delay_seconds': 2214, 'timeout_seconds': 1621, 'period_seconds': 1489, 'failure_threshold': 1812, 'http_get': {'path': 'path_value', 'http_headers': [{'name': 'name_value', 'value': 'value_value'}], 'port': 453}, 'tcp_socket': {'port': 453}, 'grpc': {'port': 453, 'service': 'service_value'}}, 'startup_probe': {}, 'depends_on': ['depends_on_value1', 'depends_on_value2']}], 'volumes': [{'name': 'name_value', 'secret': {'secret': 'secret_value', 'items': [{'path': 'path_value', 'version': 'version_value', 'mode': 421}], 'default_mode': 1257}, 'cloud_sql_instance': {'instances': ['instances_value1', 'instances_value2']}, 'empty_dir': {'medium': 1, 'size_limit': 'size_limit_value'}, 'nfs': {'server': 'server_value', 'path': 'path_value', 'read_only': True}, 'gcs': {'bucket': 'bucket_value', 'read_only': True, 'mount_options': ['mount_options_value1', 'mount_options_value2']}}], 'max_retries': 1187, 'timeout': {'seconds': 751, 'nanos': 543}, 'service_account': 'service_account_value', 'execution_environment': 1, 'encryption_key': 'encryption_key_value', 'vpc_access': {'connector': 'connector_value', 'egress': 1, 'network_interfaces': [{'network': 'network_value', 'subnetwork': 'subnetwork_value', 'tags': ['tags_value1', 'tags_value2']}]}}}, 'observed_generation': 2021, 'terminal_condition': {'type_': 'type__value', 'state': 1, 'message': 'message_value', 'last_transition_time': {}, 'severity': 1, 'reason': 1, 'revision_reason': 1, 'execution_reason': 1}, 'conditions': {}, 'execution_count': 1628, 'latest_created_execution': {'name': 'name_value', 'create_time': {}, 'completion_time': {}, 'delete_time': {}, 'completion_status': 1}, 'reconciling': True, 'satisfies_pzs': True, 'start_execution_token': 'start_execution_token_value', 'run_execution_token': 'run_execution_token_value', 'etag': 'etag_value'}
-    # The version of a generated dependency at test runtime may differ from the version used during generation.
-    # Delete any fields which are not present in the current runtime dependency
-    # See https://github.com/googleapis/gapic-generator-python/issues/1748
-
-    # Determine if the message type is proto-plus or protobuf
-    test_field = gcr_job.CreateJobRequest.meta.fields["job"]
-
-    def get_message_fields(field):
-        # Given a field which is a message (composite type), return a list with
-        # all the fields of the message.
-        # If the field is not a composite type, return an empty list.
-        message_fields = []
-
-        if hasattr(field, "message") and field.message:
-            is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR")
-
-            if is_field_type_proto_plus_type:
-                message_fields = field.message.meta.fields.values()
-            # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types
-            else: # pragma: NO COVER
-                message_fields = field.message.DESCRIPTOR.fields
-        return message_fields
-
-    runtime_nested_fields = [
-        (field.name, nested_field.name)
-        for field in get_message_fields(test_field)
-        for nested_field in get_message_fields(field)
-    ]
-
-    subfields_not_in_runtime = []
-
-    # For each item in the sample request, create a list of sub fields which are not present at runtime
-    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
-    for field, value in request_init["job"].items(): # pragma: NO COVER
-        result = None
-        is_repeated = False
-        # For repeated fields
-        if isinstance(value, list) and len(value):
-            is_repeated = True
-            result = value[0]
-        # For fields where the type is another message
-        if isinstance(value, dict):
-            result = value
-
-        if result and hasattr(result, "keys"):
-            for subfield in result.keys():
-                if (field, subfield) not in runtime_nested_fields:
-                    subfields_not_in_runtime.append(
-                        {"field": field, "subfield": subfield, "is_repeated": is_repeated}
-                    )
-
-    # Remove fields from the sample request which are not present in the runtime version of the dependency
-    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
-    for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER
-        field = subfield_to_delete.get("field")
-        field_repeated = subfield_to_delete.get("is_repeated")
-        subfield = subfield_to_delete.get("subfield")
-        if subfield:
-            if field_repeated:
-                for i in range(0, len(request_init["job"][field])):
-                    del request_init["job"][field][i][subfield]
-            else:
-                del request_init["job"][field][subfield]
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.create_job(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_create_job_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.JobsRestInterceptor, "post_create_job") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_create_job") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = gcr_job.CreateJobRequest.pb(gcr_job.CreateJobRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = gcr_job.CreateJobRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.create_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_get_job_rest_bad_request(request_type=job.GetJobRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.get_job(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  job.GetJobRequest,
-  dict,
-])
-def test_get_job_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = job.Job(
-              name='name_value',
-              uid='uid_value',
-              generation=1068,
-              creator='creator_value',
-              last_modifier='last_modifier_value',
-              client='client_value',
-              client_version='client_version_value',
-              launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-              observed_generation=2021,
-              execution_count=1628,
-              reconciling=True,
-              satisfies_pzs=True,
-              etag='etag_value',
-            start_execution_token='start_execution_token_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = job.Job.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.get_job(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, job.Job)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.creator == 'creator_value'
-    assert response.last_modifier == 'last_modifier_value'
-    assert response.client == 'client_value'
-    assert response.client_version == 'client_version_value'
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.observed_generation == 2021
-    assert response.execution_count == 1628
-    assert response.reconciling is True
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_get_job_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.JobsRestInterceptor, "post_get_job") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_get_job") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = job.GetJobRequest.pb(job.GetJobRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = job.Job.to_json(job.Job())
-        req.return_value.content = return_value
-
-        request = job.GetJobRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = job.Job()
-
-        client.get_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_list_jobs_rest_bad_request(request_type=job.ListJobsRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.list_jobs(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  job.ListJobsRequest,
-  dict,
-])
-def test_list_jobs_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = job.ListJobsResponse(
-              next_page_token='next_page_token_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = job.ListJobsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.list_jobs(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListJobsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_list_jobs_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.JobsRestInterceptor, "post_list_jobs") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_list_jobs") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = job.ListJobsRequest.pb(job.ListJobsRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = job.ListJobsResponse.to_json(job.ListJobsResponse())
-        req.return_value.content = return_value
-
-        request = job.ListJobsRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = job.ListJobsResponse()
-
-        client.list_jobs(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_update_job_rest_bad_request(request_type=gcr_job.UpdateJobRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'job': {'name': 'projects/sample1/locations/sample2/jobs/sample3'}}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.update_job(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  gcr_job.UpdateJobRequest,
-  dict,
-])
-def test_update_job_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'job': {'name': 'projects/sample1/locations/sample2/jobs/sample3'}}
-    request_init["job"] = {'name': 'projects/sample1/locations/sample2/jobs/sample3', 'uid': 'uid_value', 'generation': 1068, 'labels': {}, 'annotations': {}, 'create_time': {'seconds': 751, 'nanos': 543}, 'update_time': {}, 'delete_time': {}, 'expire_time': {}, 'creator': 'creator_value', 'last_modifier': 'last_modifier_value', 'client': 'client_value', 'client_version': 'client_version_value', 'launch_stage': 6, 'binary_authorization': {'use_default': True, 'policy': 'policy_value', 'breakglass_justification': 'breakglass_justification_value'}, 'template': {'labels': {}, 'annotations': {}, 'parallelism': 1174, 'task_count': 1083, 'template': {'containers': [{'name': 'name_value', 'image': 'image_value', 'command': ['command_value1', 'command_value2'], 'args': ['args_value1', 'args_value2'], 'env': [{'name': 'name_value', 'value': 'value_value', 'value_source': {'secret_key_ref': {'secret': 'secret_value', 'version': 'version_value'}}}], 'resources': {'limits': {}, 'cpu_idle': True, 'startup_cpu_boost': True}, 'ports': [{'name': 'name_value', 'container_port': 1511}], 'volume_mounts': [{'name': 'name_value', 'mount_path': 'mount_path_value'}], 'working_dir': 'working_dir_value', 'liveness_probe': {'initial_delay_seconds': 2214, 'timeout_seconds': 1621, 'period_seconds': 1489, 'failure_threshold': 1812, 'http_get': {'path': 'path_value', 'http_headers': [{'name': 'name_value', 'value': 'value_value'}], 'port': 453}, 'tcp_socket': {'port': 453}, 'grpc': {'port': 453, 'service': 'service_value'}}, 'startup_probe': {}, 'depends_on': ['depends_on_value1', 'depends_on_value2']}], 'volumes': [{'name': 'name_value', 'secret': {'secret': 'secret_value', 'items': [{'path': 'path_value', 'version': 'version_value', 'mode': 421}], 'default_mode': 1257}, 'cloud_sql_instance': {'instances': ['instances_value1', 'instances_value2']}, 'empty_dir': {'medium': 1, 'size_limit': 'size_limit_value'}, 'nfs': {'server': 'server_value', 'path': 'path_value', 'read_only': True}, 'gcs': {'bucket': 'bucket_value', 'read_only': True, 'mount_options': ['mount_options_value1', 'mount_options_value2']}}], 'max_retries': 1187, 'timeout': {'seconds': 751, 'nanos': 543}, 'service_account': 'service_account_value', 'execution_environment': 1, 'encryption_key': 'encryption_key_value', 'vpc_access': {'connector': 'connector_value', 'egress': 1, 'network_interfaces': [{'network': 'network_value', 'subnetwork': 'subnetwork_value', 'tags': ['tags_value1', 'tags_value2']}]}}}, 'observed_generation': 2021, 'terminal_condition': {'type_': 'type__value', 'state': 1, 'message': 'message_value', 'last_transition_time': {}, 'severity': 1, 'reason': 1, 'revision_reason': 1, 'execution_reason': 1}, 'conditions': {}, 'execution_count': 1628, 'latest_created_execution': {'name': 'name_value', 'create_time': {}, 'completion_time': {}, 'delete_time': {}, 'completion_status': 1}, 'reconciling': True, 'satisfies_pzs': True, 'start_execution_token': 'start_execution_token_value', 'run_execution_token': 'run_execution_token_value', 'etag': 'etag_value'}
-    # The version of a generated dependency at test runtime may differ from the version used during generation.
-    # Delete any fields which are not present in the current runtime dependency
-    # See https://github.com/googleapis/gapic-generator-python/issues/1748
-
-    # Determine if the message type is proto-plus or protobuf
-    test_field = gcr_job.UpdateJobRequest.meta.fields["job"]
-
-    def get_message_fields(field):
-        # Given a field which is a message (composite type), return a list with
-        # all the fields of the message.
-        # If the field is not a composite type, return an empty list.
-        message_fields = []
-
-        if hasattr(field, "message") and field.message:
-            is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR")
-
-            if is_field_type_proto_plus_type:
-                message_fields = field.message.meta.fields.values()
-            # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types
-            else: # pragma: NO COVER
-                message_fields = field.message.DESCRIPTOR.fields
-        return message_fields
-
-    runtime_nested_fields = [
-        (field.name, nested_field.name)
-        for field in get_message_fields(test_field)
-        for nested_field in get_message_fields(field)
-    ]
-
-    subfields_not_in_runtime = []
-
-    # For each item in the sample request, create a list of sub fields which are not present at runtime
-    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
-    for field, value in request_init["job"].items(): # pragma: NO COVER
-        result = None
-        is_repeated = False
-        # For repeated fields
-        if isinstance(value, list) and len(value):
-            is_repeated = True
-            result = value[0]
-        # For fields where the type is another message
-        if isinstance(value, dict):
-            result = value
-
-        if result and hasattr(result, "keys"):
-            for subfield in result.keys():
-                if (field, subfield) not in runtime_nested_fields:
-                    subfields_not_in_runtime.append(
-                        {"field": field, "subfield": subfield, "is_repeated": is_repeated}
-                    )
-
-    # Remove fields from the sample request which are not present in the runtime version of the dependency
-    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
-    for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER
-        field = subfield_to_delete.get("field")
-        field_repeated = subfield_to_delete.get("is_repeated")
-        subfield = subfield_to_delete.get("subfield")
-        if subfield:
-            if field_repeated:
-                for i in range(0, len(request_init["job"][field])):
-                    del request_init["job"][field][i][subfield]
-            else:
-                del request_init["job"][field][subfield]
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.update_job(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_update_job_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.JobsRestInterceptor, "post_update_job") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_update_job") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = gcr_job.UpdateJobRequest.pb(gcr_job.UpdateJobRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = gcr_job.UpdateJobRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.update_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_job_rest_bad_request(request_type=job.DeleteJobRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.delete_job(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  job.DeleteJobRequest,
-  dict,
-])
-def test_delete_job_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.delete_job(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_delete_job_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.JobsRestInterceptor, "post_delete_job") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_delete_job") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = job.DeleteJobRequest.pb(job.DeleteJobRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = job.DeleteJobRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.delete_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_run_job_rest_bad_request(request_type=job.RunJobRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.run_job(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  job.RunJobRequest,
-  dict,
-])
-def test_run_job_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.run_job(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_run_job_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.JobsRestInterceptor, "post_run_job") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_run_job") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = job.RunJobRequest.pb(job.RunJobRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = job.RunJobRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.run_job(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_get_iam_policy_rest_bad_request(request_type=iam_policy_pb2.GetIamPolicyRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.get_iam_policy(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.GetIamPolicyRequest,
-  dict,
-])
-def test_get_iam_policy_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = policy_pb2.Policy(
-              version=774,
-              etag=b'etag_blob',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.get_iam_policy(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_get_iam_policy_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.JobsRestInterceptor, "post_get_iam_policy") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_get_iam_policy") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = iam_policy_pb2.GetIamPolicyRequest()
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(policy_pb2.Policy())
-        req.return_value.content = return_value
-
-        request = iam_policy_pb2.GetIamPolicyRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = policy_pb2.Policy()
-
-        client.get_iam_policy(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_set_iam_policy_rest_bad_request(request_type=iam_policy_pb2.SetIamPolicyRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.set_iam_policy(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.SetIamPolicyRequest,
-  dict,
-])
-def test_set_iam_policy_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = policy_pb2.Policy(
-              version=774,
-              etag=b'etag_blob',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.set_iam_policy(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_set_iam_policy_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.JobsRestInterceptor, "post_set_iam_policy") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_set_iam_policy") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = iam_policy_pb2.SetIamPolicyRequest()
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(policy_pb2.Policy())
-        req.return_value.content = return_value
-
-        request = iam_policy_pb2.SetIamPolicyRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = policy_pb2.Policy()
-
-        client.set_iam_policy(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_test_iam_permissions_rest_bad_request(request_type=iam_policy_pb2.TestIamPermissionsRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.test_iam_permissions(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.TestIamPermissionsRequest,
-  dict,
-])
-def test_test_iam_permissions_rest_call_success(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/jobs/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = iam_policy_pb2.TestIamPermissionsResponse(
-              permissions=['permissions_value'],
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.test_iam_permissions(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
-    assert response.permissions == ['permissions_value']
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_test_iam_permissions_rest_interceptors(null_interceptor):
-    transport = transports.JobsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.JobsRestInterceptor(),
-        )
-    client = JobsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.JobsRestInterceptor, "post_test_iam_permissions") as post, \
-        mock.patch.object(transports.JobsRestInterceptor, "pre_test_iam_permissions") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = iam_policy_pb2.TestIamPermissionsRequest()
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(iam_policy_pb2.TestIamPermissionsResponse())
-        req.return_value.content = return_value
-
-        request = iam_policy_pb2.TestIamPermissionsRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = iam_policy_pb2.TestIamPermissionsResponse()
-
-        client.test_iam_permissions(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.delete_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.DeleteOperationRequest,
-    dict,
-])
-def test_delete_operation_rest(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = None
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = '{}'
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.delete_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-
-def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.get_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.GetOperationRequest,
-    dict,
-])
-def test_get_operation_rest(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.get_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-
-def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.list_operations(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.ListOperationsRequest,
-    dict,
-])
-def test_list_operations_rest(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.ListOperationsResponse()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.list_operations(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-
-def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.wait_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.WaitOperationRequest,
-    dict,
-])
-def test_wait_operation_rest(request_type):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.wait_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_initialize_client_w_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_create_job_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        client.create_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_job.CreateJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_job_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        client.get_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.GetJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_jobs_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        client.list_jobs(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.ListJobsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_update_job_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        client.update_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_job.UpdateJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_delete_job_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        client.delete_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.DeleteJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_run_job_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        client.run_job(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = job.RunJobRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_iam_policy_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        client.get_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.GetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_set_iam_policy_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        client.set_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.SetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_test_iam_permissions_empty_call_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        client.test_iam_permissions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
-
-        assert args[0] == request_msg
-
-
-def test_create_job_routing_parameters_request_1_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_job),
-            '__call__') as call:
-        client.create_job(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_job.CreateJobRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_get_job_routing_parameters_request_1_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_job),
-            '__call__') as call:
-        client.get_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.GetJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_list_jobs_routing_parameters_request_1_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_jobs),
-            '__call__') as call:
-        client.list_jobs(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.ListJobsRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_update_job_routing_parameters_request_1_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_job),
-            '__call__') as call:
-        client.update_job(request={"job": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_job.UpdateJobRequest(**{"job": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_delete_job_routing_parameters_request_1_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_job),
-            '__call__') as call:
-        client.delete_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.DeleteJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_run_job_routing_parameters_request_1_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.run_job),
-            '__call__') as call:
-        client.run_job(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = job.RunJobRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_jobs_rest_lro_client():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    transport = client.transport
-
-    # Ensure that we have an api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-operations_v1.AbstractOperationsClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.JobsGrpcTransport,
-    )
-
-def test_jobs_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.JobsTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_jobs_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.run_v2.services.jobs.transports.JobsTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.JobsTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'create_job',
-        'get_job',
-        'list_jobs',
-        'update_job',
-        'delete_job',
-        'run_job',
-        'get_iam_policy',
-        'set_iam_policy',
-        'test_iam_permissions',
-        'get_operation',
-        'wait_operation',
-        'delete_operation',
-        'list_operations',
-    )
-    for method in methods:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, method)(request=object())
-
-    with pytest.raises(NotImplementedError):
-        transport.close()
-
-    # Additionally, the LRO client (a property) should
-    # also raise NotImplementedError
-    with pytest.raises(NotImplementedError):
-        transport.operations_client
-
-    # Catch all for all remaining methods and properties
-    remainder = [
-        'kind',
-    ]
-    for r in remainder:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, r)()
-
-
-def test_jobs_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.jobs.transports.JobsTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.JobsTransport(
-            credentials_file="credentials.json",
-            quota_project_id="octopus",
-        )
-        load_creds.assert_called_once_with("credentials.json",
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id="octopus",
-        )
-
-
-def test_jobs_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.jobs.transports.JobsTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.JobsTransport()
-        adc.assert_called_once()
-
-
-def test_jobs_auth_adc():
-    # 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)
-        JobsClient()
-        adc.assert_called_once_with(
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id=None,
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.JobsGrpcTransport,
-        transports.JobsGrpcAsyncIOTransport,
-    ],
-)
-def test_jobs_transport_auth_adc(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", scopes=["1", "2"])
-        adc.assert_called_once_with(
-            scopes=["1", "2"],
-            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
-            quota_project_id="octopus",
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.JobsGrpcTransport,
-        transports.JobsGrpcAsyncIOTransport,
-        transports.JobsRestTransport,
-    ],
-)
-def test_jobs_transport_auth_gdch_credentials(transport_class):
-    host = 'https://language.com'
-    api_audience_tests = [None, 'https://language2.com']
-    api_audience_expect = [host, 'https://language2.com']
-    for t, e in zip(api_audience_tests, api_audience_expect):
-        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
-            gdch_mock = mock.MagicMock()
-            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
-            adc.return_value = (gdch_mock, None)
-            transport_class(host=host, api_audience=t)
-            gdch_mock.with_gdch_audience.assert_called_once_with(
-                e
-            )
-
-
-@pytest.mark.parametrize(
-    "transport_class,grpc_helpers",
-    [
-        (transports.JobsGrpcTransport, grpc_helpers),
-        (transports.JobsGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_jobs_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=creds,
-            credentials_file=None,
-            quota_project_id="octopus",
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=["1", "2"],
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.JobsGrpcTransport, transports.JobsGrpcAsyncIOTransport])
-def test_jobs_grpc_transport_client_cert_source_for_mtls(
-    transport_class
-):
-    cred = ga_credentials.AnonymousCredentials()
-
-    # Check ssl_channel_credentials is used if provided.
-    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
-        mock_ssl_channel_creds = mock.Mock()
-        transport_class(
-            host="squid.clam.whelk",
-            credentials=cred,
-            ssl_channel_credentials=mock_ssl_channel_creds
-        )
-        mock_create_channel.assert_called_once_with(
-            "squid.clam.whelk:443",
-            credentials=cred,
-            credentials_file=None,
-            scopes=None,
-            ssl_credentials=mock_ssl_channel_creds,
-            quota_project_id=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
-    # is used.
-    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
-        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
-            transport_class(
-                credentials=cred,
-                client_cert_source_for_mtls=client_cert_source_callback
-            )
-            expected_cert, expected_key = client_cert_source_callback()
-            mock_ssl_cred.assert_called_once_with(
-                certificate_chain=expected_cert,
-                private_key=expected_key
-            )
-
-def test_jobs_http_transport_client_cert_source_for_mtls():
-    cred = ga_credentials.AnonymousCredentials()
-    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
-        transports.JobsRestTransport (
-            credentials=cred,
-            client_cert_source_for_mtls=client_cert_source_callback
-        )
-        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
-
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_jobs_host_no_port(transport_name):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_jobs_host_with_port(transport_name):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_jobs_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = JobsClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = JobsClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.create_job._session
-    session2 = client2.transport.create_job._session
-    assert session1 != session2
-    session1 = client1.transport.get_job._session
-    session2 = client2.transport.get_job._session
-    assert session1 != session2
-    session1 = client1.transport.list_jobs._session
-    session2 = client2.transport.list_jobs._session
-    assert session1 != session2
-    session1 = client1.transport.update_job._session
-    session2 = client2.transport.update_job._session
-    assert session1 != session2
-    session1 = client1.transport.delete_job._session
-    session2 = client2.transport.delete_job._session
-    assert session1 != session2
-    session1 = client1.transport.run_job._session
-    session2 = client2.transport.run_job._session
-    assert session1 != session2
-    session1 = client1.transport.get_iam_policy._session
-    session2 = client2.transport.get_iam_policy._session
-    assert session1 != session2
-    session1 = client1.transport.set_iam_policy._session
-    session2 = client2.transport.set_iam_policy._session
-    assert session1 != session2
-    session1 = client1.transport.test_iam_permissions._session
-    session2 = client2.transport.test_iam_permissions._session
-    assert session1 != session2
-def test_jobs_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.JobsGrpcTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-def test_jobs_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.JobsGrpcAsyncIOTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.JobsGrpcTransport, transports.JobsGrpcAsyncIOTransport])
-def test_jobs_transport_channel_mtls_with_client_cert_source(
-    transport_class
-):
-    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_ssl_cred = mock.Mock()
-            grpc_ssl_channel_cred.return_value = mock_ssl_cred
-
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-
-            cred = ga_credentials.AnonymousCredentials()
-            with pytest.warns(DeprecationWarning):
-                with mock.patch.object(google.auth, 'default') as adc:
-                    adc.return_value = (cred, None)
-                    transport = transport_class(
-                        host="squid.clam.whelk",
-                        api_mtls_endpoint="mtls.squid.clam.whelk",
-                        client_cert_source=client_cert_source_callback,
-                    )
-                    adc.assert_called_once()
-
-            grpc_ssl_channel_cred.assert_called_once_with(
-                certificate_chain=b"cert bytes", private_key=b"key bytes"
-            )
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-            assert transport._ssl_channel_credentials == mock_ssl_cred
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.JobsGrpcTransport, transports.JobsGrpcAsyncIOTransport])
-def test_jobs_transport_channel_mtls_with_adc(
-    transport_class
-):
-    mock_ssl_cred = mock.Mock()
-    with mock.patch.multiple(
-        "google.auth.transport.grpc.SslCredentials",
-        __init__=mock.Mock(return_value=None),
-        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
-    ):
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-            mock_cred = mock.Mock()
-
-            with pytest.warns(DeprecationWarning):
-                transport = transport_class(
-                    host="squid.clam.whelk",
-                    credentials=mock_cred,
-                    api_mtls_endpoint="mtls.squid.clam.whelk",
-                    client_cert_source=None,
-                )
-
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=mock_cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-
-
-def test_jobs_grpc_lro_client():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-    transport = client.transport
-
-    # Ensure that we have a api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-        operations_v1.OperationsClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-
-def test_jobs_grpc_lro_async_client():
-    client = JobsAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc_asyncio',
-    )
-    transport = client.transport
-
-    # Ensure that we have a api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-        operations_v1.OperationsAsyncClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-
-def test_connector_path():
-    project = "squid"
-    location = "clam"
-    connector = "whelk"
-    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-    actual = JobsClient.connector_path(project, location, connector)
-    assert expected == actual
-
-
-def test_parse_connector_path():
-    expected = {
-        "project": "octopus",
-        "location": "oyster",
-        "connector": "nudibranch",
-    }
-    path = JobsClient.connector_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_connector_path(path)
-    assert expected == actual
-
-def test_crypto_key_path():
-    project = "cuttlefish"
-    location = "mussel"
-    key_ring = "winkle"
-    crypto_key = "nautilus"
-    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-    actual = JobsClient.crypto_key_path(project, location, key_ring, crypto_key)
-    assert expected == actual
-
-
-def test_parse_crypto_key_path():
-    expected = {
-        "project": "scallop",
-        "location": "abalone",
-        "key_ring": "squid",
-        "crypto_key": "clam",
-    }
-    path = JobsClient.crypto_key_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_crypto_key_path(path)
-    assert expected == actual
-
-def test_execution_path():
-    project = "whelk"
-    location = "octopus"
-    job = "oyster"
-    execution = "nudibranch"
-    expected = "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
-    actual = JobsClient.execution_path(project, location, job, execution)
-    assert expected == actual
-
-
-def test_parse_execution_path():
-    expected = {
-        "project": "cuttlefish",
-        "location": "mussel",
-        "job": "winkle",
-        "execution": "nautilus",
-    }
-    path = JobsClient.execution_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_execution_path(path)
-    assert expected == actual
-
-def test_job_path():
-    project = "scallop"
-    location = "abalone"
-    job = "squid"
-    expected = "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
-    actual = JobsClient.job_path(project, location, job)
-    assert expected == actual
-
-
-def test_parse_job_path():
-    expected = {
-        "project": "clam",
-        "location": "whelk",
-        "job": "octopus",
-    }
-    path = JobsClient.job_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_job_path(path)
-    assert expected == actual
-
-def test_policy_path():
-    project = "oyster"
-    expected = "projects/{project}/policy".format(project=project, )
-    actual = JobsClient.policy_path(project)
-    assert expected == actual
-
-
-def test_parse_policy_path():
-    expected = {
-        "project": "nudibranch",
-    }
-    path = JobsClient.policy_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_policy_path(path)
-    assert expected == actual
-
-def test_secret_path():
-    project = "cuttlefish"
-    secret = "mussel"
-    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-    actual = JobsClient.secret_path(project, secret)
-    assert expected == actual
-
-
-def test_parse_secret_path():
-    expected = {
-        "project": "winkle",
-        "secret": "nautilus",
-    }
-    path = JobsClient.secret_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_secret_path(path)
-    assert expected == actual
-
-def test_secret_version_path():
-    project = "scallop"
-    secret = "abalone"
-    version = "squid"
-    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-    actual = JobsClient.secret_version_path(project, secret, version)
-    assert expected == actual
-
-
-def test_parse_secret_version_path():
-    expected = {
-        "project": "clam",
-        "secret": "whelk",
-        "version": "octopus",
-    }
-    path = JobsClient.secret_version_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_secret_version_path(path)
-    assert expected == actual
-
-def test_common_billing_account_path():
-    billing_account = "oyster"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = JobsClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "nudibranch",
-    }
-    path = JobsClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "cuttlefish"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = JobsClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "mussel",
-    }
-    path = JobsClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "winkle"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = JobsClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "nautilus",
-    }
-    path = JobsClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "scallop"
-    expected = "projects/{project}".format(project=project, )
-    actual = JobsClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "abalone",
-    }
-    path = JobsClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_common_project_path(path)
-    assert expected == actual
-
-def test_common_location_path():
-    project = "squid"
-    location = "clam"
-    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
-    actual = JobsClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "whelk",
-        "location": "octopus",
-    }
-    path = JobsClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = JobsClient.parse_common_location_path(path)
-    assert expected == actual
-
-
-def test_client_with_default_client_info():
-    client_info = gapic_v1.client_info.ClientInfo()
-
-    with mock.patch.object(transports.JobsTransport, '_prep_wrapped_messages') as prep:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.JobsTransport, '_prep_wrapped_messages') as prep:
-        transport_class = JobsClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-
-def test_delete_operation(transport: str = "grpc"):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-        response = client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-@pytest.mark.asyncio
-async def test_delete_operation_async(transport: str = "grpc_asyncio"):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-def test_delete_operation_field_headers():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value =  None
-
-        client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_delete_operation_field_headers_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_delete_operation_from_dict():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-
-        response = client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_delete_operation_from_dict_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_wait_operation(transport: str = "grpc"):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_wait_operation(transport: str = "grpc_asyncio"):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_wait_operation_field_headers():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_wait_operation_field_headers_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_wait_operation_from_dict():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_wait_operation_from_dict_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_get_operation(transport: str = "grpc"):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_get_operation_async(transport: str = "grpc_asyncio"):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_get_operation_field_headers():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_get_operation_field_headers_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_get_operation_from_dict():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_get_operation_from_dict_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_list_operations(transport: str = "grpc"):
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-        response = client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-@pytest.mark.asyncio
-async def test_list_operations_async(transport: str = "grpc_asyncio"):
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-def test_list_operations_field_headers():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_list_operations_field_headers_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_list_operations_from_dict():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        response = client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_list_operations_from_dict_async():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_transport_close_grpc():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-@pytest.mark.asyncio
-async def test_transport_close_grpc_asyncio():
-    client = JobsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        async with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_transport_close_rest():
-    client = JobsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_client_ctx():
-    transports = [
-        'rest',
-        'grpc',
-    ]
-    for transport in transports:
-        client = JobsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        # Test client calls underlying transport.
-        with mock.patch.object(type(client.transport), "close") as close:
-            close.assert_not_called()
-            with client:
-                pass
-            close.assert_called()
-
-@pytest.mark.parametrize("client_class,transport_class", [
-    (JobsClient, transports.JobsGrpcTransport),
-    (JobsAsyncClient, transports.JobsGrpcAsyncIOTransport),
-])
-def test_api_key_credentials(client_class, transport_class):
-    with mock.patch.object(
-        google.auth._default, "get_api_key_credentials", create=True
-    ) as get_api_key_credentials:
-        mock_cred = mock.Mock()
-        get_api_key_credentials.return_value = mock_cred
-        options = client_options.ClientOptions()
-        options.api_key = "api_key"
-        with mock.patch.object(transport_class, "__init__") as patched:
-            patched.return_value = None
-            client = client_class(client_options=options)
-            patched.assert_called_once_with(
-                credentials=mock_cred,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_revisions.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_revisions.py
deleted file mode 100644
index 358eb310ca98..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_revisions.py
+++ /dev/null
@@ -1,4715 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 os
-# try/except added for compatibility with python < 3.8
-try:
-    from unittest import mock
-    from unittest.mock import AsyncMock  # pragma: NO COVER
-except ImportError:  # pragma: NO COVER
-    import mock
-
-import grpc
-from grpc.experimental import aio
-from collections.abc import Iterable, AsyncIterable
-from google.protobuf import json_format
-import json
-import math
-import pytest
-from google.api_core import api_core_version
-from proto.marshal.rules.dates import DurationRule, TimestampRule
-from proto.marshal.rules import wrappers
-from requests import Response
-from requests import Request, PreparedRequest
-from requests.sessions import Session
-from google.protobuf import json_format
-
-try:
-    from google.auth.aio import credentials as ga_credentials_async
-    HAS_GOOGLE_AUTH_AIO = True
-except ImportError: # pragma: NO COVER
-    HAS_GOOGLE_AUTH_AIO = False
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import client_options
-from google.api_core import exceptions as core_exceptions
-from google.api_core import future
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers
-from google.api_core import grpc_helpers_async
-from google.api_core import operation
-from google.api_core import operation_async  # type: ignore
-from google.api_core import operations_v1
-from google.api_core import path_template
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.location import locations_pb2
-from google.cloud.run_v2.services.revisions import RevisionsAsyncClient
-from google.cloud.run_v2.services.revisions import RevisionsClient
-from google.cloud.run_v2.services.revisions import pagers
-from google.cloud.run_v2.services.revisions import transports
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import revision
-from google.cloud.run_v2.types import status
-from google.cloud.run_v2.types import vendor_settings
-from google.longrunning import operations_pb2 # type: ignore
-from google.oauth2 import service_account
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-import google.auth
-
-
-async def mock_async_gen(data, chunk_size=1):
-    for i in range(0, len(data)):  # pragma: NO COVER
-        chunk = data[i : i + chunk_size]
-        yield chunk.encode("utf-8")
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
-# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
-def async_anonymous_credentials():
-    if HAS_GOOGLE_AUTH_AIO:
-        return ga_credentials_async.AnonymousCredentials()
-    return ga_credentials.AnonymousCredentials()
-
-# If default endpoint is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint(client):
-    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
-
-# If default endpoint template is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint template so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint_template(client):
-    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
-
-
-def test__get_default_mtls_endpoint():
-    api_endpoint = "example.googleapis.com"
-    api_mtls_endpoint = "example.mtls.googleapis.com"
-    sandbox_endpoint = "example.sandbox.googleapis.com"
-    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
-    non_googleapi = "api.example.com"
-
-    assert RevisionsClient._get_default_mtls_endpoint(None) is None
-    assert RevisionsClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert RevisionsClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert RevisionsClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert RevisionsClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert RevisionsClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-def test__read_environment_variables():
-    assert RevisionsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        assert RevisionsClient._read_environment_variables() == (True, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        assert RevisionsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            RevisionsClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        assert RevisionsClient._read_environment_variables() == (False, "never", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        assert RevisionsClient._read_environment_variables() == (False, "always", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
-        assert RevisionsClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            RevisionsClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
-        assert RevisionsClient._read_environment_variables() == (False, "auto", "foo.com")
-
-def test__get_client_cert_source():
-    mock_provided_cert_source = mock.Mock()
-    mock_default_cert_source = mock.Mock()
-
-    assert RevisionsClient._get_client_cert_source(None, False) is None
-    assert RevisionsClient._get_client_cert_source(mock_provided_cert_source, False) is None
-    assert RevisionsClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
-
-    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
-            assert RevisionsClient._get_client_cert_source(None, True) is mock_default_cert_source
-            assert RevisionsClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
-
-@mock.patch.object(RevisionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsClient))
-@mock.patch.object(RevisionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsAsyncClient))
-def test__get_api_endpoint():
-    api_override = "foo.com"
-    mock_client_cert_source = mock.Mock()
-    default_universe = RevisionsClient._DEFAULT_UNIVERSE
-    default_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    assert RevisionsClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
-    assert RevisionsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == RevisionsClient.DEFAULT_MTLS_ENDPOINT
-    assert RevisionsClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
-    assert RevisionsClient._get_api_endpoint(None, None, default_universe, "always") == RevisionsClient.DEFAULT_MTLS_ENDPOINT
-    assert RevisionsClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == RevisionsClient.DEFAULT_MTLS_ENDPOINT
-    assert RevisionsClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
-    assert RevisionsClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
-
-    with pytest.raises(MutualTLSChannelError) as excinfo:
-        RevisionsClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
-    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
-
-
-def test__get_universe_domain():
-    client_universe_domain = "foo.com"
-    universe_domain_env = "bar.com"
-
-    assert RevisionsClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
-    assert RevisionsClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
-    assert RevisionsClient._get_universe_domain(None, None) == RevisionsClient._DEFAULT_UNIVERSE
-
-    with pytest.raises(ValueError) as excinfo:
-        RevisionsClient._get_universe_domain("", None)
-    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (RevisionsClient, "grpc"),
-    (RevisionsAsyncClient, "grpc_asyncio"),
-    (RevisionsClient, "rest"),
-])
-def test_revisions_client_from_service_account_info(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
-        factory.return_value = creds
-        info = {"valid": True}
-        client = client_class.from_service_account_info(info, transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.RevisionsGrpcTransport, "grpc"),
-    (transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.RevisionsRestTransport, "rest"),
-])
-def test_revisions_client_service_account_always_use_jwt(transport_class, transport_name):
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=True)
-        use_jwt.assert_called_once_with(True)
-
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=False)
-        use_jwt.assert_not_called()
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (RevisionsClient, "grpc"),
-    (RevisionsAsyncClient, "grpc_asyncio"),
-    (RevisionsClient, "rest"),
-])
-def test_revisions_client_from_service_account_file(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
-        factory.return_value = creds
-        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-def test_revisions_client_get_transport_class():
-    transport = RevisionsClient.get_transport_class()
-    available_transports = [
-        transports.RevisionsGrpcTransport,
-        transports.RevisionsRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = RevisionsClient.get_transport_class("grpc")
-    assert transport == transports.RevisionsGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc"),
-    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (RevisionsClient, transports.RevisionsRestTransport, "rest"),
-])
-@mock.patch.object(RevisionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsClient))
-@mock.patch.object(RevisionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsAsyncClient))
-def test_revisions_client_client_options(client_class, transport_class, transport_name):
-    # Check that if channel is provided we won't create a new one.
-    with mock.patch.object(RevisionsClient, 'get_transport_class') as gtc:
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-        client = client_class(transport=transport)
-        gtc.assert_not_called()
-
-    # Check that if channel is provided via str we will create a new one.
-    with mock.patch.object(RevisionsClient, 'get_transport_class') as gtc:
-        client = client_class(transport=transport_name)
-        gtc.assert_called()
-
-    # Check the case api_endpoint is provided.
-    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(transport=transport_name, client_options=options)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "never".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "always".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client.DEFAULT_MTLS_ENDPOINT,
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    # Check the case quota_project_id is provided
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id="octopus",
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-    # Check the case api_endpoint is provided
-    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
-    with mock.patch.object(transport_class, '__init__') as patched:
-        patched.return_value = None
-        client = client_class(client_options=options, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience="https://language.googleapis.com"
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
-    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc", "true"),
-    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc", "false"),
-    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (RevisionsClient, transports.RevisionsRestTransport, "rest", "true"),
-    (RevisionsClient, transports.RevisionsRestTransport, "rest", "false"),
-])
-@mock.patch.object(RevisionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsClient))
-@mock.patch.object(RevisionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_revisions_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
-    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
-    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
-
-    # Check the case client_cert_source is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
-        with mock.patch.object(transport_class, '__init__') as patched:
-            patched.return_value = None
-            client = client_class(client_options=options, transport=transport_name)
-
-            if use_client_cert_env == "false":
-                expected_client_cert_source = None
-                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-            else:
-                expected_client_cert_source = client_cert_source_callback
-                expected_host = client.DEFAULT_MTLS_ENDPOINT
-
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=expected_host,
-                scopes=None,
-                client_cert_source_for_mtls=expected_client_cert_source,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case ADC client cert is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
-                    if use_client_cert_env == "false":
-                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-                        expected_client_cert_source = None
-                    else:
-                        expected_host = client.DEFAULT_MTLS_ENDPOINT
-                        expected_client_cert_source = client_cert_source_callback
-
-                    patched.return_value = None
-                    client = client_class(transport=transport_name)
-                    patched.assert_called_once_with(
-                        credentials=None,
-                        credentials_file=None,
-                        host=expected_host,
-                        scopes=None,
-                        client_cert_source_for_mtls=expected_client_cert_source,
-                        quota_project_id=None,
-                        client_info=transports.base.DEFAULT_CLIENT_INFO,
-                        always_use_jwt_access=True,
-                        api_audience=None,
-                    )
-
-    # Check the case client_cert_source and ADC client cert are not provided.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
-                patched.return_value = None
-                client = client_class(transport=transport_name)
-                patched.assert_called_once_with(
-                    credentials=None,
-                    credentials_file=None,
-                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                    scopes=None,
-                    client_cert_source_for_mtls=None,
-                    quota_project_id=None,
-                    client_info=transports.base.DEFAULT_CLIENT_INFO,
-                    always_use_jwt_access=True,
-                    api_audience=None,
-                )
-
-
-@pytest.mark.parametrize("client_class", [
-    RevisionsClient, RevisionsAsyncClient
-])
-@mock.patch.object(RevisionsClient, "DEFAULT_ENDPOINT", modify_default_endpoint(RevisionsClient))
-@mock.patch.object(RevisionsAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(RevisionsAsyncClient))
-def test_revisions_client_get_mtls_endpoint_and_cert_source(client_class):
-    mock_client_cert_source = mock.Mock()
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source == mock_client_cert_source
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        mock_client_cert_source = mock.Mock()
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
-            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-            assert api_endpoint == client_class.DEFAULT_ENDPOINT
-            assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
-                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-                assert cert_source == mock_client_cert_source
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-@pytest.mark.parametrize("client_class", [
-    RevisionsClient, RevisionsAsyncClient
-])
-@mock.patch.object(RevisionsClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsClient))
-@mock.patch.object(RevisionsAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(RevisionsAsyncClient))
-def test_revisions_client_client_api_endpoint(client_class):
-    mock_client_cert_source = client_cert_source_callback
-    api_override = "foo.com"
-    default_universe = RevisionsClient._DEFAULT_UNIVERSE
-    default_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = RevisionsClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
-    # use ClientOptions.api_endpoint as the api endpoint regardless.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
-            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
-            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-            assert client.api_endpoint == api_override
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
-    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-
-    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
-    # and ClientOptions.universe_domain="bar.com",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
-    options = client_options.ClientOptions()
-    universe_exists = hasattr(options, "universe_domain")
-    if universe_exists:
-        options = client_options.ClientOptions(universe_domain=mock_universe)
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    else:
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
-    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
-
-    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    options = client_options.ClientOptions()
-    if hasattr(options, "universe_domain"):
-        delattr(options, "universe_domain")
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc"),
-    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio"),
-    (RevisionsClient, transports.RevisionsRestTransport, "rest"),
-])
-def test_revisions_client_client_options_scopes(client_class, transport_class, transport_name):
-    # Check the case scopes are provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=["1", "2"],
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc", grpc_helpers),
-    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (RevisionsClient, transports.RevisionsRestTransport, "rest", None),
-])
-def test_revisions_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-def test_revisions_client_client_options_from_dict():
-    with mock.patch('google.cloud.run_v2.services.revisions.transports.RevisionsGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = RevisionsClient(
-            client_options={'api_endpoint': 'squid.clam.whelk'}
-        )
-        grpc_transport.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (RevisionsClient, transports.RevisionsGrpcTransport, "grpc", grpc_helpers),
-    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_revisions_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # test that the credentials from file are saved and used as the credentials.
-    with mock.patch.object(
-        google.auth, "load_credentials_from_file", autospec=True
-    ) as load_creds, mock.patch.object(
-        google.auth, "default", autospec=True
-    ) as adc, mock.patch.object(
-        grpc_helpers, "create_channel"
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        file_creds = ga_credentials.AnonymousCredentials()
-        load_creds.return_value = (file_creds, None)
-        adc.return_value = (creds, None)
-        client = client_class(client_options=options, transport=transport_name)
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=file_creds,
-            credentials_file=None,
-            quota_project_id=None,
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=None,
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  revision.GetRevisionRequest,
-  dict,
-])
-def test_get_revision(request_type, transport: str = 'grpc'):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = revision.Revision(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            service='service_value',
-            max_instance_request_concurrency=3436,
-            service_account='service_account_value',
-            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-            encryption_key='encryption_key_value',
-            encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
-            reconciling=True,
-            observed_generation=2021,
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            session_affinity=True,
-            etag='etag_value',
-        )
-        response = client.get_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = revision.GetRevisionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, revision.Revision)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.service == 'service_value'
-    assert response.max_instance_request_concurrency == 3436
-    assert response.service_account == 'service_account_value'
-    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
-    assert response.encryption_key == 'encryption_key_value'
-    assert response.encryption_key_revocation_action == vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.session_affinity is True
-    assert response.etag == 'etag_value'
-
-
-def test_get_revision_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = revision.GetRevisionRequest(
-        name='name_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.get_revision(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == revision.GetRevisionRequest(
-            name='name_value',
-        )
-
-def test_get_revision_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_revision in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_revision] = mock_rpc
-        request = {}
-        client.get_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_revision(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_revision_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = RevisionsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.get_revision in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.get_revision] = mock_rpc
-
-        request = {}
-        await client.get_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.get_revision(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_revision_async(transport: str = 'grpc_asyncio', request_type=revision.GetRevisionRequest):
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(revision.Revision(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            service='service_value',
-            max_instance_request_concurrency=3436,
-            service_account='service_account_value',
-            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-            encryption_key='encryption_key_value',
-            encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
-            reconciling=True,
-            observed_generation=2021,
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            session_affinity=True,
-            etag='etag_value',
-        ))
-        response = await client.get_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = revision.GetRevisionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, revision.Revision)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.service == 'service_value'
-    assert response.max_instance_request_concurrency == 3436
-    assert response.service_account == 'service_account_value'
-    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
-    assert response.encryption_key == 'encryption_key_value'
-    assert response.encryption_key_revocation_action == vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.session_affinity is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.asyncio
-async def test_get_revision_async_from_dict():
-    await test_get_revision_async(request_type=dict)
-
-
-def test_get_revision_flattened():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = revision.Revision()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.get_revision(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_get_revision_flattened_error():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_revision(
-            revision.GetRevisionRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_get_revision_flattened_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = revision.Revision()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.Revision())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.get_revision(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_get_revision_flattened_error_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.get_revision(
-            revision.GetRevisionRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  revision.ListRevisionsRequest,
-  dict,
-])
-def test_list_revisions(request_type, transport: str = 'grpc'):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = revision.ListRevisionsResponse(
-            next_page_token='next_page_token_value',
-        )
-        response = client.list_revisions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = revision.ListRevisionsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListRevisionsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_revisions_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = revision.ListRevisionsRequest(
-        parent='parent_value',
-        page_token='page_token_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.list_revisions(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == revision.ListRevisionsRequest(
-            parent='parent_value',
-            page_token='page_token_value',
-        )
-
-def test_list_revisions_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_revisions in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_revisions] = mock_rpc
-        request = {}
-        client.list_revisions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_revisions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_revisions_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = RevisionsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.list_revisions in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.list_revisions] = mock_rpc
-
-        request = {}
-        await client.list_revisions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.list_revisions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_revisions_async(transport: str = 'grpc_asyncio', request_type=revision.ListRevisionsRequest):
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(revision.ListRevisionsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        response = await client.list_revisions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = revision.ListRevisionsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListRevisionsAsyncPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.asyncio
-async def test_list_revisions_async_from_dict():
-    await test_list_revisions_async(request_type=dict)
-
-
-def test_list_revisions_flattened():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = revision.ListRevisionsResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.list_revisions(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-
-def test_list_revisions_flattened_error():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_revisions(
-            revision.ListRevisionsRequest(),
-            parent='parent_value',
-        )
-
-@pytest.mark.asyncio
-async def test_list_revisions_flattened_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = revision.ListRevisionsResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.ListRevisionsResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.list_revisions(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_list_revisions_flattened_error_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.list_revisions(
-            revision.ListRevisionsRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_revisions_pager(transport_name: str = "grpc"):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-                next_page_token='abc',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[],
-                next_page_token='def',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                ],
-                next_page_token='ghi',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-            ),
-            RuntimeError,
-        )
-
-        expected_metadata = ()
-        retry = retries.Retry()
-        timeout = 5
-        pager = client.list_revisions(request={}, retry=retry, timeout=timeout)
-
-        assert pager._metadata == expected_metadata
-        assert pager._retry == retry
-        assert pager._timeout == timeout
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, revision.Revision)
-                   for i in results)
-def test_list_revisions_pages(transport_name: str = "grpc"):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-                next_page_token='abc',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[],
-                next_page_token='def',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                ],
-                next_page_token='ghi',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = list(client.list_revisions(request={}).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.asyncio
-async def test_list_revisions_async_pager():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-                next_page_token='abc',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[],
-                next_page_token='def',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                ],
-                next_page_token='ghi',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-            ),
-            RuntimeError,
-        )
-        async_pager = await client.list_revisions(request={},)
-        assert async_pager.next_page_token == 'abc'
-        responses = []
-        async for response in async_pager: # pragma: no branch
-            responses.append(response)
-
-        assert len(responses) == 6
-        assert all(isinstance(i, revision.Revision)
-                for i in responses)
-
-
-@pytest.mark.asyncio
-async def test_list_revisions_async_pages():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-                next_page_token='abc',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[],
-                next_page_token='def',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                ],
-                next_page_token='ghi',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = []
-        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
-        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
-        async for page_ in ( # pragma: no branch
-            await client.list_revisions(request={})
-        ).pages:
-            pages.append(page_)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.parametrize("request_type", [
-  revision.DeleteRevisionRequest,
-  dict,
-])
-def test_delete_revision(request_type, transport: str = 'grpc'):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.delete_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = revision.DeleteRevisionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_delete_revision_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = revision.DeleteRevisionRequest(
-        name='name_value',
-        etag='etag_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.delete_revision(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == revision.DeleteRevisionRequest(
-            name='name_value',
-            etag='etag_value',
-        )
-
-def test_delete_revision_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.delete_revision in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.delete_revision] = mock_rpc
-        request = {}
-        client.delete_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.delete_revision(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_delete_revision_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = RevisionsAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.delete_revision in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.delete_revision] = mock_rpc
-
-        request = {}
-        await client.delete_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.delete_revision(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_delete_revision_async(transport: str = 'grpc_asyncio', request_type=revision.DeleteRevisionRequest):
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.delete_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = revision.DeleteRevisionRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_delete_revision_async_from_dict():
-    await test_delete_revision_async(request_type=dict)
-
-
-def test_delete_revision_flattened():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.delete_revision(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_delete_revision_flattened_error():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.delete_revision(
-            revision.DeleteRevisionRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_delete_revision_flattened_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.delete_revision(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_delete_revision_flattened_error_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.delete_revision(
-            revision.DeleteRevisionRequest(),
-            name='name_value',
-        )
-
-
-def test_get_revision_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_revision in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_revision] = mock_rpc
-
-        request = {}
-        client.get_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_revision(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_get_revision_rest_required_fields(request_type=revision.GetRevisionRequest):
-    transport_class = transports.RevisionsRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_revision._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_revision._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = revision.Revision()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = revision.Revision.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.get_revision(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_get_revision_rest_unset_required_fields():
-    transport = transports.RevisionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.get_revision._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("name", )))
-
-
-def test_get_revision_rest_flattened():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = revision.Revision()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = revision.Revision.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.get_revision(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/services/*/revisions/*}" % client.transport._host, args[1])
-
-
-def test_get_revision_rest_flattened_error(transport: str = 'rest'):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_revision(
-            revision.GetRevisionRequest(),
-            name='name_value',
-        )
-
-
-def test_list_revisions_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_revisions in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_revisions] = mock_rpc
-
-        request = {}
-        client.list_revisions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_revisions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_list_revisions_rest_required_fields(request_type=revision.ListRevisionsRequest):
-    transport_class = transports.RevisionsRestTransport
-
-    request_init = {}
-    request_init["parent"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_revisions._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["parent"] = 'parent_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_revisions._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "parent" in jsonified_request
-    assert jsonified_request["parent"] == 'parent_value'
-
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = revision.ListRevisionsResponse()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = revision.ListRevisionsResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.list_revisions(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_list_revisions_rest_unset_required_fields():
-    transport = transports.RevisionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.list_revisions._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
-
-
-def test_list_revisions_rest_flattened():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = revision.ListRevisionsResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'parent': 'projects/sample1/locations/sample2/services/sample3'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            parent='parent_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = revision.ListRevisionsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.list_revisions(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{parent=projects/*/locations/*/services/*}/revisions" % client.transport._host, args[1])
-
-
-def test_list_revisions_rest_flattened_error(transport: str = 'rest'):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_revisions(
-            revision.ListRevisionsRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_revisions_rest_pager(transport: str = 'rest'):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # TODO(kbandes): remove this mock unless there's a good reason for it.
-        #with mock.patch.object(path_template, 'transcode') as transcode:
-        # Set the response as a series of pages
-        response = (
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-                next_page_token='abc',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[],
-                next_page_token='def',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                ],
-                next_page_token='ghi',
-            ),
-            revision.ListRevisionsResponse(
-                revisions=[
-                    revision.Revision(),
-                    revision.Revision(),
-                ],
-            ),
-        )
-        # Two responses for two calls
-        response = response + response
-
-        # Wrap the values into proper Response objs
-        response = tuple(revision.ListRevisionsResponse.to_json(x) for x in response)
-        return_values = tuple(Response() for i in response)
-        for return_val, response_val in zip(return_values, response):
-            return_val._content = response_val.encode('UTF-8')
-            return_val.status_code = 200
-        req.side_effect = return_values
-
-        sample_request = {'parent': 'projects/sample1/locations/sample2/services/sample3'}
-
-        pager = client.list_revisions(request=sample_request)
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, revision.Revision)
-                for i in results)
-
-        pages = list(client.list_revisions(request=sample_request).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-
-def test_delete_revision_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.delete_revision in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.delete_revision] = mock_rpc
-
-        request = {}
-        client.delete_revision(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.delete_revision(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_delete_revision_rest_required_fields(request_type=revision.DeleteRevisionRequest):
-    transport_class = transports.RevisionsRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_revision._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_revision._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("etag", "validate_only", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "delete",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.delete_revision(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_delete_revision_rest_unset_required_fields():
-    transport = transports.RevisionsRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.delete_revision._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("etag", "validateOnly", )) & set(("name", )))
-
-
-def test_delete_revision_rest_flattened():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.delete_revision(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/services/*/revisions/*}" % client.transport._host, args[1])
-
-
-def test_delete_revision_rest_flattened_error(transport: str = 'rest'):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.delete_revision(
-            revision.DeleteRevisionRequest(),
-            name='name_value',
-        )
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.RevisionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.RevisionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = RevisionsClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.RevisionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = RevisionsClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = RevisionsClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.RevisionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = RevisionsClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.RevisionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = RevisionsClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.RevisionsGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.RevisionsGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.RevisionsGrpcTransport,
-    transports.RevisionsGrpcAsyncIOTransport,
-    transports.RevisionsRestTransport,
-])
-def test_transport_adc(transport_class):
-    # Test default credentials are used if not provided.
-    with mock.patch.object(google.auth, 'default') as adc:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport_class()
-        adc.assert_called_once()
-
-def test_transport_kind_grpc():
-    transport = RevisionsClient.get_transport_class("grpc")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "grpc"
-
-
-def test_initialize_client_w_grpc():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_revision_empty_call_grpc():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        call.return_value = revision.Revision()
-        client.get_revision(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.GetRevisionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_revisions_empty_call_grpc():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        call.return_value = revision.ListRevisionsResponse()
-        client.list_revisions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.ListRevisionsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_delete_revision_empty_call_grpc():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.delete_revision(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.DeleteRevisionRequest()
-
-        assert args[0] == request_msg
-
-
-def test_get_revision_routing_parameters_request_1_grpc():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        call.return_value = revision.Revision()
-        client.get_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.GetRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_list_revisions_routing_parameters_request_1_grpc():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        call.return_value = revision.ListRevisionsResponse()
-        client.list_revisions(request={"parent": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.ListRevisionsRequest(**{"parent": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_delete_revision_routing_parameters_request_1_grpc():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.delete_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.DeleteRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_transport_kind_grpc_asyncio():
-    transport = RevisionsAsyncClient.get_transport_class("grpc_asyncio")(
-        credentials=async_anonymous_credentials()
-    )
-    assert transport.kind == "grpc_asyncio"
-
-
-def test_initialize_client_w_grpc_asyncio():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_get_revision_empty_call_grpc_asyncio():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.Revision(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            service='service_value',
-            max_instance_request_concurrency=3436,
-            service_account='service_account_value',
-            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-            encryption_key='encryption_key_value',
-            encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
-            reconciling=True,
-            observed_generation=2021,
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            session_affinity=True,
-            etag='etag_value',
-        ))
-        await client.get_revision(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.GetRevisionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_list_revisions_empty_call_grpc_asyncio():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.ListRevisionsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        await client.list_revisions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.ListRevisionsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_delete_revision_empty_call_grpc_asyncio():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.delete_revision(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.DeleteRevisionRequest()
-
-        assert args[0] == request_msg
-
-
-@pytest.mark.asyncio
-async def test_get_revision_routing_parameters_request_1_grpc_asyncio():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.Revision(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            service='service_value',
-            max_instance_request_concurrency=3436,
-            service_account='service_account_value',
-            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-            encryption_key='encryption_key_value',
-            encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
-            reconciling=True,
-            observed_generation=2021,
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            session_affinity=True,
-            etag='etag_value',
-        ))
-        await client.get_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.GetRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_list_revisions_routing_parameters_request_1_grpc_asyncio():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(revision.ListRevisionsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        await client.list_revisions(request={"parent": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.ListRevisionsRequest(**{"parent": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_delete_revision_routing_parameters_request_1_grpc_asyncio():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.delete_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.DeleteRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_transport_kind_rest():
-    transport = RevisionsClient.get_transport_class("rest")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "rest"
-
-
-def test_get_revision_rest_bad_request(request_type=revision.GetRevisionRequest):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.get_revision(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  revision.GetRevisionRequest,
-  dict,
-])
-def test_get_revision_rest_call_success(request_type):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = revision.Revision(
-              name='name_value',
-              uid='uid_value',
-              generation=1068,
-              launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-              service='service_value',
-              max_instance_request_concurrency=3436,
-              service_account='service_account_value',
-              execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-              encryption_key='encryption_key_value',
-              encryption_key_revocation_action=vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW,
-              reconciling=True,
-              observed_generation=2021,
-              log_uri='log_uri_value',
-              satisfies_pzs=True,
-              session_affinity=True,
-              etag='etag_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = revision.Revision.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.get_revision(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, revision.Revision)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.service == 'service_value'
-    assert response.max_instance_request_concurrency == 3436
-    assert response.service_account == 'service_account_value'
-    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
-    assert response.encryption_key == 'encryption_key_value'
-    assert response.encryption_key_revocation_action == vendor_settings.EncryptionKeyRevocationAction.PREVENT_NEW
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.session_affinity is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_get_revision_rest_interceptors(null_interceptor):
-    transport = transports.RevisionsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.RevisionsRestInterceptor(),
-        )
-    client = RevisionsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.RevisionsRestInterceptor, "post_get_revision") as post, \
-        mock.patch.object(transports.RevisionsRestInterceptor, "pre_get_revision") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = revision.GetRevisionRequest.pb(revision.GetRevisionRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = revision.Revision.to_json(revision.Revision())
-        req.return_value.content = return_value
-
-        request = revision.GetRevisionRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = revision.Revision()
-
-        client.get_revision(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_list_revisions_rest_bad_request(request_type=revision.ListRevisionsRequest):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.list_revisions(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  revision.ListRevisionsRequest,
-  dict,
-])
-def test_list_revisions_rest_call_success(request_type):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = revision.ListRevisionsResponse(
-              next_page_token='next_page_token_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = revision.ListRevisionsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.list_revisions(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListRevisionsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_list_revisions_rest_interceptors(null_interceptor):
-    transport = transports.RevisionsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.RevisionsRestInterceptor(),
-        )
-    client = RevisionsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.RevisionsRestInterceptor, "post_list_revisions") as post, \
-        mock.patch.object(transports.RevisionsRestInterceptor, "pre_list_revisions") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = revision.ListRevisionsRequest.pb(revision.ListRevisionsRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = revision.ListRevisionsResponse.to_json(revision.ListRevisionsResponse())
-        req.return_value.content = return_value
-
-        request = revision.ListRevisionsRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = revision.ListRevisionsResponse()
-
-        client.list_revisions(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_revision_rest_bad_request(request_type=revision.DeleteRevisionRequest):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.delete_revision(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  revision.DeleteRevisionRequest,
-  dict,
-])
-def test_delete_revision_rest_call_success(request_type):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3/revisions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.delete_revision(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_delete_revision_rest_interceptors(null_interceptor):
-    transport = transports.RevisionsRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.RevisionsRestInterceptor(),
-        )
-    client = RevisionsClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.RevisionsRestInterceptor, "post_delete_revision") as post, \
-        mock.patch.object(transports.RevisionsRestInterceptor, "pre_delete_revision") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = revision.DeleteRevisionRequest.pb(revision.DeleteRevisionRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = revision.DeleteRevisionRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.delete_revision(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.delete_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.DeleteOperationRequest,
-    dict,
-])
-def test_delete_operation_rest(request_type):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = None
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = '{}'
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.delete_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-
-def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.get_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.GetOperationRequest,
-    dict,
-])
-def test_get_operation_rest(request_type):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.get_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-
-def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.list_operations(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.ListOperationsRequest,
-    dict,
-])
-def test_list_operations_rest(request_type):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.ListOperationsResponse()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.list_operations(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-
-def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.wait_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.WaitOperationRequest,
-    dict,
-])
-def test_wait_operation_rest(request_type):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.wait_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_initialize_client_w_rest():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_revision_empty_call_rest():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        client.get_revision(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.GetRevisionRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_revisions_empty_call_rest():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        client.list_revisions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.ListRevisionsRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_delete_revision_empty_call_rest():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        client.delete_revision(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = revision.DeleteRevisionRequest()
-
-        assert args[0] == request_msg
-
-
-def test_get_revision_routing_parameters_request_1_rest():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_revision),
-            '__call__') as call:
-        client.get_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.GetRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_list_revisions_routing_parameters_request_1_rest():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_revisions),
-            '__call__') as call:
-        client.list_revisions(request={"parent": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.ListRevisionsRequest(**{"parent": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_delete_revision_routing_parameters_request_1_rest():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_revision),
-            '__call__') as call:
-        client.delete_revision(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = revision.DeleteRevisionRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_revisions_rest_lro_client():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    transport = client.transport
-
-    # Ensure that we have an api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-operations_v1.AbstractOperationsClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.RevisionsGrpcTransport,
-    )
-
-def test_revisions_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.RevisionsTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_revisions_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.run_v2.services.revisions.transports.RevisionsTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.RevisionsTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'get_revision',
-        'list_revisions',
-        'delete_revision',
-        'get_operation',
-        'wait_operation',
-        'delete_operation',
-        'list_operations',
-    )
-    for method in methods:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, method)(request=object())
-
-    with pytest.raises(NotImplementedError):
-        transport.close()
-
-    # Additionally, the LRO client (a property) should
-    # also raise NotImplementedError
-    with pytest.raises(NotImplementedError):
-        transport.operations_client
-
-    # Catch all for all remaining methods and properties
-    remainder = [
-        'kind',
-    ]
-    for r in remainder:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, r)()
-
-
-def test_revisions_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.revisions.transports.RevisionsTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.RevisionsTransport(
-            credentials_file="credentials.json",
-            quota_project_id="octopus",
-        )
-        load_creds.assert_called_once_with("credentials.json",
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id="octopus",
-        )
-
-
-def test_revisions_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.revisions.transports.RevisionsTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.RevisionsTransport()
-        adc.assert_called_once()
-
-
-def test_revisions_auth_adc():
-    # 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)
-        RevisionsClient()
-        adc.assert_called_once_with(
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id=None,
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.RevisionsGrpcTransport,
-        transports.RevisionsGrpcAsyncIOTransport,
-    ],
-)
-def test_revisions_transport_auth_adc(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", scopes=["1", "2"])
-        adc.assert_called_once_with(
-            scopes=["1", "2"],
-            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
-            quota_project_id="octopus",
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.RevisionsGrpcTransport,
-        transports.RevisionsGrpcAsyncIOTransport,
-        transports.RevisionsRestTransport,
-    ],
-)
-def test_revisions_transport_auth_gdch_credentials(transport_class):
-    host = 'https://language.com'
-    api_audience_tests = [None, 'https://language2.com']
-    api_audience_expect = [host, 'https://language2.com']
-    for t, e in zip(api_audience_tests, api_audience_expect):
-        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
-            gdch_mock = mock.MagicMock()
-            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
-            adc.return_value = (gdch_mock, None)
-            transport_class(host=host, api_audience=t)
-            gdch_mock.with_gdch_audience.assert_called_once_with(
-                e
-            )
-
-
-@pytest.mark.parametrize(
-    "transport_class,grpc_helpers",
-    [
-        (transports.RevisionsGrpcTransport, grpc_helpers),
-        (transports.RevisionsGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_revisions_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=creds,
-            credentials_file=None,
-            quota_project_id="octopus",
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=["1", "2"],
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.RevisionsGrpcTransport, transports.RevisionsGrpcAsyncIOTransport])
-def test_revisions_grpc_transport_client_cert_source_for_mtls(
-    transport_class
-):
-    cred = ga_credentials.AnonymousCredentials()
-
-    # Check ssl_channel_credentials is used if provided.
-    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
-        mock_ssl_channel_creds = mock.Mock()
-        transport_class(
-            host="squid.clam.whelk",
-            credentials=cred,
-            ssl_channel_credentials=mock_ssl_channel_creds
-        )
-        mock_create_channel.assert_called_once_with(
-            "squid.clam.whelk:443",
-            credentials=cred,
-            credentials_file=None,
-            scopes=None,
-            ssl_credentials=mock_ssl_channel_creds,
-            quota_project_id=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
-    # is used.
-    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
-        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
-            transport_class(
-                credentials=cred,
-                client_cert_source_for_mtls=client_cert_source_callback
-            )
-            expected_cert, expected_key = client_cert_source_callback()
-            mock_ssl_cred.assert_called_once_with(
-                certificate_chain=expected_cert,
-                private_key=expected_key
-            )
-
-def test_revisions_http_transport_client_cert_source_for_mtls():
-    cred = ga_credentials.AnonymousCredentials()
-    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
-        transports.RevisionsRestTransport (
-            credentials=cred,
-            client_cert_source_for_mtls=client_cert_source_callback
-        )
-        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
-
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_revisions_host_no_port(transport_name):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_revisions_host_with_port(transport_name):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_revisions_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = RevisionsClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = RevisionsClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.get_revision._session
-    session2 = client2.transport.get_revision._session
-    assert session1 != session2
-    session1 = client1.transport.list_revisions._session
-    session2 = client2.transport.list_revisions._session
-    assert session1 != session2
-    session1 = client1.transport.delete_revision._session
-    session2 = client2.transport.delete_revision._session
-    assert session1 != session2
-def test_revisions_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.RevisionsGrpcTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-def test_revisions_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.RevisionsGrpcAsyncIOTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.RevisionsGrpcTransport, transports.RevisionsGrpcAsyncIOTransport])
-def test_revisions_transport_channel_mtls_with_client_cert_source(
-    transport_class
-):
-    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_ssl_cred = mock.Mock()
-            grpc_ssl_channel_cred.return_value = mock_ssl_cred
-
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-
-            cred = ga_credentials.AnonymousCredentials()
-            with pytest.warns(DeprecationWarning):
-                with mock.patch.object(google.auth, 'default') as adc:
-                    adc.return_value = (cred, None)
-                    transport = transport_class(
-                        host="squid.clam.whelk",
-                        api_mtls_endpoint="mtls.squid.clam.whelk",
-                        client_cert_source=client_cert_source_callback,
-                    )
-                    adc.assert_called_once()
-
-            grpc_ssl_channel_cred.assert_called_once_with(
-                certificate_chain=b"cert bytes", private_key=b"key bytes"
-            )
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-            assert transport._ssl_channel_credentials == mock_ssl_cred
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.RevisionsGrpcTransport, transports.RevisionsGrpcAsyncIOTransport])
-def test_revisions_transport_channel_mtls_with_adc(
-    transport_class
-):
-    mock_ssl_cred = mock.Mock()
-    with mock.patch.multiple(
-        "google.auth.transport.grpc.SslCredentials",
-        __init__=mock.Mock(return_value=None),
-        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
-    ):
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-            mock_cred = mock.Mock()
-
-            with pytest.warns(DeprecationWarning):
-                transport = transport_class(
-                    host="squid.clam.whelk",
-                    credentials=mock_cred,
-                    api_mtls_endpoint="mtls.squid.clam.whelk",
-                    client_cert_source=None,
-                )
-
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=mock_cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-
-
-def test_revisions_grpc_lro_client():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-    transport = client.transport
-
-    # Ensure that we have a api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-        operations_v1.OperationsClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-
-def test_revisions_grpc_lro_async_client():
-    client = RevisionsAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc_asyncio',
-    )
-    transport = client.transport
-
-    # Ensure that we have a api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-        operations_v1.OperationsAsyncClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-
-def test_connector_path():
-    project = "squid"
-    location = "clam"
-    connector = "whelk"
-    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-    actual = RevisionsClient.connector_path(project, location, connector)
-    assert expected == actual
-
-
-def test_parse_connector_path():
-    expected = {
-        "project": "octopus",
-        "location": "oyster",
-        "connector": "nudibranch",
-    }
-    path = RevisionsClient.connector_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_connector_path(path)
-    assert expected == actual
-
-def test_crypto_key_path():
-    project = "cuttlefish"
-    location = "mussel"
-    key_ring = "winkle"
-    crypto_key = "nautilus"
-    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-    actual = RevisionsClient.crypto_key_path(project, location, key_ring, crypto_key)
-    assert expected == actual
-
-
-def test_parse_crypto_key_path():
-    expected = {
-        "project": "scallop",
-        "location": "abalone",
-        "key_ring": "squid",
-        "crypto_key": "clam",
-    }
-    path = RevisionsClient.crypto_key_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_crypto_key_path(path)
-    assert expected == actual
-
-def test_mesh_path():
-    project = "whelk"
-    location = "octopus"
-    mesh = "oyster"
-    expected = "projects/{project}/locations/{location}/meshes/{mesh}".format(project=project, location=location, mesh=mesh, )
-    actual = RevisionsClient.mesh_path(project, location, mesh)
-    assert expected == actual
-
-
-def test_parse_mesh_path():
-    expected = {
-        "project": "nudibranch",
-        "location": "cuttlefish",
-        "mesh": "mussel",
-    }
-    path = RevisionsClient.mesh_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_mesh_path(path)
-    assert expected == actual
-
-def test_revision_path():
-    project = "winkle"
-    location = "nautilus"
-    service = "scallop"
-    revision = "abalone"
-    expected = "projects/{project}/locations/{location}/services/{service}/revisions/{revision}".format(project=project, location=location, service=service, revision=revision, )
-    actual = RevisionsClient.revision_path(project, location, service, revision)
-    assert expected == actual
-
-
-def test_parse_revision_path():
-    expected = {
-        "project": "squid",
-        "location": "clam",
-        "service": "whelk",
-        "revision": "octopus",
-    }
-    path = RevisionsClient.revision_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_revision_path(path)
-    assert expected == actual
-
-def test_secret_path():
-    project = "oyster"
-    secret = "nudibranch"
-    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-    actual = RevisionsClient.secret_path(project, secret)
-    assert expected == actual
-
-
-def test_parse_secret_path():
-    expected = {
-        "project": "cuttlefish",
-        "secret": "mussel",
-    }
-    path = RevisionsClient.secret_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_secret_path(path)
-    assert expected == actual
-
-def test_secret_version_path():
-    project = "winkle"
-    secret = "nautilus"
-    version = "scallop"
-    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-    actual = RevisionsClient.secret_version_path(project, secret, version)
-    assert expected == actual
-
-
-def test_parse_secret_version_path():
-    expected = {
-        "project": "abalone",
-        "secret": "squid",
-        "version": "clam",
-    }
-    path = RevisionsClient.secret_version_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_secret_version_path(path)
-    assert expected == actual
-
-def test_service_path():
-    project = "whelk"
-    location = "octopus"
-    service = "oyster"
-    expected = "projects/{project}/locations/{location}/services/{service}".format(project=project, location=location, service=service, )
-    actual = RevisionsClient.service_path(project, location, service)
-    assert expected == actual
-
-
-def test_parse_service_path():
-    expected = {
-        "project": "nudibranch",
-        "location": "cuttlefish",
-        "service": "mussel",
-    }
-    path = RevisionsClient.service_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_service_path(path)
-    assert expected == actual
-
-def test_common_billing_account_path():
-    billing_account = "winkle"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = RevisionsClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "nautilus",
-    }
-    path = RevisionsClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "scallop"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = RevisionsClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "abalone",
-    }
-    path = RevisionsClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "squid"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = RevisionsClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "clam",
-    }
-    path = RevisionsClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "whelk"
-    expected = "projects/{project}".format(project=project, )
-    actual = RevisionsClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "octopus",
-    }
-    path = RevisionsClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_common_project_path(path)
-    assert expected == actual
-
-def test_common_location_path():
-    project = "oyster"
-    location = "nudibranch"
-    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
-    actual = RevisionsClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "cuttlefish",
-        "location": "mussel",
-    }
-    path = RevisionsClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = RevisionsClient.parse_common_location_path(path)
-    assert expected == actual
-
-
-def test_client_with_default_client_info():
-    client_info = gapic_v1.client_info.ClientInfo()
-
-    with mock.patch.object(transports.RevisionsTransport, '_prep_wrapped_messages') as prep:
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.RevisionsTransport, '_prep_wrapped_messages') as prep:
-        transport_class = RevisionsClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-
-def test_delete_operation(transport: str = "grpc"):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-        response = client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-@pytest.mark.asyncio
-async def test_delete_operation_async(transport: str = "grpc_asyncio"):
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-def test_delete_operation_field_headers():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value =  None
-
-        client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_delete_operation_field_headers_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_delete_operation_from_dict():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-
-        response = client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_delete_operation_from_dict_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_wait_operation(transport: str = "grpc"):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_wait_operation(transport: str = "grpc_asyncio"):
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_wait_operation_field_headers():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_wait_operation_field_headers_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_wait_operation_from_dict():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_wait_operation_from_dict_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_get_operation(transport: str = "grpc"):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_get_operation_async(transport: str = "grpc_asyncio"):
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_get_operation_field_headers():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_get_operation_field_headers_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_get_operation_from_dict():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_get_operation_from_dict_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_list_operations(transport: str = "grpc"):
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-        response = client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-@pytest.mark.asyncio
-async def test_list_operations_async(transport: str = "grpc_asyncio"):
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-def test_list_operations_field_headers():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_list_operations_field_headers_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_list_operations_from_dict():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        response = client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_list_operations_from_dict_async():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_transport_close_grpc():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-@pytest.mark.asyncio
-async def test_transport_close_grpc_asyncio():
-    client = RevisionsAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        async with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_transport_close_rest():
-    client = RevisionsClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_client_ctx():
-    transports = [
-        'rest',
-        'grpc',
-    ]
-    for transport in transports:
-        client = RevisionsClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        # Test client calls underlying transport.
-        with mock.patch.object(type(client.transport), "close") as close:
-            close.assert_not_called()
-            with client:
-                pass
-            close.assert_called()
-
-@pytest.mark.parametrize("client_class,transport_class", [
-    (RevisionsClient, transports.RevisionsGrpcTransport),
-    (RevisionsAsyncClient, transports.RevisionsGrpcAsyncIOTransport),
-])
-def test_api_key_credentials(client_class, transport_class):
-    with mock.patch.object(
-        google.auth._default, "get_api_key_credentials", create=True
-    ) as get_api_key_credentials:
-        mock_cred = mock.Mock()
-        get_api_key_credentials.return_value = mock_cred
-        options = client_options.ClientOptions()
-        options.api_key = "api_key"
-        with mock.patch.object(transport_class, "__init__") as patched:
-            patched.return_value = None
-            client = client_class(client_options=options)
-            patched.assert_called_once_with(
-                credentials=mock_cred,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_services.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_services.py
deleted file mode 100644
index e0a8442425f5..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_services.py
+++ /dev/null
@@ -1,7878 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 os
-# try/except added for compatibility with python < 3.8
-try:
-    from unittest import mock
-    from unittest.mock import AsyncMock  # pragma: NO COVER
-except ImportError:  # pragma: NO COVER
-    import mock
-
-import grpc
-from grpc.experimental import aio
-from collections.abc import Iterable, AsyncIterable
-from google.protobuf import json_format
-import json
-import math
-import pytest
-from google.api_core import api_core_version
-from proto.marshal.rules.dates import DurationRule, TimestampRule
-from proto.marshal.rules import wrappers
-from requests import Response
-from requests import Request, PreparedRequest
-from requests.sessions import Session
-from google.protobuf import json_format
-
-try:
-    from google.auth.aio import credentials as ga_credentials_async
-    HAS_GOOGLE_AUTH_AIO = True
-except ImportError: # pragma: NO COVER
-    HAS_GOOGLE_AUTH_AIO = False
-
-from google.api import launch_stage_pb2  # type: ignore
-from google.api_core import client_options
-from google.api_core import exceptions as core_exceptions
-from google.api_core import future
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers
-from google.api_core import grpc_helpers_async
-from google.api_core import operation
-from google.api_core import operation_async  # type: ignore
-from google.api_core import operations_v1
-from google.api_core import path_template
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.location import locations_pb2
-from google.cloud.run_v2.services.services import ServicesAsyncClient
-from google.cloud.run_v2.services.services import ServicesClient
-from google.cloud.run_v2.services.services import pagers
-from google.cloud.run_v2.services.services import transports
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import revision_template
-from google.cloud.run_v2.types import service
-from google.cloud.run_v2.types import service as gcr_service
-from google.cloud.run_v2.types import traffic_target
-from google.cloud.run_v2.types import vendor_settings
-from google.iam.v1 import iam_policy_pb2  # type: ignore
-from google.iam.v1 import options_pb2  # type: ignore
-from google.iam.v1 import policy_pb2  # type: ignore
-from google.longrunning import operations_pb2 # type: ignore
-from google.oauth2 import service_account
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import field_mask_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-from google.type import expr_pb2  # type: ignore
-import google.auth
-
-
-async def mock_async_gen(data, chunk_size=1):
-    for i in range(0, len(data)):  # pragma: NO COVER
-        chunk = data[i : i + chunk_size]
-        yield chunk.encode("utf-8")
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
-# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
-def async_anonymous_credentials():
-    if HAS_GOOGLE_AUTH_AIO:
-        return ga_credentials_async.AnonymousCredentials()
-    return ga_credentials.AnonymousCredentials()
-
-# If default endpoint is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint(client):
-    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
-
-# If default endpoint template is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint template so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint_template(client):
-    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
-
-
-def test__get_default_mtls_endpoint():
-    api_endpoint = "example.googleapis.com"
-    api_mtls_endpoint = "example.mtls.googleapis.com"
-    sandbox_endpoint = "example.sandbox.googleapis.com"
-    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
-    non_googleapi = "api.example.com"
-
-    assert ServicesClient._get_default_mtls_endpoint(None) is None
-    assert ServicesClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert ServicesClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert ServicesClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert ServicesClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert ServicesClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-def test__read_environment_variables():
-    assert ServicesClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        assert ServicesClient._read_environment_variables() == (True, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        assert ServicesClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            ServicesClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        assert ServicesClient._read_environment_variables() == (False, "never", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        assert ServicesClient._read_environment_variables() == (False, "always", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
-        assert ServicesClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            ServicesClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
-        assert ServicesClient._read_environment_variables() == (False, "auto", "foo.com")
-
-def test__get_client_cert_source():
-    mock_provided_cert_source = mock.Mock()
-    mock_default_cert_source = mock.Mock()
-
-    assert ServicesClient._get_client_cert_source(None, False) is None
-    assert ServicesClient._get_client_cert_source(mock_provided_cert_source, False) is None
-    assert ServicesClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
-
-    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
-            assert ServicesClient._get_client_cert_source(None, True) is mock_default_cert_source
-            assert ServicesClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
-
-@mock.patch.object(ServicesClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesClient))
-@mock.patch.object(ServicesAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesAsyncClient))
-def test__get_api_endpoint():
-    api_override = "foo.com"
-    mock_client_cert_source = mock.Mock()
-    default_universe = ServicesClient._DEFAULT_UNIVERSE
-    default_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    assert ServicesClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
-    assert ServicesClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == ServicesClient.DEFAULT_MTLS_ENDPOINT
-    assert ServicesClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
-    assert ServicesClient._get_api_endpoint(None, None, default_universe, "always") == ServicesClient.DEFAULT_MTLS_ENDPOINT
-    assert ServicesClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == ServicesClient.DEFAULT_MTLS_ENDPOINT
-    assert ServicesClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
-    assert ServicesClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
-
-    with pytest.raises(MutualTLSChannelError) as excinfo:
-        ServicesClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
-    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
-
-
-def test__get_universe_domain():
-    client_universe_domain = "foo.com"
-    universe_domain_env = "bar.com"
-
-    assert ServicesClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
-    assert ServicesClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
-    assert ServicesClient._get_universe_domain(None, None) == ServicesClient._DEFAULT_UNIVERSE
-
-    with pytest.raises(ValueError) as excinfo:
-        ServicesClient._get_universe_domain("", None)
-    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (ServicesClient, "grpc"),
-    (ServicesAsyncClient, "grpc_asyncio"),
-    (ServicesClient, "rest"),
-])
-def test_services_client_from_service_account_info(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
-        factory.return_value = creds
-        info = {"valid": True}
-        client = client_class.from_service_account_info(info, transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.ServicesGrpcTransport, "grpc"),
-    (transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.ServicesRestTransport, "rest"),
-])
-def test_services_client_service_account_always_use_jwt(transport_class, transport_name):
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=True)
-        use_jwt.assert_called_once_with(True)
-
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=False)
-        use_jwt.assert_not_called()
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (ServicesClient, "grpc"),
-    (ServicesAsyncClient, "grpc_asyncio"),
-    (ServicesClient, "rest"),
-])
-def test_services_client_from_service_account_file(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
-        factory.return_value = creds
-        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-def test_services_client_get_transport_class():
-    transport = ServicesClient.get_transport_class()
-    available_transports = [
-        transports.ServicesGrpcTransport,
-        transports.ServicesRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = ServicesClient.get_transport_class("grpc")
-    assert transport == transports.ServicesGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ServicesClient, transports.ServicesGrpcTransport, "grpc"),
-    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ServicesClient, transports.ServicesRestTransport, "rest"),
-])
-@mock.patch.object(ServicesClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesClient))
-@mock.patch.object(ServicesAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesAsyncClient))
-def test_services_client_client_options(client_class, transport_class, transport_name):
-    # Check that if channel is provided we won't create a new one.
-    with mock.patch.object(ServicesClient, 'get_transport_class') as gtc:
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-        client = client_class(transport=transport)
-        gtc.assert_not_called()
-
-    # Check that if channel is provided via str we will create a new one.
-    with mock.patch.object(ServicesClient, 'get_transport_class') as gtc:
-        client = client_class(transport=transport_name)
-        gtc.assert_called()
-
-    # Check the case api_endpoint is provided.
-    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(transport=transport_name, client_options=options)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "never".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "always".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client.DEFAULT_MTLS_ENDPOINT,
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    # Check the case quota_project_id is provided
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id="octopus",
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-    # Check the case api_endpoint is provided
-    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
-    with mock.patch.object(transport_class, '__init__') as patched:
-        patched.return_value = None
-        client = client_class(client_options=options, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience="https://language.googleapis.com"
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
-    (ServicesClient, transports.ServicesGrpcTransport, "grpc", "true"),
-    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (ServicesClient, transports.ServicesGrpcTransport, "grpc", "false"),
-    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (ServicesClient, transports.ServicesRestTransport, "rest", "true"),
-    (ServicesClient, transports.ServicesRestTransport, "rest", "false"),
-])
-@mock.patch.object(ServicesClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesClient))
-@mock.patch.object(ServicesAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_services_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
-    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
-    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
-
-    # Check the case client_cert_source is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
-        with mock.patch.object(transport_class, '__init__') as patched:
-            patched.return_value = None
-            client = client_class(client_options=options, transport=transport_name)
-
-            if use_client_cert_env == "false":
-                expected_client_cert_source = None
-                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-            else:
-                expected_client_cert_source = client_cert_source_callback
-                expected_host = client.DEFAULT_MTLS_ENDPOINT
-
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=expected_host,
-                scopes=None,
-                client_cert_source_for_mtls=expected_client_cert_source,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case ADC client cert is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
-                    if use_client_cert_env == "false":
-                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-                        expected_client_cert_source = None
-                    else:
-                        expected_host = client.DEFAULT_MTLS_ENDPOINT
-                        expected_client_cert_source = client_cert_source_callback
-
-                    patched.return_value = None
-                    client = client_class(transport=transport_name)
-                    patched.assert_called_once_with(
-                        credentials=None,
-                        credentials_file=None,
-                        host=expected_host,
-                        scopes=None,
-                        client_cert_source_for_mtls=expected_client_cert_source,
-                        quota_project_id=None,
-                        client_info=transports.base.DEFAULT_CLIENT_INFO,
-                        always_use_jwt_access=True,
-                        api_audience=None,
-                    )
-
-    # Check the case client_cert_source and ADC client cert are not provided.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
-                patched.return_value = None
-                client = client_class(transport=transport_name)
-                patched.assert_called_once_with(
-                    credentials=None,
-                    credentials_file=None,
-                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                    scopes=None,
-                    client_cert_source_for_mtls=None,
-                    quota_project_id=None,
-                    client_info=transports.base.DEFAULT_CLIENT_INFO,
-                    always_use_jwt_access=True,
-                    api_audience=None,
-                )
-
-
-@pytest.mark.parametrize("client_class", [
-    ServicesClient, ServicesAsyncClient
-])
-@mock.patch.object(ServicesClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ServicesClient))
-@mock.patch.object(ServicesAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ServicesAsyncClient))
-def test_services_client_get_mtls_endpoint_and_cert_source(client_class):
-    mock_client_cert_source = mock.Mock()
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source == mock_client_cert_source
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        mock_client_cert_source = mock.Mock()
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
-            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-            assert api_endpoint == client_class.DEFAULT_ENDPOINT
-            assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
-                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-                assert cert_source == mock_client_cert_source
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-@pytest.mark.parametrize("client_class", [
-    ServicesClient, ServicesAsyncClient
-])
-@mock.patch.object(ServicesClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesClient))
-@mock.patch.object(ServicesAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(ServicesAsyncClient))
-def test_services_client_client_api_endpoint(client_class):
-    mock_client_cert_source = client_cert_source_callback
-    api_override = "foo.com"
-    default_universe = ServicesClient._DEFAULT_UNIVERSE
-    default_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = ServicesClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
-    # use ClientOptions.api_endpoint as the api endpoint regardless.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
-            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
-            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-            assert client.api_endpoint == api_override
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
-    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-
-    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
-    # and ClientOptions.universe_domain="bar.com",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
-    options = client_options.ClientOptions()
-    universe_exists = hasattr(options, "universe_domain")
-    if universe_exists:
-        options = client_options.ClientOptions(universe_domain=mock_universe)
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    else:
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
-    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
-
-    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    options = client_options.ClientOptions()
-    if hasattr(options, "universe_domain"):
-        delattr(options, "universe_domain")
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ServicesClient, transports.ServicesGrpcTransport, "grpc"),
-    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ServicesClient, transports.ServicesRestTransport, "rest"),
-])
-def test_services_client_client_options_scopes(client_class, transport_class, transport_name):
-    # Check the case scopes are provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=["1", "2"],
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (ServicesClient, transports.ServicesGrpcTransport, "grpc", grpc_helpers),
-    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (ServicesClient, transports.ServicesRestTransport, "rest", None),
-])
-def test_services_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-def test_services_client_client_options_from_dict():
-    with mock.patch('google.cloud.run_v2.services.services.transports.ServicesGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = ServicesClient(
-            client_options={'api_endpoint': 'squid.clam.whelk'}
-        )
-        grpc_transport.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (ServicesClient, transports.ServicesGrpcTransport, "grpc", grpc_helpers),
-    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_services_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # test that the credentials from file are saved and used as the credentials.
-    with mock.patch.object(
-        google.auth, "load_credentials_from_file", autospec=True
-    ) as load_creds, mock.patch.object(
-        google.auth, "default", autospec=True
-    ) as adc, mock.patch.object(
-        grpc_helpers, "create_channel"
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        file_creds = ga_credentials.AnonymousCredentials()
-        load_creds.return_value = (file_creds, None)
-        adc.return_value = (creds, None)
-        client = client_class(client_options=options, transport=transport_name)
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=file_creds,
-            credentials_file=None,
-            quota_project_id=None,
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=None,
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  gcr_service.CreateServiceRequest,
-  dict,
-])
-def test_create_service(request_type, transport: str = 'grpc'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.create_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = gcr_service.CreateServiceRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_create_service_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = gcr_service.CreateServiceRequest(
-        parent='parent_value',
-        service_id='service_id_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.create_service(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == gcr_service.CreateServiceRequest(
-            parent='parent_value',
-            service_id='service_id_value',
-        )
-
-def test_create_service_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.create_service in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.create_service] = mock_rpc
-        request = {}
-        client.create_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.create_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_create_service_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ServicesAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.create_service in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.create_service] = mock_rpc
-
-        request = {}
-        await client.create_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.create_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_create_service_async(transport: str = 'grpc_asyncio', request_type=gcr_service.CreateServiceRequest):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.create_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = gcr_service.CreateServiceRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_create_service_async_from_dict():
-    await test_create_service_async(request_type=dict)
-
-
-def test_create_service_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.create_service(
-            parent='parent_value',
-            service=gcr_service.Service(name='name_value'),
-            service_id='service_id_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-        arg = args[0].service
-        mock_val = gcr_service.Service(name='name_value')
-        assert arg == mock_val
-        arg = args[0].service_id
-        mock_val = 'service_id_value'
-        assert arg == mock_val
-
-
-def test_create_service_flattened_error():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.create_service(
-            gcr_service.CreateServiceRequest(),
-            parent='parent_value',
-            service=gcr_service.Service(name='name_value'),
-            service_id='service_id_value',
-        )
-
-@pytest.mark.asyncio
-async def test_create_service_flattened_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.create_service(
-            parent='parent_value',
-            service=gcr_service.Service(name='name_value'),
-            service_id='service_id_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-        arg = args[0].service
-        mock_val = gcr_service.Service(name='name_value')
-        assert arg == mock_val
-        arg = args[0].service_id
-        mock_val = 'service_id_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_create_service_flattened_error_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.create_service(
-            gcr_service.CreateServiceRequest(),
-            parent='parent_value',
-            service=gcr_service.Service(name='name_value'),
-            service_id='service_id_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  service.GetServiceRequest,
-  dict,
-])
-def test_get_service(request_type, transport: str = 'grpc'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = service.Service(
-            name='name_value',
-            description='description_value',
-            uid='uid_value',
-            generation=1068,
-            creator='creator_value',
-            last_modifier='last_modifier_value',
-            client='client_value',
-            client_version='client_version_value',
-            ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            invoker_iam_disabled=True,
-            default_uri_disabled=True,
-            urls=['urls_value'],
-            custom_audiences=['custom_audiences_value'],
-            observed_generation=2021,
-            latest_ready_revision='latest_ready_revision_value',
-            latest_created_revision='latest_created_revision_value',
-            uri='uri_value',
-            satisfies_pzs=True,
-            reconciling=True,
-            etag='etag_value',
-        )
-        response = client.get_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = service.GetServiceRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, service.Service)
-    assert response.name == 'name_value'
-    assert response.description == 'description_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.creator == 'creator_value'
-    assert response.last_modifier == 'last_modifier_value'
-    assert response.client == 'client_value'
-    assert response.client_version == 'client_version_value'
-    assert response.ingress == vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.invoker_iam_disabled is True
-    assert response.default_uri_disabled is True
-    assert response.urls == ['urls_value']
-    assert response.custom_audiences == ['custom_audiences_value']
-    assert response.observed_generation == 2021
-    assert response.latest_ready_revision == 'latest_ready_revision_value'
-    assert response.latest_created_revision == 'latest_created_revision_value'
-    assert response.uri == 'uri_value'
-    assert response.satisfies_pzs is True
-    assert response.reconciling is True
-    assert response.etag == 'etag_value'
-
-
-def test_get_service_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = service.GetServiceRequest(
-        name='name_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.get_service(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == service.GetServiceRequest(
-            name='name_value',
-        )
-
-def test_get_service_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_service in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_service] = mock_rpc
-        request = {}
-        client.get_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_service_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ServicesAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.get_service in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.get_service] = mock_rpc
-
-        request = {}
-        await client.get_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.get_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_service_async(transport: str = 'grpc_asyncio', request_type=service.GetServiceRequest):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(service.Service(
-            name='name_value',
-            description='description_value',
-            uid='uid_value',
-            generation=1068,
-            creator='creator_value',
-            last_modifier='last_modifier_value',
-            client='client_value',
-            client_version='client_version_value',
-            ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            invoker_iam_disabled=True,
-            default_uri_disabled=True,
-            urls=['urls_value'],
-            custom_audiences=['custom_audiences_value'],
-            observed_generation=2021,
-            latest_ready_revision='latest_ready_revision_value',
-            latest_created_revision='latest_created_revision_value',
-            uri='uri_value',
-            satisfies_pzs=True,
-            reconciling=True,
-            etag='etag_value',
-        ))
-        response = await client.get_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = service.GetServiceRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, service.Service)
-    assert response.name == 'name_value'
-    assert response.description == 'description_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.creator == 'creator_value'
-    assert response.last_modifier == 'last_modifier_value'
-    assert response.client == 'client_value'
-    assert response.client_version == 'client_version_value'
-    assert response.ingress == vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.invoker_iam_disabled is True
-    assert response.default_uri_disabled is True
-    assert response.urls == ['urls_value']
-    assert response.custom_audiences == ['custom_audiences_value']
-    assert response.observed_generation == 2021
-    assert response.latest_ready_revision == 'latest_ready_revision_value'
-    assert response.latest_created_revision == 'latest_created_revision_value'
-    assert response.uri == 'uri_value'
-    assert response.satisfies_pzs is True
-    assert response.reconciling is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.asyncio
-async def test_get_service_async_from_dict():
-    await test_get_service_async(request_type=dict)
-
-
-def test_get_service_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = service.Service()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.get_service(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_get_service_flattened_error():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_service(
-            service.GetServiceRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_get_service_flattened_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = service.Service()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.Service())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.get_service(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_get_service_flattened_error_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.get_service(
-            service.GetServiceRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  service.ListServicesRequest,
-  dict,
-])
-def test_list_services(request_type, transport: str = 'grpc'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = service.ListServicesResponse(
-            next_page_token='next_page_token_value',
-        )
-        response = client.list_services(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = service.ListServicesRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListServicesPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_services_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = service.ListServicesRequest(
-        parent='parent_value',
-        page_token='page_token_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.list_services(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == service.ListServicesRequest(
-            parent='parent_value',
-            page_token='page_token_value',
-        )
-
-def test_list_services_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_services in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_services] = mock_rpc
-        request = {}
-        client.list_services(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_services(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_services_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ServicesAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.list_services in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.list_services] = mock_rpc
-
-        request = {}
-        await client.list_services(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.list_services(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_services_async(transport: str = 'grpc_asyncio', request_type=service.ListServicesRequest):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(service.ListServicesResponse(
-            next_page_token='next_page_token_value',
-        ))
-        response = await client.list_services(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = service.ListServicesRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListServicesAsyncPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.asyncio
-async def test_list_services_async_from_dict():
-    await test_list_services_async(request_type=dict)
-
-
-def test_list_services_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = service.ListServicesResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.list_services(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-
-def test_list_services_flattened_error():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_services(
-            service.ListServicesRequest(),
-            parent='parent_value',
-        )
-
-@pytest.mark.asyncio
-async def test_list_services_flattened_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = service.ListServicesResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.ListServicesResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.list_services(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_list_services_flattened_error_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.list_services(
-            service.ListServicesRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_services_pager(transport_name: str = "grpc"):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                    service.Service(),
-                ],
-                next_page_token='abc',
-            ),
-            service.ListServicesResponse(
-                services=[],
-                next_page_token='def',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                ],
-                next_page_token='ghi',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                ],
-            ),
-            RuntimeError,
-        )
-
-        expected_metadata = ()
-        retry = retries.Retry()
-        timeout = 5
-        pager = client.list_services(request={}, retry=retry, timeout=timeout)
-
-        assert pager._metadata == expected_metadata
-        assert pager._retry == retry
-        assert pager._timeout == timeout
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, service.Service)
-                   for i in results)
-def test_list_services_pages(transport_name: str = "grpc"):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                    service.Service(),
-                ],
-                next_page_token='abc',
-            ),
-            service.ListServicesResponse(
-                services=[],
-                next_page_token='def',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                ],
-                next_page_token='ghi',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = list(client.list_services(request={}).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.asyncio
-async def test_list_services_async_pager():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                    service.Service(),
-                ],
-                next_page_token='abc',
-            ),
-            service.ListServicesResponse(
-                services=[],
-                next_page_token='def',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                ],
-                next_page_token='ghi',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                ],
-            ),
-            RuntimeError,
-        )
-        async_pager = await client.list_services(request={},)
-        assert async_pager.next_page_token == 'abc'
-        responses = []
-        async for response in async_pager: # pragma: no branch
-            responses.append(response)
-
-        assert len(responses) == 6
-        assert all(isinstance(i, service.Service)
-                for i in responses)
-
-
-@pytest.mark.asyncio
-async def test_list_services_async_pages():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                    service.Service(),
-                ],
-                next_page_token='abc',
-            ),
-            service.ListServicesResponse(
-                services=[],
-                next_page_token='def',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                ],
-                next_page_token='ghi',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = []
-        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
-        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
-        async for page_ in ( # pragma: no branch
-            await client.list_services(request={})
-        ).pages:
-            pages.append(page_)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.parametrize("request_type", [
-  gcr_service.UpdateServiceRequest,
-  dict,
-])
-def test_update_service(request_type, transport: str = 'grpc'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.update_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = gcr_service.UpdateServiceRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_update_service_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = gcr_service.UpdateServiceRequest(
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.update_service(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == gcr_service.UpdateServiceRequest(
-        )
-
-def test_update_service_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.update_service in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.update_service] = mock_rpc
-        request = {}
-        client.update_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.update_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_update_service_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ServicesAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.update_service in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.update_service] = mock_rpc
-
-        request = {}
-        await client.update_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.update_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_update_service_async(transport: str = 'grpc_asyncio', request_type=gcr_service.UpdateServiceRequest):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.update_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = gcr_service.UpdateServiceRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_update_service_async_from_dict():
-    await test_update_service_async(request_type=dict)
-
-
-def test_update_service_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.update_service(
-            service=gcr_service.Service(name='name_value'),
-            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].service
-        mock_val = gcr_service.Service(name='name_value')
-        assert arg == mock_val
-        arg = args[0].update_mask
-        mock_val = field_mask_pb2.FieldMask(paths=['paths_value'])
-        assert arg == mock_val
-
-
-def test_update_service_flattened_error():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.update_service(
-            gcr_service.UpdateServiceRequest(),
-            service=gcr_service.Service(name='name_value'),
-            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
-        )
-
-@pytest.mark.asyncio
-async def test_update_service_flattened_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.update_service(
-            service=gcr_service.Service(name='name_value'),
-            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].service
-        mock_val = gcr_service.Service(name='name_value')
-        assert arg == mock_val
-        arg = args[0].update_mask
-        mock_val = field_mask_pb2.FieldMask(paths=['paths_value'])
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_update_service_flattened_error_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.update_service(
-            gcr_service.UpdateServiceRequest(),
-            service=gcr_service.Service(name='name_value'),
-            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  service.DeleteServiceRequest,
-  dict,
-])
-def test_delete_service(request_type, transport: str = 'grpc'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/spam')
-        response = client.delete_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = service.DeleteServiceRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-def test_delete_service_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = service.DeleteServiceRequest(
-        name='name_value',
-        etag='etag_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.delete_service(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == service.DeleteServiceRequest(
-            name='name_value',
-            etag='etag_value',
-        )
-
-def test_delete_service_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.delete_service in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.delete_service] = mock_rpc
-        request = {}
-        client.delete_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.delete_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_delete_service_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ServicesAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.delete_service in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.delete_service] = mock_rpc
-
-        request = {}
-        await client.delete_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods call wrapper_fn to build a cached
-        # client._transport.operations_client instance on first rpc call.
-        # Subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        await client.delete_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_delete_service_async(transport: str = 'grpc_asyncio', request_type=service.DeleteServiceRequest):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        response = await client.delete_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = service.DeleteServiceRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, future.Future)
-
-
-@pytest.mark.asyncio
-async def test_delete_service_async_from_dict():
-    await test_delete_service_async(request_type=dict)
-
-
-def test_delete_service_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.delete_service(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_delete_service_flattened_error():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.delete_service(
-            service.DeleteServiceRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_delete_service_flattened_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation(name='operations/op')
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.delete_service(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_delete_service_flattened_error_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.delete_service(
-            service.DeleteServiceRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.GetIamPolicyRequest,
-  dict,
-])
-def test_get_iam_policy(request_type, transport: str = 'grpc'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        )
-        response = client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.GetIamPolicyRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-def test_get_iam_policy_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = iam_policy_pb2.GetIamPolicyRequest(
-        resource='resource_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.get_iam_policy(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == iam_policy_pb2.GetIamPolicyRequest(
-            resource='resource_value',
-        )
-
-def test_get_iam_policy_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_iam_policy in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc
-        request = {}
-        client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_iam_policy_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ServicesAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.get_iam_policy in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.get_iam_policy] = mock_rpc
-
-        request = {}
-        await client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.get_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_iam_policy_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.GetIamPolicyRequest):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        ))
-        response = await client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.GetIamPolicyRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-@pytest.mark.asyncio
-async def test_get_iam_policy_async_from_dict():
-    await test_get_iam_policy_async(request_type=dict)
-
-def test_get_iam_policy_field_headers():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.GetIamPolicyRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        call.return_value = policy_pb2.Policy()
-        client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_get_iam_policy_field_headers_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.GetIamPolicyRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy())
-        await client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-def test_get_iam_policy_from_dict_foreign():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = policy_pb2.Policy()
-        response = client.get_iam_policy(request={
-            'resource': 'resource_value',
-            'options': options_pb2.GetPolicyOptions(requested_policy_version=2598),
-            }
-        )
-        call.assert_called()
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.SetIamPolicyRequest,
-  dict,
-])
-def test_set_iam_policy(request_type, transport: str = 'grpc'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        )
-        response = client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.SetIamPolicyRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-def test_set_iam_policy_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = iam_policy_pb2.SetIamPolicyRequest(
-        resource='resource_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.set_iam_policy(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == iam_policy_pb2.SetIamPolicyRequest(
-            resource='resource_value',
-        )
-
-def test_set_iam_policy_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.set_iam_policy in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc
-        request = {}
-        client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.set_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_set_iam_policy_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ServicesAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.set_iam_policy in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.set_iam_policy] = mock_rpc
-
-        request = {}
-        await client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.set_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_set_iam_policy_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.SetIamPolicyRequest):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        ))
-        response = await client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.SetIamPolicyRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-@pytest.mark.asyncio
-async def test_set_iam_policy_async_from_dict():
-    await test_set_iam_policy_async(request_type=dict)
-
-def test_set_iam_policy_field_headers():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.SetIamPolicyRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        call.return_value = policy_pb2.Policy()
-        client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_set_iam_policy_field_headers_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.SetIamPolicyRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy())
-        await client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-def test_set_iam_policy_from_dict_foreign():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = policy_pb2.Policy()
-        response = client.set_iam_policy(request={
-            'resource': 'resource_value',
-            'policy': policy_pb2.Policy(version=774),
-            'update_mask': field_mask_pb2.FieldMask(paths=['paths_value']),
-            }
-        )
-        call.assert_called()
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.TestIamPermissionsRequest,
-  dict,
-])
-def test_test_iam_permissions(request_type, transport: str = 'grpc'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = iam_policy_pb2.TestIamPermissionsResponse(
-            permissions=['permissions_value'],
-        )
-        response = client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.TestIamPermissionsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
-    assert response.permissions == ['permissions_value']
-
-
-def test_test_iam_permissions_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = iam_policy_pb2.TestIamPermissionsRequest(
-        resource='resource_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.test_iam_permissions(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == iam_policy_pb2.TestIamPermissionsRequest(
-            resource='resource_value',
-        )
-
-def test_test_iam_permissions_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.test_iam_permissions in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.test_iam_permissions] = mock_rpc
-        request = {}
-        client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.test_iam_permissions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_test_iam_permissions_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = ServicesAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.test_iam_permissions in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.test_iam_permissions] = mock_rpc
-
-        request = {}
-        await client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.test_iam_permissions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_test_iam_permissions_async(transport: str = 'grpc_asyncio', request_type=iam_policy_pb2.TestIamPermissionsRequest):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse(
-            permissions=['permissions_value'],
-        ))
-        response = await client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = iam_policy_pb2.TestIamPermissionsRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
-    assert response.permissions == ['permissions_value']
-
-
-@pytest.mark.asyncio
-async def test_test_iam_permissions_async_from_dict():
-    await test_test_iam_permissions_async(request_type=dict)
-
-def test_test_iam_permissions_field_headers():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.TestIamPermissionsRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
-        client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_test_iam_permissions_field_headers_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = iam_policy_pb2.TestIamPermissionsRequest()
-
-    request.resource = 'resource_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse())
-        await client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'resource=resource_value',
-    ) in kw['metadata']
-
-def test_test_iam_permissions_from_dict_foreign():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
-        response = client.test_iam_permissions(request={
-            'resource': 'resource_value',
-            'permissions': ['permissions_value'],
-            }
-        )
-        call.assert_called()
-
-
-def test_create_service_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.create_service in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.create_service] = mock_rpc
-
-        request = {}
-        client.create_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.create_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_create_service_rest_required_fields(request_type=gcr_service.CreateServiceRequest):
-    transport_class = transports.ServicesRestTransport
-
-    request_init = {}
-    request_init["parent"] = ""
-    request_init["service_id"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-    assert "serviceId" not in jsonified_request
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).create_service._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-    assert "serviceId" in jsonified_request
-    assert jsonified_request["serviceId"] == request_init["service_id"]
-
-    jsonified_request["parent"] = 'parent_value'
-    jsonified_request["serviceId"] = 'service_id_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).create_service._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("service_id", "validate_only", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "parent" in jsonified_request
-    assert jsonified_request["parent"] == 'parent_value'
-    assert "serviceId" in jsonified_request
-    assert jsonified_request["serviceId"] == 'service_id_value'
-
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.create_service(request)
-
-            expected_params = [
-                (
-                    "serviceId",
-                    "",
-                ),
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_create_service_rest_unset_required_fields():
-    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.create_service._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("serviceId", "validateOnly", )) & set(("parent", "service", "serviceId", )))
-
-
-def test_create_service_rest_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'parent': 'projects/sample1/locations/sample2'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            parent='parent_value',
-            service=gcr_service.Service(name='name_value'),
-            service_id='service_id_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.create_service(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{parent=projects/*/locations/*}/services" % client.transport._host, args[1])
-
-
-def test_create_service_rest_flattened_error(transport: str = 'rest'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.create_service(
-            gcr_service.CreateServiceRequest(),
-            parent='parent_value',
-            service=gcr_service.Service(name='name_value'),
-            service_id='service_id_value',
-        )
-
-
-def test_get_service_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_service in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_service] = mock_rpc
-
-        request = {}
-        client.get_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_get_service_rest_required_fields(request_type=service.GetServiceRequest):
-    transport_class = transports.ServicesRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_service._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_service._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = service.Service()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = service.Service.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.get_service(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_get_service_rest_unset_required_fields():
-    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.get_service._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("name", )))
-
-
-def test_get_service_rest_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = service.Service()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/services/sample3'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = service.Service.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.get_service(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/services/*}" % client.transport._host, args[1])
-
-
-def test_get_service_rest_flattened_error(transport: str = 'rest'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_service(
-            service.GetServiceRequest(),
-            name='name_value',
-        )
-
-
-def test_list_services_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_services in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_services] = mock_rpc
-
-        request = {}
-        client.list_services(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_services(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_list_services_rest_required_fields(request_type=service.ListServicesRequest):
-    transport_class = transports.ServicesRestTransport
-
-    request_init = {}
-    request_init["parent"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_services._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["parent"] = 'parent_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_services._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "parent" in jsonified_request
-    assert jsonified_request["parent"] == 'parent_value'
-
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = service.ListServicesResponse()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = service.ListServicesResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.list_services(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_list_services_rest_unset_required_fields():
-    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.list_services._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
-
-
-def test_list_services_rest_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = service.ListServicesResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'parent': 'projects/sample1/locations/sample2'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            parent='parent_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = service.ListServicesResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.list_services(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{parent=projects/*/locations/*}/services" % client.transport._host, args[1])
-
-
-def test_list_services_rest_flattened_error(transport: str = 'rest'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_services(
-            service.ListServicesRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_services_rest_pager(transport: str = 'rest'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # TODO(kbandes): remove this mock unless there's a good reason for it.
-        #with mock.patch.object(path_template, 'transcode') as transcode:
-        # Set the response as a series of pages
-        response = (
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                    service.Service(),
-                ],
-                next_page_token='abc',
-            ),
-            service.ListServicesResponse(
-                services=[],
-                next_page_token='def',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                ],
-                next_page_token='ghi',
-            ),
-            service.ListServicesResponse(
-                services=[
-                    service.Service(),
-                    service.Service(),
-                ],
-            ),
-        )
-        # Two responses for two calls
-        response = response + response
-
-        # Wrap the values into proper Response objs
-        response = tuple(service.ListServicesResponse.to_json(x) for x in response)
-        return_values = tuple(Response() for i in response)
-        for return_val, response_val in zip(return_values, response):
-            return_val._content = response_val.encode('UTF-8')
-            return_val.status_code = 200
-        req.side_effect = return_values
-
-        sample_request = {'parent': 'projects/sample1/locations/sample2'}
-
-        pager = client.list_services(request=sample_request)
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, service.Service)
-                for i in results)
-
-        pages = list(client.list_services(request=sample_request).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-
-def test_update_service_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.update_service in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.update_service] = mock_rpc
-
-        request = {}
-        client.update_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.update_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_update_service_rest_required_fields(request_type=gcr_service.UpdateServiceRequest):
-    transport_class = transports.ServicesRestTransport
-
-    request_init = {}
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_service._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_service._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("allow_missing", "update_mask", "validate_only", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "patch",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.update_service(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_update_service_rest_unset_required_fields():
-    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.update_service._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("allowMissing", "updateMask", "validateOnly", )) & set(("service", )))
-
-
-def test_update_service_rest_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'service': {'name': 'projects/sample1/locations/sample2/services/sample3'}}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            service=gcr_service.Service(name='name_value'),
-            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.update_service(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{service.name=projects/*/locations/*/services/*}" % client.transport._host, args[1])
-
-
-def test_update_service_rest_flattened_error(transport: str = 'rest'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.update_service(
-            gcr_service.UpdateServiceRequest(),
-            service=gcr_service.Service(name='name_value'),
-            update_mask=field_mask_pb2.FieldMask(paths=['paths_value']),
-        )
-
-
-def test_delete_service_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.delete_service in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.delete_service] = mock_rpc
-
-        request = {}
-        client.delete_service(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        # Operation methods build a cached wrapper on first rpc call
-        # subsequent calls should use the cached wrapper
-        wrapper_fn.reset_mock()
-
-        client.delete_service(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_delete_service_rest_required_fields(request_type=service.DeleteServiceRequest):
-    transport_class = transports.ServicesRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_service._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_service._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("etag", "validate_only", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = operations_pb2.Operation(name='operations/spam')
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "delete",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.delete_service(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_delete_service_rest_unset_required_fields():
-    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.delete_service._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("etag", "validateOnly", )) & set(("name", )))
-
-
-def test_delete_service_rest_flattened():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/services/sample3'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.delete_service(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/services/*}" % client.transport._host, args[1])
-
-
-def test_delete_service_rest_flattened_error(transport: str = 'rest'):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.delete_service(
-            service.DeleteServiceRequest(),
-            name='name_value',
-        )
-
-
-def test_get_iam_policy_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_iam_policy in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc
-
-        request = {}
-        client.get_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_get_iam_policy_rest_required_fields(request_type=iam_policy_pb2.GetIamPolicyRequest):
-    transport_class = transports.ServicesRestTransport
-
-    request_init = {}
-    request_init["resource"] = ""
-    request = request_type(**request_init)
-    pb_request = request
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_iam_policy._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["resource"] = 'resource_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_iam_policy._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("options", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "resource" in jsonified_request
-    assert jsonified_request["resource"] == 'resource_value'
-
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = policy_pb2.Policy()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.get_iam_policy(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_get_iam_policy_rest_unset_required_fields():
-    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.get_iam_policy._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("options", )) & set(("resource", )))
-
-
-def test_set_iam_policy_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.set_iam_policy in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc
-
-        request = {}
-        client.set_iam_policy(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.set_iam_policy(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_set_iam_policy_rest_required_fields(request_type=iam_policy_pb2.SetIamPolicyRequest):
-    transport_class = transports.ServicesRestTransport
-
-    request_init = {}
-    request_init["resource"] = ""
-    request = request_type(**request_init)
-    pb_request = request
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).set_iam_policy._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["resource"] = 'resource_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).set_iam_policy._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "resource" in jsonified_request
-    assert jsonified_request["resource"] == 'resource_value'
-
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = policy_pb2.Policy()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.set_iam_policy(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_set_iam_policy_rest_unset_required_fields():
-    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.set_iam_policy._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("resource", "policy", )))
-
-
-def test_test_iam_permissions_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.test_iam_permissions in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.test_iam_permissions] = mock_rpc
-
-        request = {}
-        client.test_iam_permissions(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.test_iam_permissions(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_test_iam_permissions_rest_required_fields(request_type=iam_policy_pb2.TestIamPermissionsRequest):
-    transport_class = transports.ServicesRestTransport
-
-    request_init = {}
-    request_init["resource"] = ""
-    request_init["permissions"] = ""
-    request = request_type(**request_init)
-    pb_request = request
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).test_iam_permissions._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["resource"] = 'resource_value'
-    jsonified_request["permissions"] = 'permissions_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).test_iam_permissions._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "resource" in jsonified_request
-    assert jsonified_request["resource"] == 'resource_value'
-    assert "permissions" in jsonified_request
-    assert jsonified_request["permissions"] == 'permissions_value'
-
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = iam_policy_pb2.TestIamPermissionsResponse()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "post",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.test_iam_permissions(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_test_iam_permissions_rest_unset_required_fields():
-    transport = transports.ServicesRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.test_iam_permissions._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("resource", "permissions", )))
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.ServicesGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.ServicesGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ServicesClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.ServicesGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ServicesClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ServicesClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.ServicesGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ServicesClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ServicesGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = ServicesClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ServicesGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.ServicesGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.ServicesGrpcTransport,
-    transports.ServicesGrpcAsyncIOTransport,
-    transports.ServicesRestTransport,
-])
-def test_transport_adc(transport_class):
-    # Test default credentials are used if not provided.
-    with mock.patch.object(google.auth, 'default') as adc:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport_class()
-        adc.assert_called_once()
-
-def test_transport_kind_grpc():
-    transport = ServicesClient.get_transport_class("grpc")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "grpc"
-
-
-def test_initialize_client_w_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_create_service_empty_call_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.create_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_service.CreateServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_service_empty_call_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        call.return_value = service.Service()
-        client.get_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.GetServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_services_empty_call_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        call.return_value = service.ListServicesResponse()
-        client.list_services(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.ListServicesRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_update_service_empty_call_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.update_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_service.UpdateServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_delete_service_empty_call_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.delete_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.DeleteServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_iam_policy_empty_call_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        call.return_value = policy_pb2.Policy()
-        client.get_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.GetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_set_iam_policy_empty_call_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        call.return_value = policy_pb2.Policy()
-        client.set_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.SetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_test_iam_permissions_empty_call_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        call.return_value = iam_policy_pb2.TestIamPermissionsResponse()
-        client.test_iam_permissions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
-
-        assert args[0] == request_msg
-
-
-def test_create_service_routing_parameters_request_1_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.create_service(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_service.CreateServiceRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_get_service_routing_parameters_request_1_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        call.return_value = service.Service()
-        client.get_service(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.GetServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_list_services_routing_parameters_request_1_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        call.return_value = service.ListServicesResponse()
-        client.list_services(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.ListServicesRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_update_service_routing_parameters_request_1_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.update_service(request={"service": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_service.UpdateServiceRequest(**{"service": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_delete_service_routing_parameters_request_1_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        call.return_value = operations_pb2.Operation(name='operations/op')
-        client.delete_service(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.DeleteServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_transport_kind_grpc_asyncio():
-    transport = ServicesAsyncClient.get_transport_class("grpc_asyncio")(
-        credentials=async_anonymous_credentials()
-    )
-    assert transport.kind == "grpc_asyncio"
-
-
-def test_initialize_client_w_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_create_service_empty_call_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.create_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_service.CreateServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_get_service_empty_call_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.Service(
-            name='name_value',
-            description='description_value',
-            uid='uid_value',
-            generation=1068,
-            creator='creator_value',
-            last_modifier='last_modifier_value',
-            client='client_value',
-            client_version='client_version_value',
-            ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            invoker_iam_disabled=True,
-            default_uri_disabled=True,
-            urls=['urls_value'],
-            custom_audiences=['custom_audiences_value'],
-            observed_generation=2021,
-            latest_ready_revision='latest_ready_revision_value',
-            latest_created_revision='latest_created_revision_value',
-            uri='uri_value',
-            satisfies_pzs=True,
-            reconciling=True,
-            etag='etag_value',
-        ))
-        await client.get_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.GetServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_list_services_empty_call_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.ListServicesResponse(
-            next_page_token='next_page_token_value',
-        ))
-        await client.list_services(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.ListServicesRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_update_service_empty_call_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.update_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_service.UpdateServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_delete_service_empty_call_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.delete_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.DeleteServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_get_iam_policy_empty_call_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        ))
-        await client.get_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.GetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_set_iam_policy_empty_call_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy(
-            version=774,
-            etag=b'etag_blob',
-        ))
-        await client.set_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.SetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_test_iam_permissions_empty_call_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(iam_policy_pb2.TestIamPermissionsResponse(
-            permissions=['permissions_value'],
-        ))
-        await client.test_iam_permissions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
-
-        assert args[0] == request_msg
-
-
-@pytest.mark.asyncio
-async def test_create_service_routing_parameters_request_1_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.create_service(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_service.CreateServiceRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_get_service_routing_parameters_request_1_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.Service(
-            name='name_value',
-            description='description_value',
-            uid='uid_value',
-            generation=1068,
-            creator='creator_value',
-            last_modifier='last_modifier_value',
-            client='client_value',
-            client_version='client_version_value',
-            ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
-            launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-            invoker_iam_disabled=True,
-            default_uri_disabled=True,
-            urls=['urls_value'],
-            custom_audiences=['custom_audiences_value'],
-            observed_generation=2021,
-            latest_ready_revision='latest_ready_revision_value',
-            latest_created_revision='latest_created_revision_value',
-            uri='uri_value',
-            satisfies_pzs=True,
-            reconciling=True,
-            etag='etag_value',
-        ))
-        await client.get_service(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.GetServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_list_services_routing_parameters_request_1_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(service.ListServicesResponse(
-            next_page_token='next_page_token_value',
-        ))
-        await client.list_services(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.ListServicesRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_update_service_routing_parameters_request_1_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.update_service(request={"service": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_service.UpdateServiceRequest(**{"service": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-@pytest.mark.asyncio
-async def test_delete_service_routing_parameters_request_1_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation(name='operations/spam')
-        )
-        await client.delete_service(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.DeleteServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_transport_kind_rest():
-    transport = ServicesClient.get_transport_class("rest")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "rest"
-
-
-def test_create_service_rest_bad_request(request_type=gcr_service.CreateServiceRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.create_service(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  gcr_service.CreateServiceRequest,
-  dict,
-])
-def test_create_service_rest_call_success(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request_init["service"] = {'name': 'name_value', 'description': 'description_value', 'uid': 'uid_value', 'generation': 1068, 'labels': {}, 'annotations': {}, 'create_time': {'seconds': 751, 'nanos': 543}, 'update_time': {}, 'delete_time': {}, 'expire_time': {}, 'creator': 'creator_value', 'last_modifier': 'last_modifier_value', 'client': 'client_value', 'client_version': 'client_version_value', 'ingress': 1, 'launch_stage': 6, 'binary_authorization': {'use_default': True, 'policy': 'policy_value', 'breakglass_justification': 'breakglass_justification_value'}, 'template': {'revision': 'revision_value', 'labels': {}, 'annotations': {}, 'scaling': {'min_instance_count': 1920, 'max_instance_count': 1922}, 'vpc_access': {'connector': 'connector_value', 'egress': 1, 'network_interfaces': [{'network': 'network_value', 'subnetwork': 'subnetwork_value', 'tags': ['tags_value1', 'tags_value2']}]}, 'timeout': {'seconds': 751, 'nanos': 543}, 'service_account': 'service_account_value', 'containers': [{'name': 'name_value', 'image': 'image_value', 'command': ['command_value1', 'command_value2'], 'args': ['args_value1', 'args_value2'], 'env': [{'name': 'name_value', 'value': 'value_value', 'value_source': {'secret_key_ref': {'secret': 'secret_value', 'version': 'version_value'}}}], 'resources': {'limits': {}, 'cpu_idle': True, 'startup_cpu_boost': True}, 'ports': [{'name': 'name_value', 'container_port': 1511}], 'volume_mounts': [{'name': 'name_value', 'mount_path': 'mount_path_value'}], 'working_dir': 'working_dir_value', 'liveness_probe': {'initial_delay_seconds': 2214, 'timeout_seconds': 1621, 'period_seconds': 1489, 'failure_threshold': 1812, 'http_get': {'path': 'path_value', 'http_headers': [{'name': 'name_value', 'value': 'value_value'}], 'port': 453}, 'tcp_socket': {'port': 453}, 'grpc': {'port': 453, 'service': 'service_value'}}, 'startup_probe': {}, 'depends_on': ['depends_on_value1', 'depends_on_value2']}], 'volumes': [{'name': 'name_value', 'secret': {'secret': 'secret_value', 'items': [{'path': 'path_value', 'version': 'version_value', 'mode': 421}], 'default_mode': 1257}, 'cloud_sql_instance': {'instances': ['instances_value1', 'instances_value2']}, 'empty_dir': {'medium': 1, 'size_limit': 'size_limit_value'}, 'nfs': {'server': 'server_value', 'path': 'path_value', 'read_only': True}, 'gcs': {'bucket': 'bucket_value', 'read_only': True, 'mount_options': ['mount_options_value1', 'mount_options_value2']}}], 'execution_environment': 1, 'encryption_key': 'encryption_key_value', 'max_instance_request_concurrency': 3436, 'service_mesh': {'mesh': 'mesh_value'}, 'encryption_key_revocation_action': 1, 'encryption_key_shutdown_duration': {}, 'session_affinity': True, 'health_check_disabled': True, 'node_selector': {'accelerator': 'accelerator_value'}}, 'traffic': [{'type_': 1, 'revision': 'revision_value', 'percent': 753, 'tag': 'tag_value'}], 'scaling': {'min_instance_count': 1920, 'scaling_mode': 1, 'manual_instance_count': 2234}, 'invoker_iam_disabled': True, 'default_uri_disabled': True, 'urls': ['urls_value1', 'urls_value2'], 'custom_audiences': ['custom_audiences_value1', 'custom_audiences_value2'], 'observed_generation': 2021, 'terminal_condition': {'type_': 'type__value', 'state': 1, 'message': 'message_value', 'last_transition_time': {}, 'severity': 1, 'reason': 1, 'revision_reason': 1, 'execution_reason': 1}, 'conditions': {}, 'latest_ready_revision': 'latest_ready_revision_value', 'latest_created_revision': 'latest_created_revision_value', 'traffic_statuses': [{'type_': 1, 'revision': 'revision_value', 'percent': 753, 'tag': 'tag_value', 'uri': 'uri_value'}], 'uri': 'uri_value', 'satisfies_pzs': True, 'reconciling': True, 'etag': 'etag_value'}
-    # The version of a generated dependency at test runtime may differ from the version used during generation.
-    # Delete any fields which are not present in the current runtime dependency
-    # See https://github.com/googleapis/gapic-generator-python/issues/1748
-
-    # Determine if the message type is proto-plus or protobuf
-    test_field = gcr_service.CreateServiceRequest.meta.fields["service"]
-
-    def get_message_fields(field):
-        # Given a field which is a message (composite type), return a list with
-        # all the fields of the message.
-        # If the field is not a composite type, return an empty list.
-        message_fields = []
-
-        if hasattr(field, "message") and field.message:
-            is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR")
-
-            if is_field_type_proto_plus_type:
-                message_fields = field.message.meta.fields.values()
-            # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types
-            else: # pragma: NO COVER
-                message_fields = field.message.DESCRIPTOR.fields
-        return message_fields
-
-    runtime_nested_fields = [
-        (field.name, nested_field.name)
-        for field in get_message_fields(test_field)
-        for nested_field in get_message_fields(field)
-    ]
-
-    subfields_not_in_runtime = []
-
-    # For each item in the sample request, create a list of sub fields which are not present at runtime
-    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
-    for field, value in request_init["service"].items(): # pragma: NO COVER
-        result = None
-        is_repeated = False
-        # For repeated fields
-        if isinstance(value, list) and len(value):
-            is_repeated = True
-            result = value[0]
-        # For fields where the type is another message
-        if isinstance(value, dict):
-            result = value
-
-        if result and hasattr(result, "keys"):
-            for subfield in result.keys():
-                if (field, subfield) not in runtime_nested_fields:
-                    subfields_not_in_runtime.append(
-                        {"field": field, "subfield": subfield, "is_repeated": is_repeated}
-                    )
-
-    # Remove fields from the sample request which are not present in the runtime version of the dependency
-    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
-    for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER
-        field = subfield_to_delete.get("field")
-        field_repeated = subfield_to_delete.get("is_repeated")
-        subfield = subfield_to_delete.get("subfield")
-        if subfield:
-            if field_repeated:
-                for i in range(0, len(request_init["service"][field])):
-                    del request_init["service"][field][i][subfield]
-            else:
-                del request_init["service"][field][subfield]
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.create_service(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_create_service_rest_interceptors(null_interceptor):
-    transport = transports.ServicesRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
-        )
-    client = ServicesClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.ServicesRestInterceptor, "post_create_service") as post, \
-        mock.patch.object(transports.ServicesRestInterceptor, "pre_create_service") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = gcr_service.CreateServiceRequest.pb(gcr_service.CreateServiceRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = gcr_service.CreateServiceRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.create_service(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_get_service_rest_bad_request(request_type=service.GetServiceRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.get_service(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  service.GetServiceRequest,
-  dict,
-])
-def test_get_service_rest_call_success(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = service.Service(
-              name='name_value',
-              description='description_value',
-              uid='uid_value',
-              generation=1068,
-              creator='creator_value',
-              last_modifier='last_modifier_value',
-              client='client_value',
-              client_version='client_version_value',
-              ingress=vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL,
-              launch_stage=launch_stage_pb2.LaunchStage.UNIMPLEMENTED,
-              invoker_iam_disabled=True,
-              default_uri_disabled=True,
-              urls=['urls_value'],
-              custom_audiences=['custom_audiences_value'],
-              observed_generation=2021,
-              latest_ready_revision='latest_ready_revision_value',
-              latest_created_revision='latest_created_revision_value',
-              uri='uri_value',
-              satisfies_pzs=True,
-              reconciling=True,
-              etag='etag_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = service.Service.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.get_service(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, service.Service)
-    assert response.name == 'name_value'
-    assert response.description == 'description_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.creator == 'creator_value'
-    assert response.last_modifier == 'last_modifier_value'
-    assert response.client == 'client_value'
-    assert response.client_version == 'client_version_value'
-    assert response.ingress == vendor_settings.IngressTraffic.INGRESS_TRAFFIC_ALL
-    assert response.launch_stage == launch_stage_pb2.LaunchStage.UNIMPLEMENTED
-    assert response.invoker_iam_disabled is True
-    assert response.default_uri_disabled is True
-    assert response.urls == ['urls_value']
-    assert response.custom_audiences == ['custom_audiences_value']
-    assert response.observed_generation == 2021
-    assert response.latest_ready_revision == 'latest_ready_revision_value'
-    assert response.latest_created_revision == 'latest_created_revision_value'
-    assert response.uri == 'uri_value'
-    assert response.satisfies_pzs is True
-    assert response.reconciling is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_get_service_rest_interceptors(null_interceptor):
-    transport = transports.ServicesRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
-        )
-    client = ServicesClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.ServicesRestInterceptor, "post_get_service") as post, \
-        mock.patch.object(transports.ServicesRestInterceptor, "pre_get_service") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = service.GetServiceRequest.pb(service.GetServiceRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = service.Service.to_json(service.Service())
-        req.return_value.content = return_value
-
-        request = service.GetServiceRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = service.Service()
-
-        client.get_service(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_list_services_rest_bad_request(request_type=service.ListServicesRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.list_services(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  service.ListServicesRequest,
-  dict,
-])
-def test_list_services_rest_call_success(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = service.ListServicesResponse(
-              next_page_token='next_page_token_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = service.ListServicesResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.list_services(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListServicesPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_list_services_rest_interceptors(null_interceptor):
-    transport = transports.ServicesRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
-        )
-    client = ServicesClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.ServicesRestInterceptor, "post_list_services") as post, \
-        mock.patch.object(transports.ServicesRestInterceptor, "pre_list_services") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = service.ListServicesRequest.pb(service.ListServicesRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = service.ListServicesResponse.to_json(service.ListServicesResponse())
-        req.return_value.content = return_value
-
-        request = service.ListServicesRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = service.ListServicesResponse()
-
-        client.list_services(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_update_service_rest_bad_request(request_type=gcr_service.UpdateServiceRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'service': {'name': 'projects/sample1/locations/sample2/services/sample3'}}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.update_service(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  gcr_service.UpdateServiceRequest,
-  dict,
-])
-def test_update_service_rest_call_success(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'service': {'name': 'projects/sample1/locations/sample2/services/sample3'}}
-    request_init["service"] = {'name': 'projects/sample1/locations/sample2/services/sample3', 'description': 'description_value', 'uid': 'uid_value', 'generation': 1068, 'labels': {}, 'annotations': {}, 'create_time': {'seconds': 751, 'nanos': 543}, 'update_time': {}, 'delete_time': {}, 'expire_time': {}, 'creator': 'creator_value', 'last_modifier': 'last_modifier_value', 'client': 'client_value', 'client_version': 'client_version_value', 'ingress': 1, 'launch_stage': 6, 'binary_authorization': {'use_default': True, 'policy': 'policy_value', 'breakglass_justification': 'breakglass_justification_value'}, 'template': {'revision': 'revision_value', 'labels': {}, 'annotations': {}, 'scaling': {'min_instance_count': 1920, 'max_instance_count': 1922}, 'vpc_access': {'connector': 'connector_value', 'egress': 1, 'network_interfaces': [{'network': 'network_value', 'subnetwork': 'subnetwork_value', 'tags': ['tags_value1', 'tags_value2']}]}, 'timeout': {'seconds': 751, 'nanos': 543}, 'service_account': 'service_account_value', 'containers': [{'name': 'name_value', 'image': 'image_value', 'command': ['command_value1', 'command_value2'], 'args': ['args_value1', 'args_value2'], 'env': [{'name': 'name_value', 'value': 'value_value', 'value_source': {'secret_key_ref': {'secret': 'secret_value', 'version': 'version_value'}}}], 'resources': {'limits': {}, 'cpu_idle': True, 'startup_cpu_boost': True}, 'ports': [{'name': 'name_value', 'container_port': 1511}], 'volume_mounts': [{'name': 'name_value', 'mount_path': 'mount_path_value'}], 'working_dir': 'working_dir_value', 'liveness_probe': {'initial_delay_seconds': 2214, 'timeout_seconds': 1621, 'period_seconds': 1489, 'failure_threshold': 1812, 'http_get': {'path': 'path_value', 'http_headers': [{'name': 'name_value', 'value': 'value_value'}], 'port': 453}, 'tcp_socket': {'port': 453}, 'grpc': {'port': 453, 'service': 'service_value'}}, 'startup_probe': {}, 'depends_on': ['depends_on_value1', 'depends_on_value2']}], 'volumes': [{'name': 'name_value', 'secret': {'secret': 'secret_value', 'items': [{'path': 'path_value', 'version': 'version_value', 'mode': 421}], 'default_mode': 1257}, 'cloud_sql_instance': {'instances': ['instances_value1', 'instances_value2']}, 'empty_dir': {'medium': 1, 'size_limit': 'size_limit_value'}, 'nfs': {'server': 'server_value', 'path': 'path_value', 'read_only': True}, 'gcs': {'bucket': 'bucket_value', 'read_only': True, 'mount_options': ['mount_options_value1', 'mount_options_value2']}}], 'execution_environment': 1, 'encryption_key': 'encryption_key_value', 'max_instance_request_concurrency': 3436, 'service_mesh': {'mesh': 'mesh_value'}, 'encryption_key_revocation_action': 1, 'encryption_key_shutdown_duration': {}, 'session_affinity': True, 'health_check_disabled': True, 'node_selector': {'accelerator': 'accelerator_value'}}, 'traffic': [{'type_': 1, 'revision': 'revision_value', 'percent': 753, 'tag': 'tag_value'}], 'scaling': {'min_instance_count': 1920, 'scaling_mode': 1, 'manual_instance_count': 2234}, 'invoker_iam_disabled': True, 'default_uri_disabled': True, 'urls': ['urls_value1', 'urls_value2'], 'custom_audiences': ['custom_audiences_value1', 'custom_audiences_value2'], 'observed_generation': 2021, 'terminal_condition': {'type_': 'type__value', 'state': 1, 'message': 'message_value', 'last_transition_time': {}, 'severity': 1, 'reason': 1, 'revision_reason': 1, 'execution_reason': 1}, 'conditions': {}, 'latest_ready_revision': 'latest_ready_revision_value', 'latest_created_revision': 'latest_created_revision_value', 'traffic_statuses': [{'type_': 1, 'revision': 'revision_value', 'percent': 753, 'tag': 'tag_value', 'uri': 'uri_value'}], 'uri': 'uri_value', 'satisfies_pzs': True, 'reconciling': True, 'etag': 'etag_value'}
-    # The version of a generated dependency at test runtime may differ from the version used during generation.
-    # Delete any fields which are not present in the current runtime dependency
-    # See https://github.com/googleapis/gapic-generator-python/issues/1748
-
-    # Determine if the message type is proto-plus or protobuf
-    test_field = gcr_service.UpdateServiceRequest.meta.fields["service"]
-
-    def get_message_fields(field):
-        # Given a field which is a message (composite type), return a list with
-        # all the fields of the message.
-        # If the field is not a composite type, return an empty list.
-        message_fields = []
-
-        if hasattr(field, "message") and field.message:
-            is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR")
-
-            if is_field_type_proto_plus_type:
-                message_fields = field.message.meta.fields.values()
-            # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types
-            else: # pragma: NO COVER
-                message_fields = field.message.DESCRIPTOR.fields
-        return message_fields
-
-    runtime_nested_fields = [
-        (field.name, nested_field.name)
-        for field in get_message_fields(test_field)
-        for nested_field in get_message_fields(field)
-    ]
-
-    subfields_not_in_runtime = []
-
-    # For each item in the sample request, create a list of sub fields which are not present at runtime
-    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
-    for field, value in request_init["service"].items(): # pragma: NO COVER
-        result = None
-        is_repeated = False
-        # For repeated fields
-        if isinstance(value, list) and len(value):
-            is_repeated = True
-            result = value[0]
-        # For fields where the type is another message
-        if isinstance(value, dict):
-            result = value
-
-        if result and hasattr(result, "keys"):
-            for subfield in result.keys():
-                if (field, subfield) not in runtime_nested_fields:
-                    subfields_not_in_runtime.append(
-                        {"field": field, "subfield": subfield, "is_repeated": is_repeated}
-                    )
-
-    # Remove fields from the sample request which are not present in the runtime version of the dependency
-    # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime
-    for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER
-        field = subfield_to_delete.get("field")
-        field_repeated = subfield_to_delete.get("is_repeated")
-        subfield = subfield_to_delete.get("subfield")
-        if subfield:
-            if field_repeated:
-                for i in range(0, len(request_init["service"][field])):
-                    del request_init["service"][field][i][subfield]
-            else:
-                del request_init["service"][field][subfield]
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.update_service(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_update_service_rest_interceptors(null_interceptor):
-    transport = transports.ServicesRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
-        )
-    client = ServicesClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.ServicesRestInterceptor, "post_update_service") as post, \
-        mock.patch.object(transports.ServicesRestInterceptor, "pre_update_service") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = gcr_service.UpdateServiceRequest.pb(gcr_service.UpdateServiceRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = gcr_service.UpdateServiceRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.update_service(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_service_rest_bad_request(request_type=service.DeleteServiceRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.delete_service(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  service.DeleteServiceRequest,
-  dict,
-])
-def test_delete_service_rest_call_success(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation(name='operations/spam')
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.delete_service(request)
-
-    # Establish that the response is the type that we expect.
-    json_return_value = json_format.MessageToJson(return_value)
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_delete_service_rest_interceptors(null_interceptor):
-    transport = transports.ServicesRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
-        )
-    client = ServicesClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(operation.Operation, "_set_result_from_operation"), \
-        mock.patch.object(transports.ServicesRestInterceptor, "post_delete_service") as post, \
-        mock.patch.object(transports.ServicesRestInterceptor, "pre_delete_service") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = service.DeleteServiceRequest.pb(service.DeleteServiceRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(operations_pb2.Operation())
-        req.return_value.content = return_value
-
-        request = service.DeleteServiceRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = operations_pb2.Operation()
-
-        client.delete_service(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_get_iam_policy_rest_bad_request(request_type=iam_policy_pb2.GetIamPolicyRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.get_iam_policy(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.GetIamPolicyRequest,
-  dict,
-])
-def test_get_iam_policy_rest_call_success(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = policy_pb2.Policy(
-              version=774,
-              etag=b'etag_blob',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.get_iam_policy(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_get_iam_policy_rest_interceptors(null_interceptor):
-    transport = transports.ServicesRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
-        )
-    client = ServicesClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.ServicesRestInterceptor, "post_get_iam_policy") as post, \
-        mock.patch.object(transports.ServicesRestInterceptor, "pre_get_iam_policy") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = iam_policy_pb2.GetIamPolicyRequest()
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(policy_pb2.Policy())
-        req.return_value.content = return_value
-
-        request = iam_policy_pb2.GetIamPolicyRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = policy_pb2.Policy()
-
-        client.get_iam_policy(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_set_iam_policy_rest_bad_request(request_type=iam_policy_pb2.SetIamPolicyRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.set_iam_policy(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.SetIamPolicyRequest,
-  dict,
-])
-def test_set_iam_policy_rest_call_success(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = policy_pb2.Policy(
-              version=774,
-              etag=b'etag_blob',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.set_iam_policy(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, policy_pb2.Policy)
-    assert response.version == 774
-    assert response.etag == b'etag_blob'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_set_iam_policy_rest_interceptors(null_interceptor):
-    transport = transports.ServicesRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
-        )
-    client = ServicesClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.ServicesRestInterceptor, "post_set_iam_policy") as post, \
-        mock.patch.object(transports.ServicesRestInterceptor, "pre_set_iam_policy") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = iam_policy_pb2.SetIamPolicyRequest()
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(policy_pb2.Policy())
-        req.return_value.content = return_value
-
-        request = iam_policy_pb2.SetIamPolicyRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = policy_pb2.Policy()
-
-        client.set_iam_policy(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_test_iam_permissions_rest_bad_request(request_type=iam_policy_pb2.TestIamPermissionsRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.test_iam_permissions(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  iam_policy_pb2.TestIamPermissionsRequest,
-  dict,
-])
-def test_test_iam_permissions_rest_call_success(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'resource': 'projects/sample1/locations/sample2/services/sample3'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = iam_policy_pb2.TestIamPermissionsResponse(
-              permissions=['permissions_value'],
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.test_iam_permissions(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse)
-    assert response.permissions == ['permissions_value']
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_test_iam_permissions_rest_interceptors(null_interceptor):
-    transport = transports.ServicesRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ServicesRestInterceptor(),
-        )
-    client = ServicesClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.ServicesRestInterceptor, "post_test_iam_permissions") as post, \
-        mock.patch.object(transports.ServicesRestInterceptor, "pre_test_iam_permissions") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = iam_policy_pb2.TestIamPermissionsRequest()
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = json_format.MessageToJson(iam_policy_pb2.TestIamPermissionsResponse())
-        req.return_value.content = return_value
-
-        request = iam_policy_pb2.TestIamPermissionsRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = iam_policy_pb2.TestIamPermissionsResponse()
-
-        client.test_iam_permissions(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.delete_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.DeleteOperationRequest,
-    dict,
-])
-def test_delete_operation_rest(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = None
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = '{}'
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.delete_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-
-def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.get_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.GetOperationRequest,
-    dict,
-])
-def test_get_operation_rest(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.get_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-
-def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.list_operations(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.ListOperationsRequest,
-    dict,
-])
-def test_list_operations_rest(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.ListOperationsResponse()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.list_operations(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-
-def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.wait_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.WaitOperationRequest,
-    dict,
-])
-def test_wait_operation_rest(request_type):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.wait_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_initialize_client_w_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_create_service_empty_call_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        client.create_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_service.CreateServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_service_empty_call_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        client.get_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.GetServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_services_empty_call_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        client.list_services(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.ListServicesRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_update_service_empty_call_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        client.update_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = gcr_service.UpdateServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_delete_service_empty_call_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        client.delete_service(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = service.DeleteServiceRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_iam_policy_empty_call_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_iam_policy),
-            '__call__') as call:
-        client.get_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.GetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_set_iam_policy_empty_call_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.set_iam_policy),
-            '__call__') as call:
-        client.set_iam_policy(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.SetIamPolicyRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_test_iam_permissions_empty_call_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.test_iam_permissions),
-            '__call__') as call:
-        client.test_iam_permissions(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = iam_policy_pb2.TestIamPermissionsRequest()
-
-        assert args[0] == request_msg
-
-
-def test_create_service_routing_parameters_request_1_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.create_service),
-            '__call__') as call:
-        client.create_service(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_service.CreateServiceRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_get_service_routing_parameters_request_1_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_service),
-            '__call__') as call:
-        client.get_service(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.GetServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_list_services_routing_parameters_request_1_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_services),
-            '__call__') as call:
-        client.list_services(request={"parent": "projects/sample1/locations/sample2"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.ListServicesRequest(**{"parent": "projects/sample1/locations/sample2"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_update_service_routing_parameters_request_1_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_service),
-            '__call__') as call:
-        client.update_service(request={"service": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = gcr_service.UpdateServiceRequest(**{"service": {"name": "projects/sample1/locations/sample2/sample3"}})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-def test_delete_service_routing_parameters_request_1_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_service),
-            '__call__') as call:
-        client.delete_service(request={"name": "projects/sample1/locations/sample2/sample3"})
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, kw = call.mock_calls[0]
-        request_msg = service.DeleteServiceRequest(**{"name": "projects/sample1/locations/sample2/sample3"})
-
-        assert args[0] == request_msg
-
-        expected_headers = {'location': 'sample2'}
-        assert gapic_v1.routing_header.to_grpc_metadata(expected_headers) in kw['metadata']
-
-
-def test_services_rest_lro_client():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    transport = client.transport
-
-    # Ensure that we have an api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-operations_v1.AbstractOperationsClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.ServicesGrpcTransport,
-    )
-
-def test_services_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.ServicesTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_services_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.run_v2.services.services.transports.ServicesTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.ServicesTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'create_service',
-        'get_service',
-        'list_services',
-        'update_service',
-        'delete_service',
-        'get_iam_policy',
-        'set_iam_policy',
-        'test_iam_permissions',
-        'get_operation',
-        'wait_operation',
-        'delete_operation',
-        'list_operations',
-    )
-    for method in methods:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, method)(request=object())
-
-    with pytest.raises(NotImplementedError):
-        transport.close()
-
-    # Additionally, the LRO client (a property) should
-    # also raise NotImplementedError
-    with pytest.raises(NotImplementedError):
-        transport.operations_client
-
-    # Catch all for all remaining methods and properties
-    remainder = [
-        'kind',
-    ]
-    for r in remainder:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, r)()
-
-
-def test_services_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.services.transports.ServicesTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ServicesTransport(
-            credentials_file="credentials.json",
-            quota_project_id="octopus",
-        )
-        load_creds.assert_called_once_with("credentials.json",
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id="octopus",
-        )
-
-
-def test_services_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.services.transports.ServicesTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ServicesTransport()
-        adc.assert_called_once()
-
-
-def test_services_auth_adc():
-    # 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)
-        ServicesClient()
-        adc.assert_called_once_with(
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id=None,
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.ServicesGrpcTransport,
-        transports.ServicesGrpcAsyncIOTransport,
-    ],
-)
-def test_services_transport_auth_adc(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", scopes=["1", "2"])
-        adc.assert_called_once_with(
-            scopes=["1", "2"],
-            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
-            quota_project_id="octopus",
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.ServicesGrpcTransport,
-        transports.ServicesGrpcAsyncIOTransport,
-        transports.ServicesRestTransport,
-    ],
-)
-def test_services_transport_auth_gdch_credentials(transport_class):
-    host = 'https://language.com'
-    api_audience_tests = [None, 'https://language2.com']
-    api_audience_expect = [host, 'https://language2.com']
-    for t, e in zip(api_audience_tests, api_audience_expect):
-        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
-            gdch_mock = mock.MagicMock()
-            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
-            adc.return_value = (gdch_mock, None)
-            transport_class(host=host, api_audience=t)
-            gdch_mock.with_gdch_audience.assert_called_once_with(
-                e
-            )
-
-
-@pytest.mark.parametrize(
-    "transport_class,grpc_helpers",
-    [
-        (transports.ServicesGrpcTransport, grpc_helpers),
-        (transports.ServicesGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_services_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=creds,
-            credentials_file=None,
-            quota_project_id="octopus",
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=["1", "2"],
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.ServicesGrpcTransport, transports.ServicesGrpcAsyncIOTransport])
-def test_services_grpc_transport_client_cert_source_for_mtls(
-    transport_class
-):
-    cred = ga_credentials.AnonymousCredentials()
-
-    # Check ssl_channel_credentials is used if provided.
-    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
-        mock_ssl_channel_creds = mock.Mock()
-        transport_class(
-            host="squid.clam.whelk",
-            credentials=cred,
-            ssl_channel_credentials=mock_ssl_channel_creds
-        )
-        mock_create_channel.assert_called_once_with(
-            "squid.clam.whelk:443",
-            credentials=cred,
-            credentials_file=None,
-            scopes=None,
-            ssl_credentials=mock_ssl_channel_creds,
-            quota_project_id=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
-    # is used.
-    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
-        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
-            transport_class(
-                credentials=cred,
-                client_cert_source_for_mtls=client_cert_source_callback
-            )
-            expected_cert, expected_key = client_cert_source_callback()
-            mock_ssl_cred.assert_called_once_with(
-                certificate_chain=expected_cert,
-                private_key=expected_key
-            )
-
-def test_services_http_transport_client_cert_source_for_mtls():
-    cred = ga_credentials.AnonymousCredentials()
-    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
-        transports.ServicesRestTransport (
-            credentials=cred,
-            client_cert_source_for_mtls=client_cert_source_callback
-        )
-        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
-
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_services_host_no_port(transport_name):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_services_host_with_port(transport_name):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_services_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = ServicesClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = ServicesClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.create_service._session
-    session2 = client2.transport.create_service._session
-    assert session1 != session2
-    session1 = client1.transport.get_service._session
-    session2 = client2.transport.get_service._session
-    assert session1 != session2
-    session1 = client1.transport.list_services._session
-    session2 = client2.transport.list_services._session
-    assert session1 != session2
-    session1 = client1.transport.update_service._session
-    session2 = client2.transport.update_service._session
-    assert session1 != session2
-    session1 = client1.transport.delete_service._session
-    session2 = client2.transport.delete_service._session
-    assert session1 != session2
-    session1 = client1.transport.get_iam_policy._session
-    session2 = client2.transport.get_iam_policy._session
-    assert session1 != session2
-    session1 = client1.transport.set_iam_policy._session
-    session2 = client2.transport.set_iam_policy._session
-    assert session1 != session2
-    session1 = client1.transport.test_iam_permissions._session
-    session2 = client2.transport.test_iam_permissions._session
-    assert session1 != session2
-def test_services_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ServicesGrpcTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-def test_services_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ServicesGrpcAsyncIOTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.ServicesGrpcTransport, transports.ServicesGrpcAsyncIOTransport])
-def test_services_transport_channel_mtls_with_client_cert_source(
-    transport_class
-):
-    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_ssl_cred = mock.Mock()
-            grpc_ssl_channel_cred.return_value = mock_ssl_cred
-
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-
-            cred = ga_credentials.AnonymousCredentials()
-            with pytest.warns(DeprecationWarning):
-                with mock.patch.object(google.auth, 'default') as adc:
-                    adc.return_value = (cred, None)
-                    transport = transport_class(
-                        host="squid.clam.whelk",
-                        api_mtls_endpoint="mtls.squid.clam.whelk",
-                        client_cert_source=client_cert_source_callback,
-                    )
-                    adc.assert_called_once()
-
-            grpc_ssl_channel_cred.assert_called_once_with(
-                certificate_chain=b"cert bytes", private_key=b"key bytes"
-            )
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-            assert transport._ssl_channel_credentials == mock_ssl_cred
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.ServicesGrpcTransport, transports.ServicesGrpcAsyncIOTransport])
-def test_services_transport_channel_mtls_with_adc(
-    transport_class
-):
-    mock_ssl_cred = mock.Mock()
-    with mock.patch.multiple(
-        "google.auth.transport.grpc.SslCredentials",
-        __init__=mock.Mock(return_value=None),
-        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
-    ):
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-            mock_cred = mock.Mock()
-
-            with pytest.warns(DeprecationWarning):
-                transport = transport_class(
-                    host="squid.clam.whelk",
-                    credentials=mock_cred,
-                    api_mtls_endpoint="mtls.squid.clam.whelk",
-                    client_cert_source=None,
-                )
-
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=mock_cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-
-
-def test_services_grpc_lro_client():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-    transport = client.transport
-
-    # Ensure that we have a api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-        operations_v1.OperationsClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-
-def test_services_grpc_lro_async_client():
-    client = ServicesAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc_asyncio',
-    )
-    transport = client.transport
-
-    # Ensure that we have a api-core operations client.
-    assert isinstance(
-        transport.operations_client,
-        operations_v1.OperationsAsyncClient,
-    )
-
-    # Ensure that subsequent calls to the property send the exact same object.
-    assert transport.operations_client is transport.operations_client
-
-
-def test_connector_path():
-    project = "squid"
-    location = "clam"
-    connector = "whelk"
-    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-    actual = ServicesClient.connector_path(project, location, connector)
-    assert expected == actual
-
-
-def test_parse_connector_path():
-    expected = {
-        "project": "octopus",
-        "location": "oyster",
-        "connector": "nudibranch",
-    }
-    path = ServicesClient.connector_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_connector_path(path)
-    assert expected == actual
-
-def test_crypto_key_path():
-    project = "cuttlefish"
-    location = "mussel"
-    key_ring = "winkle"
-    crypto_key = "nautilus"
-    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-    actual = ServicesClient.crypto_key_path(project, location, key_ring, crypto_key)
-    assert expected == actual
-
-
-def test_parse_crypto_key_path():
-    expected = {
-        "project": "scallop",
-        "location": "abalone",
-        "key_ring": "squid",
-        "crypto_key": "clam",
-    }
-    path = ServicesClient.crypto_key_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_crypto_key_path(path)
-    assert expected == actual
-
-def test_mesh_path():
-    project = "whelk"
-    location = "octopus"
-    mesh = "oyster"
-    expected = "projects/{project}/locations/{location}/meshes/{mesh}".format(project=project, location=location, mesh=mesh, )
-    actual = ServicesClient.mesh_path(project, location, mesh)
-    assert expected == actual
-
-
-def test_parse_mesh_path():
-    expected = {
-        "project": "nudibranch",
-        "location": "cuttlefish",
-        "mesh": "mussel",
-    }
-    path = ServicesClient.mesh_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_mesh_path(path)
-    assert expected == actual
-
-def test_policy_path():
-    project = "winkle"
-    expected = "projects/{project}/policy".format(project=project, )
-    actual = ServicesClient.policy_path(project)
-    assert expected == actual
-
-
-def test_parse_policy_path():
-    expected = {
-        "project": "nautilus",
-    }
-    path = ServicesClient.policy_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_policy_path(path)
-    assert expected == actual
-
-def test_revision_path():
-    project = "scallop"
-    location = "abalone"
-    service = "squid"
-    revision = "clam"
-    expected = "projects/{project}/locations/{location}/services/{service}/revisions/{revision}".format(project=project, location=location, service=service, revision=revision, )
-    actual = ServicesClient.revision_path(project, location, service, revision)
-    assert expected == actual
-
-
-def test_parse_revision_path():
-    expected = {
-        "project": "whelk",
-        "location": "octopus",
-        "service": "oyster",
-        "revision": "nudibranch",
-    }
-    path = ServicesClient.revision_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_revision_path(path)
-    assert expected == actual
-
-def test_secret_path():
-    project = "cuttlefish"
-    secret = "mussel"
-    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-    actual = ServicesClient.secret_path(project, secret)
-    assert expected == actual
-
-
-def test_parse_secret_path():
-    expected = {
-        "project": "winkle",
-        "secret": "nautilus",
-    }
-    path = ServicesClient.secret_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_secret_path(path)
-    assert expected == actual
-
-def test_secret_version_path():
-    project = "scallop"
-    secret = "abalone"
-    version = "squid"
-    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-    actual = ServicesClient.secret_version_path(project, secret, version)
-    assert expected == actual
-
-
-def test_parse_secret_version_path():
-    expected = {
-        "project": "clam",
-        "secret": "whelk",
-        "version": "octopus",
-    }
-    path = ServicesClient.secret_version_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_secret_version_path(path)
-    assert expected == actual
-
-def test_service_path():
-    project = "oyster"
-    location = "nudibranch"
-    service = "cuttlefish"
-    expected = "projects/{project}/locations/{location}/services/{service}".format(project=project, location=location, service=service, )
-    actual = ServicesClient.service_path(project, location, service)
-    assert expected == actual
-
-
-def test_parse_service_path():
-    expected = {
-        "project": "mussel",
-        "location": "winkle",
-        "service": "nautilus",
-    }
-    path = ServicesClient.service_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_service_path(path)
-    assert expected == actual
-
-def test_common_billing_account_path():
-    billing_account = "scallop"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = ServicesClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "abalone",
-    }
-    path = ServicesClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "squid"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = ServicesClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "clam",
-    }
-    path = ServicesClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "whelk"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = ServicesClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "octopus",
-    }
-    path = ServicesClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "oyster"
-    expected = "projects/{project}".format(project=project, )
-    actual = ServicesClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "nudibranch",
-    }
-    path = ServicesClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_common_project_path(path)
-    assert expected == actual
-
-def test_common_location_path():
-    project = "cuttlefish"
-    location = "mussel"
-    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
-    actual = ServicesClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "winkle",
-        "location": "nautilus",
-    }
-    path = ServicesClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ServicesClient.parse_common_location_path(path)
-    assert expected == actual
-
-
-def test_client_with_default_client_info():
-    client_info = gapic_v1.client_info.ClientInfo()
-
-    with mock.patch.object(transports.ServicesTransport, '_prep_wrapped_messages') as prep:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.ServicesTransport, '_prep_wrapped_messages') as prep:
-        transport_class = ServicesClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-
-def test_delete_operation(transport: str = "grpc"):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-        response = client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-@pytest.mark.asyncio
-async def test_delete_operation_async(transport: str = "grpc_asyncio"):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-def test_delete_operation_field_headers():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value =  None
-
-        client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_delete_operation_field_headers_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_delete_operation_from_dict():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-
-        response = client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_delete_operation_from_dict_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_wait_operation(transport: str = "grpc"):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_wait_operation(transport: str = "grpc_asyncio"):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_wait_operation_field_headers():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_wait_operation_field_headers_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_wait_operation_from_dict():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_wait_operation_from_dict_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_get_operation(transport: str = "grpc"):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_get_operation_async(transport: str = "grpc_asyncio"):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_get_operation_field_headers():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_get_operation_field_headers_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_get_operation_from_dict():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_get_operation_from_dict_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_list_operations(transport: str = "grpc"):
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-        response = client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-@pytest.mark.asyncio
-async def test_list_operations_async(transport: str = "grpc_asyncio"):
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-def test_list_operations_field_headers():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_list_operations_field_headers_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_list_operations_from_dict():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        response = client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_list_operations_from_dict_async():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_transport_close_grpc():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-@pytest.mark.asyncio
-async def test_transport_close_grpc_asyncio():
-    client = ServicesAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        async with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_transport_close_rest():
-    client = ServicesClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_client_ctx():
-    transports = [
-        'rest',
-        'grpc',
-    ]
-    for transport in transports:
-        client = ServicesClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        # Test client calls underlying transport.
-        with mock.patch.object(type(client.transport), "close") as close:
-            close.assert_not_called()
-            with client:
-                pass
-            close.assert_called()
-
-@pytest.mark.parametrize("client_class,transport_class", [
-    (ServicesClient, transports.ServicesGrpcTransport),
-    (ServicesAsyncClient, transports.ServicesGrpcAsyncIOTransport),
-])
-def test_api_key_credentials(client_class, transport_class):
-    with mock.patch.object(
-        google.auth._default, "get_api_key_credentials", create=True
-    ) as get_api_key_credentials:
-        mock_cred = mock.Mock()
-        get_api_key_credentials.return_value = mock_cred
-        options = client_options.ClientOptions()
-        options.api_key = "api_key"
-        with mock.patch.object(transport_class, "__init__") as patched:
-            patched.return_value = None
-            client = client_class(client_options=options)
-            patched.assert_called_once_with(
-                credentials=mock_cred,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
diff --git a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_tasks.py b/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_tasks.py
deleted file mode 100644
index 4b8dadd095d4..000000000000
--- a/owl-bot-staging/google-cloud-run/v2/tests/unit/gapic/run_v2/test_tasks.py
+++ /dev/null
@@ -1,3961 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.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 os
-# try/except added for compatibility with python < 3.8
-try:
-    from unittest import mock
-    from unittest.mock import AsyncMock  # pragma: NO COVER
-except ImportError:  # pragma: NO COVER
-    import mock
-
-import grpc
-from grpc.experimental import aio
-from collections.abc import Iterable, AsyncIterable
-from google.protobuf import json_format
-import json
-import math
-import pytest
-from google.api_core import api_core_version
-from proto.marshal.rules.dates import DurationRule, TimestampRule
-from proto.marshal.rules import wrappers
-from requests import Response
-from requests import Request, PreparedRequest
-from requests.sessions import Session
-from google.protobuf import json_format
-
-try:
-    from google.auth.aio import credentials as ga_credentials_async
-    HAS_GOOGLE_AUTH_AIO = True
-except ImportError: # pragma: NO COVER
-    HAS_GOOGLE_AUTH_AIO = False
-
-from google.api_core import client_options
-from google.api_core import exceptions as core_exceptions
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers
-from google.api_core import grpc_helpers_async
-from google.api_core import path_template
-from google.api_core import retry as retries
-from google.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.location import locations_pb2
-from google.cloud.run_v2.services.tasks import TasksAsyncClient
-from google.cloud.run_v2.services.tasks import TasksClient
-from google.cloud.run_v2.services.tasks import pagers
-from google.cloud.run_v2.services.tasks import transports
-from google.cloud.run_v2.types import condition
-from google.cloud.run_v2.types import k8s_min
-from google.cloud.run_v2.types import task
-from google.cloud.run_v2.types import vendor_settings
-from google.longrunning import operations_pb2 # type: ignore
-from google.oauth2 import service_account
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-import google.auth
-
-
-async def mock_async_gen(data, chunk_size=1):
-    for i in range(0, len(data)):  # pragma: NO COVER
-        chunk = data[i : i + chunk_size]
-        yield chunk.encode("utf-8")
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-# TODO: use async auth anon credentials by default once the minimum version of google-auth is upgraded.
-# See related issue: https://github.com/googleapis/gapic-generator-python/issues/2107.
-def async_anonymous_credentials():
-    if HAS_GOOGLE_AUTH_AIO:
-        return ga_credentials_async.AnonymousCredentials()
-    return ga_credentials.AnonymousCredentials()
-
-# If default endpoint is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint(client):
-    return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT
-
-# If default endpoint template is localhost, then default mtls endpoint will be the same.
-# This method modifies the default endpoint template so the client can produce a different
-# mtls endpoint for endpoint testing purposes.
-def modify_default_endpoint_template(client):
-    return "test.{UNIVERSE_DOMAIN}" if ("localhost" in client._DEFAULT_ENDPOINT_TEMPLATE) else client._DEFAULT_ENDPOINT_TEMPLATE
-
-
-def test__get_default_mtls_endpoint():
-    api_endpoint = "example.googleapis.com"
-    api_mtls_endpoint = "example.mtls.googleapis.com"
-    sandbox_endpoint = "example.sandbox.googleapis.com"
-    sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
-    non_googleapi = "api.example.com"
-
-    assert TasksClient._get_default_mtls_endpoint(None) is None
-    assert TasksClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert TasksClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert TasksClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert TasksClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert TasksClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-def test__read_environment_variables():
-    assert TasksClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        assert TasksClient._read_environment_variables() == (True, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        assert TasksClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            TasksClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        assert TasksClient._read_environment_variables() == (False, "never", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        assert TasksClient._read_environment_variables() == (False, "always", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}):
-        assert TasksClient._read_environment_variables() == (False, "auto", None)
-
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            TasksClient._read_environment_variables()
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    with mock.patch.dict(os.environ, {"GOOGLE_CLOUD_UNIVERSE_DOMAIN": "foo.com"}):
-        assert TasksClient._read_environment_variables() == (False, "auto", "foo.com")
-
-def test__get_client_cert_source():
-    mock_provided_cert_source = mock.Mock()
-    mock_default_cert_source = mock.Mock()
-
-    assert TasksClient._get_client_cert_source(None, False) is None
-    assert TasksClient._get_client_cert_source(mock_provided_cert_source, False) is None
-    assert TasksClient._get_client_cert_source(mock_provided_cert_source, True) == mock_provided_cert_source
-
-    with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-        with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_default_cert_source):
-            assert TasksClient._get_client_cert_source(None, True) is mock_default_cert_source
-            assert TasksClient._get_client_cert_source(mock_provided_cert_source, "true") is mock_provided_cert_source
-
-@mock.patch.object(TasksClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksClient))
-@mock.patch.object(TasksAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksAsyncClient))
-def test__get_api_endpoint():
-    api_override = "foo.com"
-    mock_client_cert_source = mock.Mock()
-    default_universe = TasksClient._DEFAULT_UNIVERSE
-    default_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    assert TasksClient._get_api_endpoint(api_override, mock_client_cert_source, default_universe, "always") == api_override
-    assert TasksClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "auto") == TasksClient.DEFAULT_MTLS_ENDPOINT
-    assert TasksClient._get_api_endpoint(None, None, default_universe, "auto") == default_endpoint
-    assert TasksClient._get_api_endpoint(None, None, default_universe, "always") == TasksClient.DEFAULT_MTLS_ENDPOINT
-    assert TasksClient._get_api_endpoint(None, mock_client_cert_source, default_universe, "always") == TasksClient.DEFAULT_MTLS_ENDPOINT
-    assert TasksClient._get_api_endpoint(None, None, mock_universe, "never") == mock_endpoint
-    assert TasksClient._get_api_endpoint(None, None, default_universe, "never") == default_endpoint
-
-    with pytest.raises(MutualTLSChannelError) as excinfo:
-        TasksClient._get_api_endpoint(None, mock_client_cert_source, mock_universe, "auto")
-    assert str(excinfo.value) == "mTLS is not supported in any universe other than googleapis.com."
-
-
-def test__get_universe_domain():
-    client_universe_domain = "foo.com"
-    universe_domain_env = "bar.com"
-
-    assert TasksClient._get_universe_domain(client_universe_domain, universe_domain_env) == client_universe_domain
-    assert TasksClient._get_universe_domain(None, universe_domain_env) == universe_domain_env
-    assert TasksClient._get_universe_domain(None, None) == TasksClient._DEFAULT_UNIVERSE
-
-    with pytest.raises(ValueError) as excinfo:
-        TasksClient._get_universe_domain("", None)
-    assert str(excinfo.value) == "Universe Domain cannot be an empty string."
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (TasksClient, "grpc"),
-    (TasksAsyncClient, "grpc_asyncio"),
-    (TasksClient, "rest"),
-])
-def test_tasks_client_from_service_account_info(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory:
-        factory.return_value = creds
-        info = {"valid": True}
-        client = client_class.from_service_account_info(info, transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.TasksGrpcTransport, "grpc"),
-    (transports.TasksGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.TasksRestTransport, "rest"),
-])
-def test_tasks_client_service_account_always_use_jwt(transport_class, transport_name):
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=True)
-        use_jwt.assert_called_once_with(True)
-
-    with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt:
-        creds = service_account.Credentials(None, None, None)
-        transport = transport_class(credentials=creds, always_use_jwt_access=False)
-        use_jwt.assert_not_called()
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (TasksClient, "grpc"),
-    (TasksAsyncClient, "grpc_asyncio"),
-    (TasksClient, "rest"),
-])
-def test_tasks_client_from_service_account_file(client_class, transport_name):
-    creds = ga_credentials.AnonymousCredentials()
-    with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory:
-        factory.return_value = creds
-        client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name)
-        assert client.transport._credentials == creds
-        assert isinstance(client, client_class)
-
-        assert client.transport._host == (
-            'run.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://run.googleapis.com'
-        )
-
-
-def test_tasks_client_get_transport_class():
-    transport = TasksClient.get_transport_class()
-    available_transports = [
-        transports.TasksGrpcTransport,
-        transports.TasksRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = TasksClient.get_transport_class("grpc")
-    assert transport == transports.TasksGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (TasksClient, transports.TasksGrpcTransport, "grpc"),
-    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio"),
-    (TasksClient, transports.TasksRestTransport, "rest"),
-])
-@mock.patch.object(TasksClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksClient))
-@mock.patch.object(TasksAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksAsyncClient))
-def test_tasks_client_client_options(client_class, transport_class, transport_name):
-    # Check that if channel is provided we won't create a new one.
-    with mock.patch.object(TasksClient, 'get_transport_class') as gtc:
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-        client = client_class(transport=transport)
-        gtc.assert_not_called()
-
-    # Check that if channel is provided via str we will create a new one.
-    with mock.patch.object(TasksClient, 'get_transport_class') as gtc:
-        client = client_class(transport=transport_name)
-        gtc.assert_called()
-
-    # Check the case api_endpoint is provided.
-    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(transport=transport_name, client_options=options)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "never".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
-    # "always".
-    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(transport=transport_name)
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=client.DEFAULT_MTLS_ENDPOINT,
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client = client_class(transport=transport_name)
-    assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-    # Check the case quota_project_id is provided
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id="octopus",
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-    # Check the case api_endpoint is provided
-    options = client_options.ClientOptions(api_audience="https://language.googleapis.com")
-    with mock.patch.object(transport_class, '__init__') as patched:
-        patched.return_value = None
-        client = client_class(client_options=options, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience="https://language.googleapis.com"
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [
-    (TasksClient, transports.TasksGrpcTransport, "grpc", "true"),
-    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (TasksClient, transports.TasksGrpcTransport, "grpc", "false"),
-    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (TasksClient, transports.TasksRestTransport, "rest", "true"),
-    (TasksClient, transports.TasksRestTransport, "rest", "false"),
-])
-@mock.patch.object(TasksClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksClient))
-@mock.patch.object(TasksAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_tasks_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env):
-    # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default
-    # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists.
-
-    # Check the case client_cert_source is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        options = client_options.ClientOptions(client_cert_source=client_cert_source_callback)
-        with mock.patch.object(transport_class, '__init__') as patched:
-            patched.return_value = None
-            client = client_class(client_options=options, transport=transport_name)
-
-            if use_client_cert_env == "false":
-                expected_client_cert_source = None
-                expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-            else:
-                expected_client_cert_source = client_cert_source_callback
-                expected_host = client.DEFAULT_MTLS_ENDPOINT
-
-            patched.assert_called_once_with(
-                credentials=None,
-                credentials_file=None,
-                host=expected_host,
-                scopes=None,
-                client_cert_source_for_mtls=expected_client_cert_source,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
-
-    # Check the case ADC client cert is provided. Whether client cert is used depends on
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-                with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback):
-                    if use_client_cert_env == "false":
-                        expected_host = client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE)
-                        expected_client_cert_source = None
-                    else:
-                        expected_host = client.DEFAULT_MTLS_ENDPOINT
-                        expected_client_cert_source = client_cert_source_callback
-
-                    patched.return_value = None
-                    client = client_class(transport=transport_name)
-                    patched.assert_called_once_with(
-                        credentials=None,
-                        credentials_file=None,
-                        host=expected_host,
-                        scopes=None,
-                        client_cert_source_for_mtls=expected_client_cert_source,
-                        quota_project_id=None,
-                        client_info=transports.base.DEFAULT_CLIENT_INFO,
-                        always_use_jwt_access=True,
-                        api_audience=None,
-                    )
-
-    # Check the case client_cert_source and ADC client cert are not provided.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}):
-        with mock.patch.object(transport_class, '__init__') as patched:
-            with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False):
-                patched.return_value = None
-                client = client_class(transport=transport_name)
-                patched.assert_called_once_with(
-                    credentials=None,
-                    credentials_file=None,
-                    host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                    scopes=None,
-                    client_cert_source_for_mtls=None,
-                    quota_project_id=None,
-                    client_info=transports.base.DEFAULT_CLIENT_INFO,
-                    always_use_jwt_access=True,
-                    api_audience=None,
-                )
-
-
-@pytest.mark.parametrize("client_class", [
-    TasksClient, TasksAsyncClient
-])
-@mock.patch.object(TasksClient, "DEFAULT_ENDPOINT", modify_default_endpoint(TasksClient))
-@mock.patch.object(TasksAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(TasksAsyncClient))
-def test_tasks_client_get_mtls_endpoint_and_cert_source(client_class):
-    mock_client_cert_source = mock.Mock()
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source == mock_client_cert_source
-
-    # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}):
-        mock_client_cert_source = mock.Mock()
-        mock_api_endpoint = "foo"
-        options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint)
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options)
-        assert api_endpoint == mock_api_endpoint
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always".
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-        assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-        assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False):
-            api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-            assert api_endpoint == client_class.DEFAULT_ENDPOINT
-            assert cert_source is None
-
-    # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True):
-            with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source):
-                api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source()
-                assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-                assert cert_source == mock_client_cert_source
-
-    # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
-    # unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}):
-        with pytest.raises(MutualTLSChannelError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
-
-    # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}):
-        with pytest.raises(ValueError) as excinfo:
-            client_class.get_mtls_endpoint_and_cert_source()
-
-        assert str(excinfo.value) == "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
-
-@pytest.mark.parametrize("client_class", [
-    TasksClient, TasksAsyncClient
-])
-@mock.patch.object(TasksClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksClient))
-@mock.patch.object(TasksAsyncClient, "_DEFAULT_ENDPOINT_TEMPLATE", modify_default_endpoint_template(TasksAsyncClient))
-def test_tasks_client_client_api_endpoint(client_class):
-    mock_client_cert_source = client_cert_source_callback
-    api_override = "foo.com"
-    default_universe = TasksClient._DEFAULT_UNIVERSE
-    default_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=default_universe)
-    mock_universe = "bar.com"
-    mock_endpoint = TasksClient._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=mock_universe)
-
-    # If ClientOptions.api_endpoint is set and GOOGLE_API_USE_CLIENT_CERTIFICATE="true",
-    # use ClientOptions.api_endpoint as the api endpoint regardless.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}):
-        with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel"):
-            options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=api_override)
-            client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-            assert client.api_endpoint == api_override
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-    # If ClientOptions.api_endpoint is not set and GOOGLE_API_USE_MTLS_ENDPOINT="always",
-    # use the DEFAULT_MTLS_ENDPOINT as the api endpoint.
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
-        client = client_class(credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
-
-    # If ClientOptions.api_endpoint is not set, GOOGLE_API_USE_MTLS_ENDPOINT="auto" (default),
-    # GOOGLE_API_USE_CLIENT_CERTIFICATE="false" (default), default cert source doesn't exist,
-    # and ClientOptions.universe_domain="bar.com",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with universe domain as the api endpoint.
-    options = client_options.ClientOptions()
-    universe_exists = hasattr(options, "universe_domain")
-    if universe_exists:
-        options = client_options.ClientOptions(universe_domain=mock_universe)
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    else:
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-    assert client.api_endpoint == (mock_endpoint if universe_exists else default_endpoint)
-    assert client.universe_domain == (mock_universe if universe_exists else default_universe)
-
-    # If ClientOptions does not have a universe domain attribute and GOOGLE_API_USE_MTLS_ENDPOINT="never",
-    # use the _DEFAULT_ENDPOINT_TEMPLATE populated with GDU as the api endpoint.
-    options = client_options.ClientOptions()
-    if hasattr(options, "universe_domain"):
-        delattr(options, "universe_domain")
-    with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
-        client = client_class(client_options=options, credentials=ga_credentials.AnonymousCredentials())
-        assert client.api_endpoint == default_endpoint
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (TasksClient, transports.TasksGrpcTransport, "grpc"),
-    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio"),
-    (TasksClient, transports.TasksRestTransport, "rest"),
-])
-def test_tasks_client_client_options_scopes(client_class, transport_class, transport_name):
-    # Check the case scopes are provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=["1", "2"],
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (TasksClient, transports.TasksGrpcTransport, "grpc", grpc_helpers),
-    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (TasksClient, transports.TasksRestTransport, "rest", None),
-])
-def test_tasks_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-def test_tasks_client_client_options_from_dict():
-    with mock.patch('google.cloud.run_v2.services.tasks.transports.TasksGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = TasksClient(
-            client_options={'api_endpoint': 'squid.clam.whelk'}
-        )
-        grpc_transport.assert_called_once_with(
-            credentials=None,
-            credentials_file=None,
-            host="squid.clam.whelk",
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [
-    (TasksClient, transports.TasksGrpcTransport, "grpc", grpc_helpers),
-    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_tasks_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers):
-    # Check the case credentials file is provided.
-    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, transport=transport_name)
-        patched.assert_called_once_with(
-            credentials=None,
-            credentials_file="credentials.json",
-            host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-            scopes=None,
-            client_cert_source_for_mtls=None,
-            quota_project_id=None,
-            client_info=transports.base.DEFAULT_CLIENT_INFO,
-            always_use_jwt_access=True,
-            api_audience=None,
-        )
-
-    # test that the credentials from file are saved and used as the credentials.
-    with mock.patch.object(
-        google.auth, "load_credentials_from_file", autospec=True
-    ) as load_creds, mock.patch.object(
-        google.auth, "default", autospec=True
-    ) as adc, mock.patch.object(
-        grpc_helpers, "create_channel"
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        file_creds = ga_credentials.AnonymousCredentials()
-        load_creds.return_value = (file_creds, None)
-        adc.return_value = (creds, None)
-        client = client_class(client_options=options, transport=transport_name)
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=file_creds,
-            credentials_file=None,
-            quota_project_id=None,
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=None,
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  task.GetTaskRequest,
-  dict,
-])
-def test_get_task(request_type, transport: str = 'grpc'):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = task.Task(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            job='job_value',
-            execution='execution_value',
-            max_retries=1187,
-            service_account='service_account_value',
-            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-            reconciling=True,
-            observed_generation=2021,
-            index=536,
-            retried=751,
-            encryption_key='encryption_key_value',
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            etag='etag_value',
-        )
-        response = client.get_task(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = task.GetTaskRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, task.Task)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.job == 'job_value'
-    assert response.execution == 'execution_value'
-    assert response.max_retries == 1187
-    assert response.service_account == 'service_account_value'
-    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.index == 536
-    assert response.retried == 751
-    assert response.encryption_key == 'encryption_key_value'
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-def test_get_task_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = task.GetTaskRequest(
-        name='name_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.get_task(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == task.GetTaskRequest(
-            name='name_value',
-        )
-
-def test_get_task_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = TasksClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_task in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_task] = mock_rpc
-        request = {}
-        client.get_task(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_task(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_task_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = TasksAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.get_task in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.get_task] = mock_rpc
-
-        request = {}
-        await client.get_task(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.get_task(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_get_task_async(transport: str = 'grpc_asyncio', request_type=task.GetTaskRequest):
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(task.Task(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            job='job_value',
-            execution='execution_value',
-            max_retries=1187,
-            service_account='service_account_value',
-            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-            reconciling=True,
-            observed_generation=2021,
-            index=536,
-            retried=751,
-            encryption_key='encryption_key_value',
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            etag='etag_value',
-        ))
-        response = await client.get_task(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = task.GetTaskRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, task.Task)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.job == 'job_value'
-    assert response.execution == 'execution_value'
-    assert response.max_retries == 1187
-    assert response.service_account == 'service_account_value'
-    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.index == 536
-    assert response.retried == 751
-    assert response.encryption_key == 'encryption_key_value'
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.asyncio
-async def test_get_task_async_from_dict():
-    await test_get_task_async(request_type=dict)
-
-def test_get_task_field_headers():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = task.GetTaskRequest()
-
-    request.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        call.return_value = task.Task()
-        client.get_task(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'name=name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_get_task_field_headers_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = task.GetTaskRequest()
-
-    request.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.Task())
-        await client.get_task(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'name=name_value',
-    ) in kw['metadata']
-
-
-def test_get_task_flattened():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = task.Task()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.get_task(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-
-def test_get_task_flattened_error():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_task(
-            task.GetTaskRequest(),
-            name='name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_get_task_flattened_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = task.Task()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.Task())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.get_task(
-            name='name_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].name
-        mock_val = 'name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_get_task_flattened_error_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.get_task(
-            task.GetTaskRequest(),
-            name='name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  task.ListTasksRequest,
-  dict,
-])
-def test_list_tasks(request_type, transport: str = 'grpc'):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = task.ListTasksResponse(
-            next_page_token='next_page_token_value',
-        )
-        response = client.list_tasks(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        request = task.ListTasksRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListTasksPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_tasks_non_empty_request_with_auto_populated_field():
-    # This test is a coverage failsafe to make sure that UUID4 fields are
-    # automatically populated, according to AIP-4235, with non-empty requests.
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Populate all string fields in the request which are not UUID4
-    # since we want to check that UUID4 are populated automatically
-    # if they meet the requirements of AIP 4235.
-    request = task.ListTasksRequest(
-        parent='parent_value',
-        page_token='page_token_value',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        call.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client.list_tasks(request=request)
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == task.ListTasksRequest(
-            parent='parent_value',
-            page_token='page_token_value',
-        )
-
-def test_list_tasks_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = TasksClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="grpc",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_tasks in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_tasks] = mock_rpc
-        request = {}
-        client.list_tasks(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_tasks(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_tasks_async_use_cached_wrapped_rpc(transport: str = "grpc_asyncio"):
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method_async.wrap_method") as wrapper_fn:
-        client = TasksAsyncClient(
-            credentials=async_anonymous_credentials(),
-            transport=transport,
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._client._transport.list_tasks in client._client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.AsyncMock()
-        mock_rpc.return_value = mock.Mock()
-        client._client._transport._wrapped_methods[client._client._transport.list_tasks] = mock_rpc
-
-        request = {}
-        await client.list_tasks(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        await client.list_tasks(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-@pytest.mark.asyncio
-async def test_list_tasks_async(transport: str = 'grpc_asyncio', request_type=task.ListTasksRequest):
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = request_type()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(task.ListTasksResponse(
-            next_page_token='next_page_token_value',
-        ))
-        response = await client.list_tasks(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        request = task.ListTasksRequest()
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListTasksAsyncPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.asyncio
-async def test_list_tasks_async_from_dict():
-    await test_list_tasks_async(request_type=dict)
-
-def test_list_tasks_field_headers():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = task.ListTasksRequest()
-
-    request.parent = 'parent_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        call.return_value = task.ListTasksResponse()
-        client.list_tasks(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'parent=parent_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_list_tasks_field_headers_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = task.ListTasksRequest()
-
-    request.parent = 'parent_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.ListTasksResponse())
-        await client.list_tasks(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert (
-        'x-goog-request-params',
-        'parent=parent_value',
-    ) in kw['metadata']
-
-
-def test_list_tasks_flattened():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = task.ListTasksResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.list_tasks(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-
-def test_list_tasks_flattened_error():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_tasks(
-            task.ListTasksRequest(),
-            parent='parent_value',
-        )
-
-@pytest.mark.asyncio
-async def test_list_tasks_flattened_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = task.ListTasksResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.ListTasksResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.list_tasks(
-            parent='parent_value',
-        )
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        arg = args[0].parent
-        mock_val = 'parent_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_list_tasks_flattened_error_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.list_tasks(
-            task.ListTasksRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_tasks_pager(transport_name: str = "grpc"):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                    task.Task(),
-                ],
-                next_page_token='abc',
-            ),
-            task.ListTasksResponse(
-                tasks=[],
-                next_page_token='def',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                ],
-                next_page_token='ghi',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                ],
-            ),
-            RuntimeError,
-        )
-
-        expected_metadata = ()
-        retry = retries.Retry()
-        timeout = 5
-        expected_metadata = tuple(expected_metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ('parent', ''),
-            )),
-        )
-        pager = client.list_tasks(request={}, retry=retry, timeout=timeout)
-
-        assert pager._metadata == expected_metadata
-        assert pager._retry == retry
-        assert pager._timeout == timeout
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, task.Task)
-                   for i in results)
-def test_list_tasks_pages(transport_name: str = "grpc"):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport_name,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                    task.Task(),
-                ],
-                next_page_token='abc',
-            ),
-            task.ListTasksResponse(
-                tasks=[],
-                next_page_token='def',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                ],
-                next_page_token='ghi',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = list(client.list_tasks(request={}).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-@pytest.mark.asyncio
-async def test_list_tasks_async_pager():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                    task.Task(),
-                ],
-                next_page_token='abc',
-            ),
-            task.ListTasksResponse(
-                tasks=[],
-                next_page_token='def',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                ],
-                next_page_token='ghi',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                ],
-            ),
-            RuntimeError,
-        )
-        async_pager = await client.list_tasks(request={},)
-        assert async_pager.next_page_token == 'abc'
-        responses = []
-        async for response in async_pager: # pragma: no branch
-            responses.append(response)
-
-        assert len(responses) == 6
-        assert all(isinstance(i, task.Task)
-                for i in responses)
-
-
-@pytest.mark.asyncio
-async def test_list_tasks_async_pages():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                    task.Task(),
-                ],
-                next_page_token='abc',
-            ),
-            task.ListTasksResponse(
-                tasks=[],
-                next_page_token='def',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                ],
-                next_page_token='ghi',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = []
-        # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch`
-        # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372
-        async for page_ in ( # pragma: no branch
-            await client.list_tasks(request={})
-        ).pages:
-            pages.append(page_)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-
-def test_get_task_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = TasksClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.get_task in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.get_task] = mock_rpc
-
-        request = {}
-        client.get_task(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.get_task(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_get_task_rest_required_fields(request_type=task.GetTaskRequest):
-    transport_class = transports.TasksRestTransport
-
-    request_init = {}
-    request_init["name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_task._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["name"] = 'name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_task._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "name" in jsonified_request
-    assert jsonified_request["name"] == 'name_value'
-
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = task.Task()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = task.Task.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.get_task(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_get_task_rest_unset_required_fields():
-    transport = transports.TasksRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.get_task._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("name", )))
-
-
-def test_get_task_rest_flattened():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = task.Task()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4/tasks/sample5'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            name='name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = task.Task.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.get_task(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{name=projects/*/locations/*/jobs/*/executions/*/tasks/*}" % client.transport._host, args[1])
-
-
-def test_get_task_rest_flattened_error(transport: str = 'rest'):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.get_task(
-            task.GetTaskRequest(),
-            name='name_value',
-        )
-
-
-def test_list_tasks_rest_use_cached_wrapped_rpc():
-    # Clients should use _prep_wrapped_messages to create cached wrapped rpcs,
-    # instead of constructing them on each call
-    with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn:
-        client = TasksClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport="rest",
-        )
-
-        # Should wrap all calls on client creation
-        assert wrapper_fn.call_count > 0
-        wrapper_fn.reset_mock()
-
-        # Ensure method has been cached
-        assert client._transport.list_tasks in client._transport._wrapped_methods
-
-        # Replace cached wrapped function with mock
-        mock_rpc = mock.Mock()
-        mock_rpc.return_value.name = "foo" # operation_request.operation in compute client(s) expect a string.
-        client._transport._wrapped_methods[client._transport.list_tasks] = mock_rpc
-
-        request = {}
-        client.list_tasks(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert mock_rpc.call_count == 1
-
-        client.list_tasks(request)
-
-        # Establish that a new wrapper was not created for this call
-        assert wrapper_fn.call_count == 0
-        assert mock_rpc.call_count == 2
-
-
-def test_list_tasks_rest_required_fields(request_type=task.ListTasksRequest):
-    transport_class = transports.TasksRestTransport
-
-    request_init = {}
-    request_init["parent"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_tasks._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["parent"] = 'parent_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_tasks._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("page_size", "page_token", "show_deleted", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "parent" in jsonified_request
-    assert jsonified_request["parent"] == 'parent_value'
-
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = task.ListTasksResponse()
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # We need to mock transcode() because providing default values
-        # for required fields will fail the real version if the http_options
-        # expect actual values for those fields.
-        with mock.patch.object(path_template, 'transcode') as transcode:
-            # A uri without fields and an empty body will force all the
-            # request fields to show up in the query_params.
-            pb_request = request_type.pb(request)
-            transcode_result = {
-                'uri': 'v1/sample_method',
-                'method': "get",
-                'query_params': pb_request,
-            }
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            # Convert return value to protobuf type
-            return_value = task.ListTasksResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.list_tasks(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_list_tasks_rest_unset_required_fields():
-    transport = transports.TasksRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.list_tasks._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("pageSize", "pageToken", "showDeleted", )) & set(("parent", )))
-
-
-def test_list_tasks_rest_flattened():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = task.ListTasksResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'parent': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            parent='parent_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        # Convert return value to protobuf type
-        return_value = task.ListTasksResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.list_tasks(**mock_args)
-
-        # Establish that the underlying call was made with the expected
-        # request object values.
-        assert len(req.mock_calls) == 1
-        _, args, _ = req.mock_calls[0]
-        assert path_template.validate("%s/v2/{parent=projects/*/locations/*/jobs/*/executions/*}/tasks" % client.transport._host, args[1])
-
-
-def test_list_tasks_rest_flattened_error(transport: str = 'rest'):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        client.list_tasks(
-            task.ListTasksRequest(),
-            parent='parent_value',
-        )
-
-
-def test_list_tasks_rest_pager(transport: str = 'rest'):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # TODO(kbandes): remove this mock unless there's a good reason for it.
-        #with mock.patch.object(path_template, 'transcode') as transcode:
-        # Set the response as a series of pages
-        response = (
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                    task.Task(),
-                ],
-                next_page_token='abc',
-            ),
-            task.ListTasksResponse(
-                tasks=[],
-                next_page_token='def',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                ],
-                next_page_token='ghi',
-            ),
-            task.ListTasksResponse(
-                tasks=[
-                    task.Task(),
-                    task.Task(),
-                ],
-            ),
-        )
-        # Two responses for two calls
-        response = response + response
-
-        # Wrap the values into proper Response objs
-        response = tuple(task.ListTasksResponse.to_json(x) for x in response)
-        return_values = tuple(Response() for i in response)
-        for return_val, response_val in zip(return_values, response):
-            return_val._content = response_val.encode('UTF-8')
-            return_val.status_code = 200
-        req.side_effect = return_values
-
-        sample_request = {'parent': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-
-        pager = client.list_tasks(request=sample_request)
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, task.Task)
-                for i in results)
-
-        pages = list(client.list_tasks(request=sample_request).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.TasksGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = TasksClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.TasksGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = TasksClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.TasksGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = TasksClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = TasksClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.TasksGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = TasksClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.TasksGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = TasksClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.TasksGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.TasksGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.TasksGrpcTransport,
-    transports.TasksGrpcAsyncIOTransport,
-    transports.TasksRestTransport,
-])
-def test_transport_adc(transport_class):
-    # Test default credentials are used if not provided.
-    with mock.patch.object(google.auth, 'default') as adc:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport_class()
-        adc.assert_called_once()
-
-def test_transport_kind_grpc():
-    transport = TasksClient.get_transport_class("grpc")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "grpc"
-
-
-def test_initialize_client_w_grpc():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_task_empty_call_grpc():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        call.return_value = task.Task()
-        client.get_task(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = task.GetTaskRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_tasks_empty_call_grpc():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        call.return_value = task.ListTasksResponse()
-        client.list_tasks(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = task.ListTasksRequest()
-
-        assert args[0] == request_msg
-
-
-def test_transport_kind_grpc_asyncio():
-    transport = TasksAsyncClient.get_transport_class("grpc_asyncio")(
-        credentials=async_anonymous_credentials()
-    )
-    assert transport.kind == "grpc_asyncio"
-
-
-def test_initialize_client_w_grpc_asyncio():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_get_task_empty_call_grpc_asyncio():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.Task(
-            name='name_value',
-            uid='uid_value',
-            generation=1068,
-            job='job_value',
-            execution='execution_value',
-            max_retries=1187,
-            service_account='service_account_value',
-            execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-            reconciling=True,
-            observed_generation=2021,
-            index=536,
-            retried=751,
-            encryption_key='encryption_key_value',
-            log_uri='log_uri_value',
-            satisfies_pzs=True,
-            etag='etag_value',
-        ))
-        await client.get_task(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = task.GetTaskRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-@pytest.mark.asyncio
-async def test_list_tasks_empty_call_grpc_asyncio():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(task.ListTasksResponse(
-            next_page_token='next_page_token_value',
-        ))
-        await client.list_tasks(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = task.ListTasksRequest()
-
-        assert args[0] == request_msg
-
-
-def test_transport_kind_rest():
-    transport = TasksClient.get_transport_class("rest")(
-        credentials=ga_credentials.AnonymousCredentials()
-    )
-    assert transport.kind == "rest"
-
-
-def test_get_task_rest_bad_request(request_type=task.GetTaskRequest):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4/tasks/sample5'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.get_task(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  task.GetTaskRequest,
-  dict,
-])
-def test_get_task_rest_call_success(request_type):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'name': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4/tasks/sample5'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = task.Task(
-              name='name_value',
-              uid='uid_value',
-              generation=1068,
-              job='job_value',
-              execution='execution_value',
-              max_retries=1187,
-              service_account='service_account_value',
-              execution_environment=vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1,
-              reconciling=True,
-              observed_generation=2021,
-              index=536,
-              retried=751,
-              encryption_key='encryption_key_value',
-              log_uri='log_uri_value',
-              satisfies_pzs=True,
-              etag='etag_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = task.Task.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.get_task(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, task.Task)
-    assert response.name == 'name_value'
-    assert response.uid == 'uid_value'
-    assert response.generation == 1068
-    assert response.job == 'job_value'
-    assert response.execution == 'execution_value'
-    assert response.max_retries == 1187
-    assert response.service_account == 'service_account_value'
-    assert response.execution_environment == vendor_settings.ExecutionEnvironment.EXECUTION_ENVIRONMENT_GEN1
-    assert response.reconciling is True
-    assert response.observed_generation == 2021
-    assert response.index == 536
-    assert response.retried == 751
-    assert response.encryption_key == 'encryption_key_value'
-    assert response.log_uri == 'log_uri_value'
-    assert response.satisfies_pzs is True
-    assert response.etag == 'etag_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_get_task_rest_interceptors(null_interceptor):
-    transport = transports.TasksRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.TasksRestInterceptor(),
-        )
-    client = TasksClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.TasksRestInterceptor, "post_get_task") as post, \
-        mock.patch.object(transports.TasksRestInterceptor, "pre_get_task") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = task.GetTaskRequest.pb(task.GetTaskRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = task.Task.to_json(task.Task())
-        req.return_value.content = return_value
-
-        request = task.GetTaskRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = task.Task()
-
-        client.get_task(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_list_tasks_rest_bad_request(request_type=task.ListTasksRequest):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = mock.Mock()
-        req.return_value = response_value
-        client.list_tasks(request)
-
-
-@pytest.mark.parametrize("request_type", [
-  task.ListTasksRequest,
-  dict,
-])
-def test_list_tasks_rest_call_success(request_type):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'parent': 'projects/sample1/locations/sample2/jobs/sample3/executions/sample4'}
-    request = request_type(**request_init)
-
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(type(client.transport._session), 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = task.ListTasksResponse(
-              next_page_token='next_page_token_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-
-        # Convert return value to protobuf type
-        return_value = task.ListTasksResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.list_tasks(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListTasksPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_list_tasks_rest_interceptors(null_interceptor):
-    transport = transports.TasksRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.TasksRestInterceptor(),
-        )
-    client = TasksClient(transport=transport)
-
-    with mock.patch.object(type(client.transport._session), "request") as req, \
-        mock.patch.object(path_template, "transcode")  as transcode, \
-        mock.patch.object(transports.TasksRestInterceptor, "post_list_tasks") as post, \
-        mock.patch.object(transports.TasksRestInterceptor, "pre_list_tasks") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = task.ListTasksRequest.pb(task.ListTasksRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = mock.Mock()
-        req.return_value.status_code = 200
-        return_value = task.ListTasksResponse.to_json(task.ListTasksResponse())
-        req.return_value.content = return_value
-
-        request = task.ListTasksRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = task.ListTasksResponse()
-
-        client.list_tasks(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_operation_rest_bad_request(request_type=operations_pb2.DeleteOperationRequest):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.delete_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.DeleteOperationRequest,
-    dict,
-])
-def test_delete_operation_rest(request_type):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = None
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = '{}'
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.delete_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-
-def test_get_operation_rest_bad_request(request_type=operations_pb2.GetOperationRequest):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.get_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.GetOperationRequest,
-    dict,
-])
-def test_get_operation_rest(request_type):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.get_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-
-def test_list_operations_rest_bad_request(request_type=operations_pb2.ListOperationsRequest):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.list_operations(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.ListOperationsRequest,
-    dict,
-])
-def test_list_operations_rest(request_type):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.ListOperationsResponse()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.list_operations(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-
-def test_wait_operation_rest_bad_request(request_type=operations_pb2.WaitOperationRequest):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-    request = request_type()
-    request = json_format.ParseDict({'name': 'projects/sample1/locations/sample2/operations/sample3'}, request)
-
-    # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, 'request') as req, pytest.raises(core_exceptions.BadRequest):
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        json_return_value = ''
-        response_value.json = mock.Mock(return_value={})
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.wait_operation(request)
-
-
-@pytest.mark.parametrize("request_type", [
-    operations_pb2.WaitOperationRequest,
-    dict,
-])
-def test_wait_operation_rest(request_type):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    request_init = {'name': 'projects/sample1/locations/sample2/operations/sample3'}
-    request = request_type(**request_init)
-    # Mock the http request call within the method and fake a response.
-    with mock.patch.object(Session, 'request') as req:
-        # Designate an appropriate value for the returned response.
-        return_value = operations_pb2.Operation()
-
-        # Wrap the value into a proper Response obj
-        response_value = mock.Mock()
-        response_value.status_code = 200
-        json_return_value = json_format.MessageToJson(return_value)
-        response_value.content = json_return_value.encode('UTF-8')
-
-        req.return_value = response_value
-
-        response = client.wait_operation(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_initialize_client_w_rest():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    assert client is not None
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_get_task_empty_call_rest():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_task),
-            '__call__') as call:
-        client.get_task(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = task.GetTaskRequest()
-
-        assert args[0] == request_msg
-
-
-# This test is a coverage failsafe to make sure that totally empty calls,
-# i.e. request == None and no flattened fields passed, work.
-def test_list_tasks_empty_call_rest():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # Mock the actual call, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_tasks),
-            '__call__') as call:
-        client.list_tasks(request=None)
-
-        # Establish that the underlying stub method was called.
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        request_msg = task.ListTasksRequest()
-
-        assert args[0] == request_msg
-
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.TasksGrpcTransport,
-    )
-
-def test_tasks_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.TasksTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_tasks_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.run_v2.services.tasks.transports.TasksTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.TasksTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'get_task',
-        'list_tasks',
-        'get_operation',
-        'wait_operation',
-        'delete_operation',
-        'list_operations',
-    )
-    for method in methods:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, method)(request=object())
-
-    with pytest.raises(NotImplementedError):
-        transport.close()
-
-    # Catch all for all remaining methods and properties
-    remainder = [
-        'kind',
-    ]
-    for r in remainder:
-        with pytest.raises(NotImplementedError):
-            getattr(transport, r)()
-
-
-def test_tasks_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.run_v2.services.tasks.transports.TasksTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.TasksTransport(
-            credentials_file="credentials.json",
-            quota_project_id="octopus",
-        )
-        load_creds.assert_called_once_with("credentials.json",
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id="octopus",
-        )
-
-
-def test_tasks_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.run_v2.services.tasks.transports.TasksTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.TasksTransport()
-        adc.assert_called_once()
-
-
-def test_tasks_auth_adc():
-    # 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)
-        TasksClient()
-        adc.assert_called_once_with(
-            scopes=None,
-            default_scopes=(
-            'https://www.googleapis.com/auth/cloud-platform',
-),
-            quota_project_id=None,
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.TasksGrpcTransport,
-        transports.TasksGrpcAsyncIOTransport,
-    ],
-)
-def test_tasks_transport_auth_adc(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", scopes=["1", "2"])
-        adc.assert_called_once_with(
-            scopes=["1", "2"],
-            default_scopes=(                'https://www.googleapis.com/auth/cloud-platform',),
-            quota_project_id="octopus",
-        )
-
-
-@pytest.mark.parametrize(
-    "transport_class",
-    [
-        transports.TasksGrpcTransport,
-        transports.TasksGrpcAsyncIOTransport,
-        transports.TasksRestTransport,
-    ],
-)
-def test_tasks_transport_auth_gdch_credentials(transport_class):
-    host = 'https://language.com'
-    api_audience_tests = [None, 'https://language2.com']
-    api_audience_expect = [host, 'https://language2.com']
-    for t, e in zip(api_audience_tests, api_audience_expect):
-        with mock.patch.object(google.auth, 'default', autospec=True) as adc:
-            gdch_mock = mock.MagicMock()
-            type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock)
-            adc.return_value = (gdch_mock, None)
-            transport_class(host=host, api_audience=t)
-            gdch_mock.with_gdch_audience.assert_called_once_with(
-                e
-            )
-
-
-@pytest.mark.parametrize(
-    "transport_class,grpc_helpers",
-    [
-        (transports.TasksGrpcTransport, grpc_helpers),
-        (transports.TasksGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_tasks_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "run.googleapis.com:443",
-            credentials=creds,
-            credentials_file=None,
-            quota_project_id="octopus",
-            default_scopes=(
-                'https://www.googleapis.com/auth/cloud-platform',
-),
-            scopes=["1", "2"],
-            default_host="run.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.TasksGrpcTransport, transports.TasksGrpcAsyncIOTransport])
-def test_tasks_grpc_transport_client_cert_source_for_mtls(
-    transport_class
-):
-    cred = ga_credentials.AnonymousCredentials()
-
-    # Check ssl_channel_credentials is used if provided.
-    with mock.patch.object(transport_class, "create_channel") as mock_create_channel:
-        mock_ssl_channel_creds = mock.Mock()
-        transport_class(
-            host="squid.clam.whelk",
-            credentials=cred,
-            ssl_channel_credentials=mock_ssl_channel_creds
-        )
-        mock_create_channel.assert_called_once_with(
-            "squid.clam.whelk:443",
-            credentials=cred,
-            credentials_file=None,
-            scopes=None,
-            ssl_credentials=mock_ssl_channel_creds,
-            quota_project_id=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-    # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls
-    # is used.
-    with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()):
-        with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred:
-            transport_class(
-                credentials=cred,
-                client_cert_source_for_mtls=client_cert_source_callback
-            )
-            expected_cert, expected_key = client_cert_source_callback()
-            mock_ssl_cred.assert_called_once_with(
-                certificate_chain=expected_cert,
-                private_key=expected_key
-            )
-
-def test_tasks_http_transport_client_cert_source_for_mtls():
-    cred = ga_credentials.AnonymousCredentials()
-    with mock.patch("google.auth.transport.requests.AuthorizedSession.configure_mtls_channel") as mock_configure_mtls_channel:
-        transports.TasksRestTransport (
-            credentials=cred,
-            client_cert_source_for_mtls=client_cert_source_callback
-        )
-        mock_configure_mtls_channel.assert_called_once_with(client_cert_source_callback)
-
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_tasks_host_no_port(transport_name):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_tasks_host_with_port(transport_name):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='run.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'run.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://run.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_tasks_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = TasksClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = TasksClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.get_task._session
-    session2 = client2.transport.get_task._session
-    assert session1 != session2
-    session1 = client1.transport.list_tasks._session
-    session2 = client2.transport.list_tasks._session
-    assert session1 != session2
-def test_tasks_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.TasksGrpcTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-def test_tasks_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.TasksGrpcAsyncIOTransport(
-        host="squid.clam.whelk",
-        channel=channel,
-    )
-    assert transport.grpc_channel == channel
-    assert transport._host == "squid.clam.whelk:443"
-    assert transport._ssl_channel_credentials == None
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.TasksGrpcTransport, transports.TasksGrpcAsyncIOTransport])
-def test_tasks_transport_channel_mtls_with_client_cert_source(
-    transport_class
-):
-    with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred:
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_ssl_cred = mock.Mock()
-            grpc_ssl_channel_cred.return_value = mock_ssl_cred
-
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-
-            cred = ga_credentials.AnonymousCredentials()
-            with pytest.warns(DeprecationWarning):
-                with mock.patch.object(google.auth, 'default') as adc:
-                    adc.return_value = (cred, None)
-                    transport = transport_class(
-                        host="squid.clam.whelk",
-                        api_mtls_endpoint="mtls.squid.clam.whelk",
-                        client_cert_source=client_cert_source_callback,
-                    )
-                    adc.assert_called_once()
-
-            grpc_ssl_channel_cred.assert_called_once_with(
-                certificate_chain=b"cert bytes", private_key=b"key bytes"
-            )
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-            assert transport._ssl_channel_credentials == mock_ssl_cred
-
-
-# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are
-# removed from grpc/grpc_asyncio transport constructor.
-@pytest.mark.parametrize("transport_class", [transports.TasksGrpcTransport, transports.TasksGrpcAsyncIOTransport])
-def test_tasks_transport_channel_mtls_with_adc(
-    transport_class
-):
-    mock_ssl_cred = mock.Mock()
-    with mock.patch.multiple(
-        "google.auth.transport.grpc.SslCredentials",
-        __init__=mock.Mock(return_value=None),
-        ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred),
-    ):
-        with mock.patch.object(transport_class, "create_channel") as grpc_create_channel:
-            mock_grpc_channel = mock.Mock()
-            grpc_create_channel.return_value = mock_grpc_channel
-            mock_cred = mock.Mock()
-
-            with pytest.warns(DeprecationWarning):
-                transport = transport_class(
-                    host="squid.clam.whelk",
-                    credentials=mock_cred,
-                    api_mtls_endpoint="mtls.squid.clam.whelk",
-                    client_cert_source=None,
-                )
-
-            grpc_create_channel.assert_called_once_with(
-                "mtls.squid.clam.whelk:443",
-                credentials=mock_cred,
-                credentials_file=None,
-                scopes=None,
-                ssl_credentials=mock_ssl_cred,
-                quota_project_id=None,
-                options=[
-                    ("grpc.max_send_message_length", -1),
-                    ("grpc.max_receive_message_length", -1),
-                ],
-            )
-            assert transport.grpc_channel == mock_grpc_channel
-
-
-def test_connector_path():
-    project = "squid"
-    location = "clam"
-    connector = "whelk"
-    expected = "projects/{project}/locations/{location}/connectors/{connector}".format(project=project, location=location, connector=connector, )
-    actual = TasksClient.connector_path(project, location, connector)
-    assert expected == actual
-
-
-def test_parse_connector_path():
-    expected = {
-        "project": "octopus",
-        "location": "oyster",
-        "connector": "nudibranch",
-    }
-    path = TasksClient.connector_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_connector_path(path)
-    assert expected == actual
-
-def test_crypto_key_path():
-    project = "cuttlefish"
-    location = "mussel"
-    key_ring = "winkle"
-    crypto_key = "nautilus"
-    expected = "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}".format(project=project, location=location, key_ring=key_ring, crypto_key=crypto_key, )
-    actual = TasksClient.crypto_key_path(project, location, key_ring, crypto_key)
-    assert expected == actual
-
-
-def test_parse_crypto_key_path():
-    expected = {
-        "project": "scallop",
-        "location": "abalone",
-        "key_ring": "squid",
-        "crypto_key": "clam",
-    }
-    path = TasksClient.crypto_key_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_crypto_key_path(path)
-    assert expected == actual
-
-def test_execution_path():
-    project = "whelk"
-    location = "octopus"
-    job = "oyster"
-    execution = "nudibranch"
-    expected = "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}".format(project=project, location=location, job=job, execution=execution, )
-    actual = TasksClient.execution_path(project, location, job, execution)
-    assert expected == actual
-
-
-def test_parse_execution_path():
-    expected = {
-        "project": "cuttlefish",
-        "location": "mussel",
-        "job": "winkle",
-        "execution": "nautilus",
-    }
-    path = TasksClient.execution_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_execution_path(path)
-    assert expected == actual
-
-def test_job_path():
-    project = "scallop"
-    location = "abalone"
-    job = "squid"
-    expected = "projects/{project}/locations/{location}/jobs/{job}".format(project=project, location=location, job=job, )
-    actual = TasksClient.job_path(project, location, job)
-    assert expected == actual
-
-
-def test_parse_job_path():
-    expected = {
-        "project": "clam",
-        "location": "whelk",
-        "job": "octopus",
-    }
-    path = TasksClient.job_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_job_path(path)
-    assert expected == actual
-
-def test_secret_path():
-    project = "oyster"
-    secret = "nudibranch"
-    expected = "projects/{project}/secrets/{secret}".format(project=project, secret=secret, )
-    actual = TasksClient.secret_path(project, secret)
-    assert expected == actual
-
-
-def test_parse_secret_path():
-    expected = {
-        "project": "cuttlefish",
-        "secret": "mussel",
-    }
-    path = TasksClient.secret_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_secret_path(path)
-    assert expected == actual
-
-def test_secret_version_path():
-    project = "winkle"
-    secret = "nautilus"
-    version = "scallop"
-    expected = "projects/{project}/secrets/{secret}/versions/{version}".format(project=project, secret=secret, version=version, )
-    actual = TasksClient.secret_version_path(project, secret, version)
-    assert expected == actual
-
-
-def test_parse_secret_version_path():
-    expected = {
-        "project": "abalone",
-        "secret": "squid",
-        "version": "clam",
-    }
-    path = TasksClient.secret_version_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_secret_version_path(path)
-    assert expected == actual
-
-def test_task_path():
-    project = "whelk"
-    location = "octopus"
-    job = "oyster"
-    execution = "nudibranch"
-    task = "cuttlefish"
-    expected = "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}".format(project=project, location=location, job=job, execution=execution, task=task, )
-    actual = TasksClient.task_path(project, location, job, execution, task)
-    assert expected == actual
-
-
-def test_parse_task_path():
-    expected = {
-        "project": "mussel",
-        "location": "winkle",
-        "job": "nautilus",
-        "execution": "scallop",
-        "task": "abalone",
-    }
-    path = TasksClient.task_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_task_path(path)
-    assert expected == actual
-
-def test_common_billing_account_path():
-    billing_account = "squid"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = TasksClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "clam",
-    }
-    path = TasksClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "whelk"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = TasksClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "octopus",
-    }
-    path = TasksClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "oyster"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = TasksClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "nudibranch",
-    }
-    path = TasksClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "cuttlefish"
-    expected = "projects/{project}".format(project=project, )
-    actual = TasksClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "mussel",
-    }
-    path = TasksClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_common_project_path(path)
-    assert expected == actual
-
-def test_common_location_path():
-    project = "winkle"
-    location = "nautilus"
-    expected = "projects/{project}/locations/{location}".format(project=project, location=location, )
-    actual = TasksClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "scallop",
-        "location": "abalone",
-    }
-    path = TasksClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = TasksClient.parse_common_location_path(path)
-    assert expected == actual
-
-
-def test_client_with_default_client_info():
-    client_info = gapic_v1.client_info.ClientInfo()
-
-    with mock.patch.object(transports.TasksTransport, '_prep_wrapped_messages') as prep:
-        client = TasksClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.TasksTransport, '_prep_wrapped_messages') as prep:
-        transport_class = TasksClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-
-def test_delete_operation(transport: str = "grpc"):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-        response = client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-@pytest.mark.asyncio
-async def test_delete_operation_async(transport: str = "grpc_asyncio"):
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.DeleteOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert response is None
-
-def test_delete_operation_field_headers():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value =  None
-
-        client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_delete_operation_field_headers_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.DeleteOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        await client.delete_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_delete_operation_from_dict():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = None
-
-        response = client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_delete_operation_from_dict_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.delete_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            None
-        )
-        response = await client.delete_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_wait_operation(transport: str = "grpc"):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_wait_operation(transport: str = "grpc_asyncio"):
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.WaitOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_wait_operation_field_headers():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_wait_operation_field_headers_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.WaitOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.wait_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_wait_operation_from_dict():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_wait_operation_from_dict_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.wait_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.wait_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_get_operation(transport: str = "grpc"):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-        response = client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-@pytest.mark.asyncio
-async def test_get_operation_async(transport: str = "grpc_asyncio"):
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.GetOperationRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.Operation)
-
-def test_get_operation_field_headers():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = operations_pb2.Operation()
-
-        client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_get_operation_field_headers_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.GetOperationRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        await client.get_operation(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_get_operation_from_dict():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.Operation()
-
-        response = client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_get_operation_from_dict_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.get_operation), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.Operation()
-        )
-        response = await client.get_operation(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_list_operations(transport: str = "grpc"):
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-        response = client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-@pytest.mark.asyncio
-async def test_list_operations_async(transport: str = "grpc_asyncio"):
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(), transport=transport,
-    )
-
-    # Everything is optional in proto3 as far as the runtime is concerned,
-    # and we are mocking out the actual API, so just send an empty request.
-    request = operations_pb2.ListOperationsRequest()
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, operations_pb2.ListOperationsResponse)
-
-def test_list_operations_field_headers():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-@pytest.mark.asyncio
-async def test_list_operations_field_headers_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-
-    # Any value that is part of the HTTP/1.1 URI should be sent as
-    # a field header. Set these to a non-empty value.
-    request = operations_pb2.ListOperationsRequest()
-    request.name = "locations"
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        await client.list_operations(request)
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == request
-
-    # Establish that the field header was sent.
-    _, _, kw = call.mock_calls[0]
-    assert ("x-goog-request-params", "name=locations",) in kw["metadata"]
-
-def test_list_operations_from_dict():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = operations_pb2.ListOperationsResponse()
-
-        response = client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-@pytest.mark.asyncio
-async def test_list_operations_from_dict_async():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-    )
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(type(client.transport.list_operations), "__call__") as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
-            operations_pb2.ListOperationsResponse()
-        )
-        response = await client.list_operations(
-            request={
-                "name": "locations",
-            }
-        )
-        call.assert_called()
-
-
-def test_transport_close_grpc():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="grpc"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-@pytest.mark.asyncio
-async def test_transport_close_grpc_asyncio():
-    client = TasksAsyncClient(
-        credentials=async_anonymous_credentials(),
-        transport="grpc_asyncio"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_grpc_channel")), "close") as close:
-        async with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_transport_close_rest():
-    client = TasksClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest"
-    )
-    with mock.patch.object(type(getattr(client.transport, "_session")), "close") as close:
-        with client:
-            close.assert_not_called()
-        close.assert_called_once()
-
-
-def test_client_ctx():
-    transports = [
-        'rest',
-        'grpc',
-    ]
-    for transport in transports:
-        client = TasksClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        # Test client calls underlying transport.
-        with mock.patch.object(type(client.transport), "close") as close:
-            close.assert_not_called()
-            with client:
-                pass
-            close.assert_called()
-
-@pytest.mark.parametrize("client_class,transport_class", [
-    (TasksClient, transports.TasksGrpcTransport),
-    (TasksAsyncClient, transports.TasksGrpcAsyncIOTransport),
-])
-def test_api_key_credentials(client_class, transport_class):
-    with mock.patch.object(
-        google.auth._default, "get_api_key_credentials", create=True
-    ) as get_api_key_credentials:
-        mock_cred = mock.Mock()
-        get_api_key_credentials.return_value = mock_cred
-        options = client_options.ClientOptions()
-        options.api_key = "api_key"
-        with mock.patch.object(transport_class, "__init__") as patched:
-            patched.return_value = None
-            client = client_class(client_options=options)
-            patched.assert_called_once_with(
-                credentials=mock_cred,
-                credentials_file=None,
-                host=client._DEFAULT_ENDPOINT_TEMPLATE.format(UNIVERSE_DOMAIN=client._DEFAULT_UNIVERSE),
-                scopes=None,
-                client_cert_source_for_mtls=None,
-                quota_project_id=None,
-                client_info=transports.base.DEFAULT_CLIENT_INFO,
-                always_use_jwt_access=True,
-                api_audience=None,
-            )
diff --git a/packages/google-cloud-run/google/cloud/run/gapic_version.py b/packages/google-cloud-run/google/cloud/run/gapic_version.py
index dbb72468cf59..558c8aab67c5 100644
--- a/packages/google-cloud-run/google/cloud/run/gapic_version.py
+++ b/packages/google-cloud-run/google/cloud/run/gapic_version.py
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-__version__ = "0.10.12"  # {x-release-please-version}
+__version__ = "0.0.0"  # {x-release-please-version}
diff --git a/packages/google-cloud-run/google/cloud/run_v2/gapic_version.py b/packages/google-cloud-run/google/cloud/run_v2/gapic_version.py
index dbb72468cf59..558c8aab67c5 100644
--- a/packages/google-cloud-run/google/cloud/run_v2/gapic_version.py
+++ b/packages/google-cloud-run/google/cloud/run_v2/gapic_version.py
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-__version__ = "0.10.12"  # {x-release-please-version}
+__version__ = "0.0.0"  # {x-release-please-version}
diff --git a/packages/google-cloud-run/google/cloud/run_v2/types/vendor_settings.py b/packages/google-cloud-run/google/cloud/run_v2/types/vendor_settings.py
index 6ac8d772f463..987c7d632aa7 100644
--- a/packages/google-cloud-run/google/cloud/run_v2/types/vendor_settings.py
+++ b/packages/google-cloud-run/google/cloud/run_v2/types/vendor_settings.py
@@ -279,6 +279,9 @@ class ServiceScaling(proto.Message):
     r"""Scaling settings applied at the service level rather than
     at the revision level.
 
+
+    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
+
     Attributes:
         min_instance_count (int):
             Optional. total min instances for the
@@ -287,6 +290,14 @@ class ServiceScaling(proto.Message):
             on the percent of traffic they are receiving.
         scaling_mode (google.cloud.run_v2.types.ServiceScaling.ScalingMode):
             Optional. The scaling mode for the service.
+        manual_instance_count (int):
+            Optional. total instance count for the
+            service in manual scaling mode. This number of
+            instances is divided among all revisions with
+            specified traffic based on the percent of
+            traffic they are receiving.
+
+            This field is a member of `oneof`_ ``_manual_instance_count``.
     """
 
     class ScalingMode(proto.Enum):
@@ -316,6 +327,11 @@ class ScalingMode(proto.Enum):
         number=3,
         enum=ScalingMode,
     )
+    manual_instance_count: int = proto.Field(
+        proto.INT32,
+        number=6,
+        optional=True,
+    )
 
 
 class NodeSelector(proto.Message):
diff --git a/packages/google-cloud-run/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json b/packages/google-cloud-run/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
index d26a6e949076..84a8ca294789 100644
--- a/packages/google-cloud-run/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
+++ b/packages/google-cloud-run/samples/generated_samples/snippet_metadata_google.cloud.run.v2.json
@@ -8,7 +8,7 @@
     ],
     "language": "PYTHON",
     "name": "google-cloud-run",
-    "version": "0.10.12"
+    "version": "0.1.0"
   },
   "snippets": [
     {
diff --git a/packages/google-cloud-run/tests/unit/gapic/run_v2/test_services.py b/packages/google-cloud-run/tests/unit/gapic/run_v2/test_services.py
index 1bbd82b700e8..7308504b2943 100644
--- a/packages/google-cloud-run/tests/unit/gapic/run_v2/test_services.py
+++ b/packages/google-cloud-run/tests/unit/gapic/run_v2/test_services.py
@@ -5865,7 +5865,11 @@ def test_create_service_rest_call_success(request_type):
                 "tag": "tag_value",
             }
         ],
-        "scaling": {"min_instance_count": 1920, "scaling_mode": 1},
+        "scaling": {
+            "min_instance_count": 1920,
+            "scaling_mode": 1,
+            "manual_instance_count": 2234,
+        },
         "invoker_iam_disabled": True,
         "default_uri_disabled": True,
         "urls": ["urls_value1", "urls_value2"],
@@ -6486,7 +6490,11 @@ def test_update_service_rest_call_success(request_type):
                 "tag": "tag_value",
             }
         ],
-        "scaling": {"min_instance_count": 1920, "scaling_mode": 1},
+        "scaling": {
+            "min_instance_count": 1920,
+            "scaling_mode": 1,
+            "manual_instance_count": 2234,
+        },
         "invoker_iam_disabled": True,
         "default_uri_disabled": True,
         "urls": ["urls_value1", "urls_value2"],