From 6b6063dffd0430dd37eec2c3092ce2e7f457db6c Mon Sep 17 00:00:00 2001
From: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Date: Sat, 8 Jul 2023 13:25:47 +0000
Subject: [PATCH 1/2] chore: Update gapic-generator-python to v1.11.2

PiperOrigin-RevId: 546510849

Source-Link: https://github.com/googleapis/googleapis/commit/736073ad9a9763a170eceaaa54519bcc0ea55a5e

Source-Link: https://github.com/googleapis/googleapis-gen/commit/deb64e8ec19d141e31089fe932b3a997ad541c4d
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZGViNjRlOGVjMTlkMTQxZTMxMDg5ZmU5MzJiM2E5OTdhZDU0MWM0ZCJ9
---
 owl-bot-staging/v1beta1/.coveragerc           |   13 +
 owl-bot-staging/v1beta1/.flake8               |   33 +
 owl-bot-staging/v1beta1/MANIFEST.in           |    2 +
 owl-bot-staging/v1beta1/README.rst            |   49 +
 owl-bot-staging/v1beta1/docs/conf.py          |  376 ++
 .../error_group_service.rst                   |    6 +
 .../error_stats_service.rst                   |   10 +
 .../report_errors_service.rst                 |    6 +
 .../docs/errorreporting_v1beta1/services.rst  |    8 +
 .../docs/errorreporting_v1beta1/types.rst     |    6 +
 owl-bot-staging/v1beta1/docs/index.rst        |    7 +
 .../google/cloud/errorreporting/__init__.py   |   85 +
 .../cloud/errorreporting/gapic_version.py     |   16 +
 .../google/cloud/errorreporting/py.typed      |    2 +
 .../cloud/errorreporting_v1beta1/__init__.py  |   86 +
 .../gapic_metadata.json                       |  156 +
 .../errorreporting_v1beta1/gapic_version.py   |   16 +
 .../cloud/errorreporting_v1beta1/py.typed     |    2 +
 .../services/__init__.py                      |   15 +
 .../services/error_group_service/__init__.py  |   22 +
 .../error_group_service/async_client.py       |  404 +++
 .../services/error_group_service/client.py    |  608 ++++
 .../transports/__init__.py                    |   38 +
 .../error_group_service/transports/base.py    |  163 +
 .../error_group_service/transports/grpc.py    |  292 ++
 .../transports/grpc_asyncio.py                |  291 ++
 .../error_group_service/transports/rest.py    |  414 +++
 .../services/error_stats_service/__init__.py  |   22 +
 .../error_stats_service/async_client.py       |  569 +++
 .../services/error_stats_service/client.py    |  773 ++++
 .../services/error_stats_service/pagers.py    |  261 ++
 .../transports/__init__.py                    |   38 +
 .../error_stats_service/transports/base.py    |  176 +
 .../error_stats_service/transports/grpc.py    |  317 ++
 .../transports/grpc_asyncio.py                |  316 ++
 .../error_stats_service/transports/rest.py    |  516 +++
 .../report_errors_service/__init__.py         |   22 +
 .../report_errors_service/async_client.py     |  327 ++
 .../services/report_errors_service/client.py  |  522 +++
 .../transports/__init__.py                    |   38 +
 .../report_errors_service/transports/base.py  |  148 +
 .../report_errors_service/transports/grpc.py  |  276 ++
 .../transports/grpc_asyncio.py                |  275 ++
 .../report_errors_service/transports/rest.py  |  301 ++
 .../errorreporting_v1beta1/types/__init__.py  |   76 +
 .../errorreporting_v1beta1/types/common.py    |  345 ++
 .../types/error_group_service.py              |   69 +
 .../types/error_stats_service.py              |  574 +++
 .../types/report_errors_service.py            |  134 +
 owl-bot-staging/v1beta1/mypy.ini              |    3 +
 owl-bot-staging/v1beta1/noxfile.py            |  184 +
 ...ted_error_group_service_get_group_async.py |   52 +
 ...ated_error_group_service_get_group_sync.py |   52 +
 ..._error_group_service_update_group_async.py |   51 +
 ...d_error_group_service_update_group_sync.py |   51 +
 ...error_stats_service_delete_events_async.py |   52 +
 ..._error_stats_service_delete_events_sync.py |   52 +
 ...d_error_stats_service_list_events_async.py |   54 +
 ...ed_error_stats_service_list_events_sync.py |   54 +
 ...or_stats_service_list_group_stats_async.py |   53 +
 ...ror_stats_service_list_group_stats_sync.py |   53 +
 ...errors_service_report_error_event_async.py |   56 +
 ..._errors_service_report_error_event_sync.py |   56 +
 ....devtools.clouderrorreporting.v1beta1.json | 1005 ++++++
 .../fixup_errorreporting_v1beta1_keywords.py  |  181 +
 owl-bot-staging/v1beta1/setup.py              |   90 +
 .../v1beta1/testing/constraints-3.10.txt      |    6 +
 .../v1beta1/testing/constraints-3.11.txt      |    6 +
 .../v1beta1/testing/constraints-3.12.txt      |    6 +
 .../v1beta1/testing/constraints-3.7.txt       |    9 +
 .../v1beta1/testing/constraints-3.8.txt       |    6 +
 .../v1beta1/testing/constraints-3.9.txt       |    6 +
 owl-bot-staging/v1beta1/tests/__init__.py     |   16 +
 .../v1beta1/tests/unit/__init__.py            |   16 +
 .../v1beta1/tests/unit/gapic/__init__.py      |   16 +
 .../gapic/errorreporting_v1beta1/__init__.py  |   16 +
 .../test_error_group_service.py               | 2172 ++++++++++++
 .../test_error_stats_service.py               | 3149 +++++++++++++++++
 .../test_report_errors_service.py             | 1672 +++++++++
 79 files changed, 18416 insertions(+)
 create mode 100644 owl-bot-staging/v1beta1/.coveragerc
 create mode 100644 owl-bot-staging/v1beta1/.flake8
 create mode 100644 owl-bot-staging/v1beta1/MANIFEST.in
 create mode 100644 owl-bot-staging/v1beta1/README.rst
 create mode 100644 owl-bot-staging/v1beta1/docs/conf.py
 create mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_group_service.rst
 create mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_stats_service.rst
 create mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/report_errors_service.rst
 create mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/services.rst
 create mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/types.rst
 create mode 100644 owl-bot-staging/v1beta1/docs/index.rst
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting/gapic_version.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting/py.typed
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_metadata.json
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_version.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/py.typed
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/common.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_group_service.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
 create mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
 create mode 100644 owl-bot-staging/v1beta1/mypy.ini
 create mode 100644 owl-bot-staging/v1beta1/noxfile.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
 create mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
 create mode 100644 owl-bot-staging/v1beta1/scripts/fixup_errorreporting_v1beta1_keywords.py
 create mode 100644 owl-bot-staging/v1beta1/setup.py
 create mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.10.txt
 create mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.11.txt
 create mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.12.txt
 create mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.7.txt
 create mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.8.txt
 create mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.9.txt
 create mode 100644 owl-bot-staging/v1beta1/tests/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/tests/unit/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/__init__.py
 create mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
 create mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
 create mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py

diff --git a/owl-bot-staging/v1beta1/.coveragerc b/owl-bot-staging/v1beta1/.coveragerc
new file mode 100644
index 00000000..9aac2710
--- /dev/null
+++ b/owl-bot-staging/v1beta1/.coveragerc
@@ -0,0 +1,13 @@
+[run]
+branch = True
+
+[report]
+show_missing = True
+omit =
+    google/cloud/errorreporting/__init__.py
+    google/cloud/errorreporting/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/v1beta1/.flake8 b/owl-bot-staging/v1beta1/.flake8
new file mode 100644
index 00000000..29227d4c
--- /dev/null
+++ b/owl-bot-staging/v1beta1/.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/v1beta1/MANIFEST.in b/owl-bot-staging/v1beta1/MANIFEST.in
new file mode 100644
index 00000000..46f177dc
--- /dev/null
+++ b/owl-bot-staging/v1beta1/MANIFEST.in
@@ -0,0 +1,2 @@
+recursive-include google/cloud/errorreporting *.py
+recursive-include google/cloud/errorreporting_v1beta1 *.py
diff --git a/owl-bot-staging/v1beta1/README.rst b/owl-bot-staging/v1beta1/README.rst
new file mode 100644
index 00000000..fda4cf8e
--- /dev/null
+++ b/owl-bot-staging/v1beta1/README.rst
@@ -0,0 +1,49 @@
+Python Client for Google Cloud Errorreporting 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 Errorreporting 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/v1beta1/docs/conf.py b/owl-bot-staging/v1beta1/docs/conf.py
new file mode 100644
index 00000000..ca368bb2
--- /dev/null
+++ b/owl-bot-staging/v1beta1/docs/conf.py
@@ -0,0 +1,376 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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-error-reporting 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-error-reporting"
+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 = None
+
+# 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-error-reporting-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-error-reporting.tex",
+        u"google-cloud-error-reporting 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-error-reporting",
+        u"Google Cloud Errorreporting 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-error-reporting",
+        u"google-cloud-error-reporting Documentation",
+        author,
+        "google-cloud-error-reporting",
+        "GAPIC library for Google Cloud Errorreporting 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/v1beta1/docs/errorreporting_v1beta1/error_group_service.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_group_service.rst
new file mode 100644
index 00000000..dd213525
--- /dev/null
+++ b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_group_service.rst
@@ -0,0 +1,6 @@
+ErrorGroupService
+-----------------------------------
+
+.. automodule:: google.cloud.errorreporting_v1beta1.services.error_group_service
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_stats_service.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_stats_service.rst
new file mode 100644
index 00000000..b798b28d
--- /dev/null
+++ b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_stats_service.rst
@@ -0,0 +1,10 @@
+ErrorStatsService
+-----------------------------------
+
+.. automodule:: google.cloud.errorreporting_v1beta1.services.error_stats_service
+    :members:
+    :inherited-members:
+
+.. automodule:: google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/report_errors_service.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/report_errors_service.rst
new file mode 100644
index 00000000..ccddb8b0
--- /dev/null
+++ b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/report_errors_service.rst
@@ -0,0 +1,6 @@
+ReportErrorsService
+-------------------------------------
+
+.. automodule:: google.cloud.errorreporting_v1beta1.services.report_errors_service
+    :members:
+    :inherited-members:
diff --git a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/services.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/services.rst
new file mode 100644
index 00000000..e888027f
--- /dev/null
+++ b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/services.rst
@@ -0,0 +1,8 @@
+Services for Google Cloud Errorreporting v1beta1 API
+====================================================
+.. toctree::
+    :maxdepth: 2
+
+    error_group_service
+    error_stats_service
+    report_errors_service
diff --git a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/types.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/types.rst
new file mode 100644
index 00000000..08851dbe
--- /dev/null
+++ b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/types.rst
@@ -0,0 +1,6 @@
+Types for Google Cloud Errorreporting v1beta1 API
+=================================================
+
+.. automodule:: google.cloud.errorreporting_v1beta1.types
+    :members:
+    :show-inheritance:
diff --git a/owl-bot-staging/v1beta1/docs/index.rst b/owl-bot-staging/v1beta1/docs/index.rst
new file mode 100644
index 00000000..886f7cd9
--- /dev/null
+++ b/owl-bot-staging/v1beta1/docs/index.rst
@@ -0,0 +1,7 @@
+API Reference
+-------------
+.. toctree::
+    :maxdepth: 2
+
+    errorreporting_v1beta1/services
+    errorreporting_v1beta1/types
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting/__init__.py
new file mode 100644
index 00000000..9f8df9e1
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting/__init__.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting import gapic_version as package_version
+
+__version__ = package_version.__version__
+
+
+from google.cloud.errorreporting_v1beta1.services.error_group_service.client import ErrorGroupServiceClient
+from google.cloud.errorreporting_v1beta1.services.error_group_service.async_client import ErrorGroupServiceAsyncClient
+from google.cloud.errorreporting_v1beta1.services.error_stats_service.client import ErrorStatsServiceClient
+from google.cloud.errorreporting_v1beta1.services.error_stats_service.async_client import ErrorStatsServiceAsyncClient
+from google.cloud.errorreporting_v1beta1.services.report_errors_service.client import ReportErrorsServiceClient
+from google.cloud.errorreporting_v1beta1.services.report_errors_service.async_client import ReportErrorsServiceAsyncClient
+
+from google.cloud.errorreporting_v1beta1.types.common import ErrorContext
+from google.cloud.errorreporting_v1beta1.types.common import ErrorEvent
+from google.cloud.errorreporting_v1beta1.types.common import ErrorGroup
+from google.cloud.errorreporting_v1beta1.types.common import HttpRequestContext
+from google.cloud.errorreporting_v1beta1.types.common import ServiceContext
+from google.cloud.errorreporting_v1beta1.types.common import SourceLocation
+from google.cloud.errorreporting_v1beta1.types.common import TrackingIssue
+from google.cloud.errorreporting_v1beta1.types.common import ResolutionStatus
+from google.cloud.errorreporting_v1beta1.types.error_group_service import GetGroupRequest
+from google.cloud.errorreporting_v1beta1.types.error_group_service import UpdateGroupRequest
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import DeleteEventsRequest
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import DeleteEventsResponse
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import ErrorGroupStats
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import ListEventsRequest
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import ListEventsResponse
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import ListGroupStatsRequest
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import ListGroupStatsResponse
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import QueryTimeRange
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import ServiceContextFilter
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import TimedCount
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import ErrorGroupOrder
+from google.cloud.errorreporting_v1beta1.types.error_stats_service import TimedCountAlignment
+from google.cloud.errorreporting_v1beta1.types.report_errors_service import ReportedErrorEvent
+from google.cloud.errorreporting_v1beta1.types.report_errors_service import ReportErrorEventRequest
+from google.cloud.errorreporting_v1beta1.types.report_errors_service import ReportErrorEventResponse
+
+__all__ = ('ErrorGroupServiceClient',
+    'ErrorGroupServiceAsyncClient',
+    'ErrorStatsServiceClient',
+    'ErrorStatsServiceAsyncClient',
+    'ReportErrorsServiceClient',
+    'ReportErrorsServiceAsyncClient',
+    'ErrorContext',
+    'ErrorEvent',
+    'ErrorGroup',
+    'HttpRequestContext',
+    'ServiceContext',
+    'SourceLocation',
+    'TrackingIssue',
+    'ResolutionStatus',
+    'GetGroupRequest',
+    'UpdateGroupRequest',
+    'DeleteEventsRequest',
+    'DeleteEventsResponse',
+    'ErrorGroupStats',
+    'ListEventsRequest',
+    'ListEventsResponse',
+    'ListGroupStatsRequest',
+    'ListGroupStatsResponse',
+    'QueryTimeRange',
+    'ServiceContextFilter',
+    'TimedCount',
+    'ErrorGroupOrder',
+    'TimedCountAlignment',
+    'ReportedErrorEvent',
+    'ReportErrorEventRequest',
+    'ReportErrorEventResponse',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting/gapic_version.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting/gapic_version.py
new file mode 100644
index 00000000..360a0d13
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting/gapic_version.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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/v1beta1/google/cloud/errorreporting/py.typed b/owl-bot-staging/v1beta1/google/cloud/errorreporting/py.typed
new file mode 100644
index 00000000..01870137
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting/py.typed
@@ -0,0 +1,2 @@
+# Marker file for PEP 561.
+# The google-cloud-error-reporting package uses inline types.
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/__init__.py
new file mode 100644
index 00000000..4b8f8aba
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/__init__.py
@@ -0,0 +1,86 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1 import gapic_version as package_version
+
+__version__ = package_version.__version__
+
+
+from .services.error_group_service import ErrorGroupServiceClient
+from .services.error_group_service import ErrorGroupServiceAsyncClient
+from .services.error_stats_service import ErrorStatsServiceClient
+from .services.error_stats_service import ErrorStatsServiceAsyncClient
+from .services.report_errors_service import ReportErrorsServiceClient
+from .services.report_errors_service import ReportErrorsServiceAsyncClient
+
+from .types.common import ErrorContext
+from .types.common import ErrorEvent
+from .types.common import ErrorGroup
+from .types.common import HttpRequestContext
+from .types.common import ServiceContext
+from .types.common import SourceLocation
+from .types.common import TrackingIssue
+from .types.common import ResolutionStatus
+from .types.error_group_service import GetGroupRequest
+from .types.error_group_service import UpdateGroupRequest
+from .types.error_stats_service import DeleteEventsRequest
+from .types.error_stats_service import DeleteEventsResponse
+from .types.error_stats_service import ErrorGroupStats
+from .types.error_stats_service import ListEventsRequest
+from .types.error_stats_service import ListEventsResponse
+from .types.error_stats_service import ListGroupStatsRequest
+from .types.error_stats_service import ListGroupStatsResponse
+from .types.error_stats_service import QueryTimeRange
+from .types.error_stats_service import ServiceContextFilter
+from .types.error_stats_service import TimedCount
+from .types.error_stats_service import ErrorGroupOrder
+from .types.error_stats_service import TimedCountAlignment
+from .types.report_errors_service import ReportedErrorEvent
+from .types.report_errors_service import ReportErrorEventRequest
+from .types.report_errors_service import ReportErrorEventResponse
+
+__all__ = (
+    'ErrorGroupServiceAsyncClient',
+    'ErrorStatsServiceAsyncClient',
+    'ReportErrorsServiceAsyncClient',
+'DeleteEventsRequest',
+'DeleteEventsResponse',
+'ErrorContext',
+'ErrorEvent',
+'ErrorGroup',
+'ErrorGroupOrder',
+'ErrorGroupServiceClient',
+'ErrorGroupStats',
+'ErrorStatsServiceClient',
+'GetGroupRequest',
+'HttpRequestContext',
+'ListEventsRequest',
+'ListEventsResponse',
+'ListGroupStatsRequest',
+'ListGroupStatsResponse',
+'QueryTimeRange',
+'ReportErrorEventRequest',
+'ReportErrorEventResponse',
+'ReportErrorsServiceClient',
+'ReportedErrorEvent',
+'ResolutionStatus',
+'ServiceContext',
+'ServiceContextFilter',
+'SourceLocation',
+'TimedCount',
+'TimedCountAlignment',
+'TrackingIssue',
+'UpdateGroupRequest',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_metadata.json b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_metadata.json
new file mode 100644
index 00000000..825275e6
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_metadata.json
@@ -0,0 +1,156 @@
+ {
+  "comment": "This file maps proto services/RPCs to the corresponding library clients/methods",
+  "language": "python",
+  "libraryPackage": "google.cloud.errorreporting_v1beta1",
+  "protoPackage": "google.devtools.clouderrorreporting.v1beta1",
+  "schema": "1.0",
+  "services": {
+    "ErrorGroupService": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "ErrorGroupServiceClient",
+          "rpcs": {
+            "GetGroup": {
+              "methods": [
+                "get_group"
+              ]
+            },
+            "UpdateGroup": {
+              "methods": [
+                "update_group"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "ErrorGroupServiceAsyncClient",
+          "rpcs": {
+            "GetGroup": {
+              "methods": [
+                "get_group"
+              ]
+            },
+            "UpdateGroup": {
+              "methods": [
+                "update_group"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "ErrorGroupServiceClient",
+          "rpcs": {
+            "GetGroup": {
+              "methods": [
+                "get_group"
+              ]
+            },
+            "UpdateGroup": {
+              "methods": [
+                "update_group"
+              ]
+            }
+          }
+        }
+      }
+    },
+    "ErrorStatsService": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "ErrorStatsServiceClient",
+          "rpcs": {
+            "DeleteEvents": {
+              "methods": [
+                "delete_events"
+              ]
+            },
+            "ListEvents": {
+              "methods": [
+                "list_events"
+              ]
+            },
+            "ListGroupStats": {
+              "methods": [
+                "list_group_stats"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "ErrorStatsServiceAsyncClient",
+          "rpcs": {
+            "DeleteEvents": {
+              "methods": [
+                "delete_events"
+              ]
+            },
+            "ListEvents": {
+              "methods": [
+                "list_events"
+              ]
+            },
+            "ListGroupStats": {
+              "methods": [
+                "list_group_stats"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "ErrorStatsServiceClient",
+          "rpcs": {
+            "DeleteEvents": {
+              "methods": [
+                "delete_events"
+              ]
+            },
+            "ListEvents": {
+              "methods": [
+                "list_events"
+              ]
+            },
+            "ListGroupStats": {
+              "methods": [
+                "list_group_stats"
+              ]
+            }
+          }
+        }
+      }
+    },
+    "ReportErrorsService": {
+      "clients": {
+        "grpc": {
+          "libraryClient": "ReportErrorsServiceClient",
+          "rpcs": {
+            "ReportErrorEvent": {
+              "methods": [
+                "report_error_event"
+              ]
+            }
+          }
+        },
+        "grpc-async": {
+          "libraryClient": "ReportErrorsServiceAsyncClient",
+          "rpcs": {
+            "ReportErrorEvent": {
+              "methods": [
+                "report_error_event"
+              ]
+            }
+          }
+        },
+        "rest": {
+          "libraryClient": "ReportErrorsServiceClient",
+          "rpcs": {
+            "ReportErrorEvent": {
+              "methods": [
+                "report_error_event"
+              ]
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_version.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_version.py
new file mode 100644
index 00000000..360a0d13
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_version.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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/v1beta1/google/cloud/errorreporting_v1beta1/py.typed b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/py.typed
new file mode 100644
index 00000000..01870137
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/py.typed
@@ -0,0 +1,2 @@
+# Marker file for PEP 561.
+# The google-cloud-error-reporting package uses inline types.
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/__init__.py
new file mode 100644
index 00000000..89a37dc9
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/__init__.py
@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
new file mode 100644
index 00000000..9848dc98
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ErrorGroupServiceClient
+from .async_client import ErrorGroupServiceAsyncClient
+
+__all__ = (
+    'ErrorGroupServiceClient',
+    'ErrorGroupServiceAsyncClient',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
new file mode 100644
index 00000000..06e450c1
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
@@ -0,0 +1,404 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 functools
+import re
+from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.errorreporting_v1beta1 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 as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_group_service
+from .transports.base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import ErrorGroupServiceGrpcAsyncIOTransport
+from .client import ErrorGroupServiceClient
+
+
+class ErrorGroupServiceAsyncClient:
+    """Service for retrieving and updating individual error groups."""
+
+    _client: ErrorGroupServiceClient
+
+    DEFAULT_ENDPOINT = ErrorGroupServiceClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = ErrorGroupServiceClient.DEFAULT_MTLS_ENDPOINT
+
+    error_group_path = staticmethod(ErrorGroupServiceClient.error_group_path)
+    parse_error_group_path = staticmethod(ErrorGroupServiceClient.parse_error_group_path)
+    common_billing_account_path = staticmethod(ErrorGroupServiceClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(ErrorGroupServiceClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(ErrorGroupServiceClient.common_folder_path)
+    parse_common_folder_path = staticmethod(ErrorGroupServiceClient.parse_common_folder_path)
+    common_organization_path = staticmethod(ErrorGroupServiceClient.common_organization_path)
+    parse_common_organization_path = staticmethod(ErrorGroupServiceClient.parse_common_organization_path)
+    common_project_path = staticmethod(ErrorGroupServiceClient.common_project_path)
+    parse_common_project_path = staticmethod(ErrorGroupServiceClient.parse_common_project_path)
+    common_location_path = staticmethod(ErrorGroupServiceClient.common_location_path)
+    parse_common_location_path = staticmethod(ErrorGroupServiceClient.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:
+            ErrorGroupServiceAsyncClient: The constructed client.
+        """
+        return ErrorGroupServiceClient.from_service_account_info.__func__(ErrorGroupServiceAsyncClient, 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:
+            ErrorGroupServiceAsyncClient: The constructed client.
+        """
+        return ErrorGroupServiceClient.from_service_account_file.__func__(ErrorGroupServiceAsyncClient, 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 ErrorGroupServiceClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> ErrorGroupServiceTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ErrorGroupServiceTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    get_transport_class = functools.partial(type(ErrorGroupServiceClient).get_transport_class, type(ErrorGroupServiceClient))
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Union[str, ErrorGroupServiceTransport] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the error group service 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 (Union[str, ~.ErrorGroupServiceTransport]): The
+                transport to use. If set to None, a transport is chosen
+                automatically.
+            client_options (ClientOptions): Custom options for the client. It
+                won't take effect if a ``transport`` instance is provided.
+                (1) The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
+                environment variable can also be used to override the endpoint:
+                "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). However, the ``api_endpoint`` property takes
+                precedence if provided.
+                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide client certificate for mutual TLS 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.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = ErrorGroupServiceClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def get_group(self,
+            request: Optional[Union[error_group_service.GetGroupRequest, dict]] = None,
+            *,
+            group_name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> common.ErrorGroup:
+        r"""Get the specified group.
+
+        .. 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 errorreporting_v1beta1
+
+            async def sample_get_group():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorGroupServiceAsyncClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.GetGroupRequest(
+                    group_name="group_name_value",
+                )
+
+                # Make the request
+                response = await client.get_group(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.GetGroupRequest, dict]]):
+                The request object. A request to return an individual
+                group.
+            group_name (:class:`str`):
+                Required. The group resource name. Written as
+                ``projects/{projectID}/groups/{group_name}``. Call
+                ```groupStats.list`` <https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list>`__
+                to return a list of groups belonging to this project.
+
+                Example: ``projects/my-project-123/groups/my-group``
+
+                This corresponds to the ``group_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.errorreporting_v1beta1.types.ErrorGroup:
+                Description of a group of similar
+                error events.
+
+        """
+        # 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([group_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.")
+
+        request = error_group_service.GetGroupRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if group_name is not None:
+            request.group_name = group_name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = gapic_v1.method_async.wrap_method(
+            self._client._transport.get_group,
+            default_timeout=None,
+            client_info=DEFAULT_CLIENT_INFO,
+        )
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("group_name", request.group_name),
+            )),
+        )
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def update_group(self,
+            request: Optional[Union[error_group_service.UpdateGroupRequest, dict]] = None,
+            *,
+            group: Optional[common.ErrorGroup] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> common.ErrorGroup:
+        r"""Replace the data for the specified group.
+        Fails if the group does not exist.
+
+        .. 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 errorreporting_v1beta1
+
+            async def sample_update_group():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorGroupServiceAsyncClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.UpdateGroupRequest(
+                )
+
+                # Make the request
+                response = await client.update_group(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.UpdateGroupRequest, dict]]):
+                The request object. A request to replace the existing
+                data for the given group.
+            group (:class:`google.cloud.errorreporting_v1beta1.types.ErrorGroup`):
+                Required. The group which replaces
+                the resource on the server.
+
+                This corresponds to the ``group`` 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.errorreporting_v1beta1.types.ErrorGroup:
+                Description of a group of similar
+                error events.
+
+        """
+        # 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([group])
+        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.")
+
+        request = error_group_service.UpdateGroupRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if group is not None:
+            request.group = group
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = gapic_v1.method_async.wrap_method(
+            self._client._transport.update_group,
+            default_timeout=None,
+            client_info=DEFAULT_CLIENT_INFO,
+        )
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("group.name", request.group.name),
+            )),
+        )
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "ErrorGroupServiceAsyncClient":
+        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__ = (
+    "ErrorGroupServiceAsyncClient",
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
new file mode 100644
index 00000000..80f470b0
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
@@ -0,0 +1,608 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+
+from google.cloud.errorreporting_v1beta1 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]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_group_service
+from .transports.base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import ErrorGroupServiceGrpcTransport
+from .transports.grpc_asyncio import ErrorGroupServiceGrpcAsyncIOTransport
+from .transports.rest import ErrorGroupServiceRestTransport
+
+
+class ErrorGroupServiceClientMeta(type):
+    """Metaclass for the ErrorGroupService 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[ErrorGroupServiceTransport]]
+    _transport_registry["grpc"] = ErrorGroupServiceGrpcTransport
+    _transport_registry["grpc_asyncio"] = ErrorGroupServiceGrpcAsyncIOTransport
+    _transport_registry["rest"] = ErrorGroupServiceRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[ErrorGroupServiceTransport]:
+        """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 ErrorGroupServiceClient(metaclass=ErrorGroupServiceClientMeta):
+    """Service for retrieving and updating individual error groups."""
+
+    @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")
+
+    DEFAULT_ENDPOINT = "clouderrorreporting.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    @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:
+            ErrorGroupServiceClient: 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:
+            ErrorGroupServiceClient: 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) -> ErrorGroupServiceTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ErrorGroupServiceTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @staticmethod
+    def error_group_path(project: str,group: str,) -> str:
+        """Returns a fully-qualified error_group string."""
+        return "projects/{project}/groups/{group}".format(project=project, group=group, )
+
+    @staticmethod
+    def parse_error_group_path(path: str) -> Dict[str,str]:
+        """Parses a error_group path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/groups/(?P<group>.+?)$", 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):
+        """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.
+        """
+        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
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, ErrorGroupServiceTransport]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the error group service 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 (Union[str, ErrorGroupServiceTransport]): The
+                transport to use. 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. It won't take effect if a ``transport`` instance is provided.
+                (1) The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
+                environment variable can also be used to override the endpoint:
+                "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). However, the ``api_endpoint`` property takes
+                precedence if provided.
+                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide client certificate for mutual TLS 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.
+            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.
+        """
+        if isinstance(client_options, dict):
+            client_options = client_options_lib.from_dict(client_options)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        client_options = cast(client_options_lib.ClientOptions, client_options)
+
+        api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options)
+
+        api_key_value = getattr(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.
+        if isinstance(transport, ErrorGroupServiceTransport):
+            # transport is a ErrorGroupServiceTransport instance.
+            if credentials or client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = transport
+        else:
+            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 = type(self).get_transport_class(transport)
+            self._transport = Transport(
+                credentials=credentials,
+                credentials_file=client_options.credentials_file,
+                host=api_endpoint,
+                scopes=client_options.scopes,
+                client_cert_source_for_mtls=client_cert_source_func,
+                quota_project_id=client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=client_options.api_audience,
+            )
+
+    def get_group(self,
+            request: Optional[Union[error_group_service.GetGroupRequest, dict]] = None,
+            *,
+            group_name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> common.ErrorGroup:
+        r"""Get the specified group.
+
+        .. 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 errorreporting_v1beta1
+
+            def sample_get_group():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorGroupServiceClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.GetGroupRequest(
+                    group_name="group_name_value",
+                )
+
+                # Make the request
+                response = client.get_group(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.errorreporting_v1beta1.types.GetGroupRequest, dict]):
+                The request object. A request to return an individual
+                group.
+            group_name (str):
+                Required. The group resource name. Written as
+                ``projects/{projectID}/groups/{group_name}``. Call
+                ```groupStats.list`` <https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list>`__
+                to return a list of groups belonging to this project.
+
+                Example: ``projects/my-project-123/groups/my-group``
+
+                This corresponds to the ``group_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.errorreporting_v1beta1.types.ErrorGroup:
+                Description of a group of similar
+                error events.
+
+        """
+        # 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([group_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.')
+
+        # Minor optimization to avoid making a copy if the user passes
+        # in a error_group_service.GetGroupRequest.
+        # There's no risk of modifying the input as we've already verified
+        # there are no flattened fields.
+        if not isinstance(request, error_group_service.GetGroupRequest):
+            request = error_group_service.GetGroupRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if group_name is not None:
+                request.group_name = group_name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.get_group]
+
+         # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("group_name", request.group_name),
+            )),
+        )
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def update_group(self,
+            request: Optional[Union[error_group_service.UpdateGroupRequest, dict]] = None,
+            *,
+            group: Optional[common.ErrorGroup] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> common.ErrorGroup:
+        r"""Replace the data for the specified group.
+        Fails if the group does not exist.
+
+        .. 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 errorreporting_v1beta1
+
+            def sample_update_group():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorGroupServiceClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.UpdateGroupRequest(
+                )
+
+                # Make the request
+                response = client.update_group(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.errorreporting_v1beta1.types.UpdateGroupRequest, dict]):
+                The request object. A request to replace the existing
+                data for the given group.
+            group (google.cloud.errorreporting_v1beta1.types.ErrorGroup):
+                Required. The group which replaces
+                the resource on the server.
+
+                This corresponds to the ``group`` 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.errorreporting_v1beta1.types.ErrorGroup:
+                Description of a group of similar
+                error events.
+
+        """
+        # 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([group])
+        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.')
+
+        # Minor optimization to avoid making a copy if the user passes
+        # in a error_group_service.UpdateGroupRequest.
+        # There's no risk of modifying the input as we've already verified
+        # there are no flattened fields.
+        if not isinstance(request, error_group_service.UpdateGroupRequest):
+            request = error_group_service.UpdateGroupRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if group is not None:
+                request.group = group
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.update_group]
+
+         # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("group.name", request.group.name),
+            )),
+        )
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "ErrorGroupServiceClient":
+        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()
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "ErrorGroupServiceClient",
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
new file mode 100644
index 00000000..4f66ce5c
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ErrorGroupServiceTransport
+from .grpc import ErrorGroupServiceGrpcTransport
+from .grpc_asyncio import ErrorGroupServiceGrpcAsyncIOTransport
+from .rest import ErrorGroupServiceRestTransport
+from .rest import ErrorGroupServiceRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[ErrorGroupServiceTransport]]
+_transport_registry['grpc'] = ErrorGroupServiceGrpcTransport
+_transport_registry['grpc_asyncio'] = ErrorGroupServiceGrpcAsyncIOTransport
+_transport_registry['rest'] = ErrorGroupServiceRestTransport
+
+__all__ = (
+    'ErrorGroupServiceTransport',
+    'ErrorGroupServiceGrpcTransport',
+    'ErrorGroupServiceGrpcAsyncIOTransport',
+    'ErrorGroupServiceRestTransport',
+    'ErrorGroupServiceRestInterceptor',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
new file mode 100644
index 00000000..e24becb3
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
@@ -0,0 +1,163 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1 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.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_group_service
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class ErrorGroupServiceTransport(abc.ABC):
+    """Abstract transport class for ErrorGroupService."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'clouderrorreporting.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.
+            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 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:
+            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
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.get_group: gapic_v1.method.wrap_method(
+                self.get_group,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.update_group: gapic_v1.method.wrap_method(
+                self.update_group,
+                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_group(self) -> Callable[
+            [error_group_service.GetGroupRequest],
+            Union[
+                common.ErrorGroup,
+                Awaitable[common.ErrorGroup]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def update_group(self) -> Callable[
+            [error_group_service.UpdateGroupRequest],
+            Union[
+                common.ErrorGroup,
+                Awaitable[common.ErrorGroup]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'ErrorGroupServiceTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
new file mode 100644
index 00000000..06b9806a
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
@@ -0,0 +1,292 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_group_service
+from .base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO
+
+
+class ErrorGroupServiceGrpcTransport(ErrorGroupServiceTransport):
+    """gRPC backend transport for ErrorGroupService.
+
+    Service for retrieving and updating individual error groups.
+
+    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 = 'clouderrorreporting.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[grpc.Channel] = None,
+            api_mtls_endpoint: Optional[str] = None,
+            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
+            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            quota_project_id: Optional[str] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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 ``channel`` 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 ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            channel (Optional[grpc.Channel]): A ``Channel`` instance through
+                which to make calls.
+            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 ``channel`` 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 ``channel`` 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 channel:
+            # Ignore credentials if a channel was passed.
+            credentials = False
+            # 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:
+            self._grpc_channel = type(self).create_channel(
+                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 = 'clouderrorreporting.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_group(self) -> Callable[
+            [error_group_service.GetGroupRequest],
+            common.ErrorGroup]:
+        r"""Return a callable for the get group method over gRPC.
+
+        Get the specified group.
+
+        Returns:
+            Callable[[~.GetGroupRequest],
+                    ~.ErrorGroup]:
+                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_group' not in self._stubs:
+            self._stubs['get_group'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/GetGroup',
+                request_serializer=error_group_service.GetGroupRequest.serialize,
+                response_deserializer=common.ErrorGroup.deserialize,
+            )
+        return self._stubs['get_group']
+
+    @property
+    def update_group(self) -> Callable[
+            [error_group_service.UpdateGroupRequest],
+            common.ErrorGroup]:
+        r"""Return a callable for the update group method over gRPC.
+
+        Replace the data for the specified group.
+        Fails if the group does not exist.
+
+        Returns:
+            Callable[[~.UpdateGroupRequest],
+                    ~.ErrorGroup]:
+                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_group' not in self._stubs:
+            self._stubs['update_group'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/UpdateGroup',
+                request_serializer=error_group_service.UpdateGroupRequest.serialize,
+                response_deserializer=common.ErrorGroup.deserialize,
+            )
+        return self._stubs['update_group']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'ErrorGroupServiceGrpcTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
new file mode 100644
index 00000000..1d5e4e52
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
@@ -0,0 +1,291 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+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.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_group_service
+from .base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO
+from .grpc import ErrorGroupServiceGrpcTransport
+
+
+class ErrorGroupServiceGrpcAsyncIOTransport(ErrorGroupServiceTransport):
+    """gRPC AsyncIO backend transport for ErrorGroupService.
+
+    Service for retrieving and updating individual error groups.
+
+    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 = 'clouderrorreporting.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`.
+                This argument is ignored if ``channel`` 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`.
+            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 = 'clouderrorreporting.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[aio.Channel] = None,
+            api_mtls_endpoint: Optional[str] = None,
+            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
+            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            quota_project_id: Optional[str] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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 ``channel`` 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 ``channel`` 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[aio.Channel]): A ``Channel`` instance through
+                which to make calls.
+            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 ``channel`` 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 ``channel`` 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 channel:
+            # Ignore credentials if a channel was passed.
+            credentials = False
+            # 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:
+            self._grpc_channel = type(self).create_channel(
+                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)
+
+    @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_group(self) -> Callable[
+            [error_group_service.GetGroupRequest],
+            Awaitable[common.ErrorGroup]]:
+        r"""Return a callable for the get group method over gRPC.
+
+        Get the specified group.
+
+        Returns:
+            Callable[[~.GetGroupRequest],
+                    Awaitable[~.ErrorGroup]]:
+                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_group' not in self._stubs:
+            self._stubs['get_group'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/GetGroup',
+                request_serializer=error_group_service.GetGroupRequest.serialize,
+                response_deserializer=common.ErrorGroup.deserialize,
+            )
+        return self._stubs['get_group']
+
+    @property
+    def update_group(self) -> Callable[
+            [error_group_service.UpdateGroupRequest],
+            Awaitable[common.ErrorGroup]]:
+        r"""Return a callable for the update group method over gRPC.
+
+        Replace the data for the specified group.
+        Fails if the group does not exist.
+
+        Returns:
+            Callable[[~.UpdateGroupRequest],
+                    Awaitable[~.ErrorGroup]]:
+                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_group' not in self._stubs:
+            self._stubs['update_group'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/UpdateGroup',
+                request_serializer=error_group_service.UpdateGroupRequest.serialize,
+                response_deserializer=common.ErrorGroup.deserialize,
+            )
+        return self._stubs['update_group']
+
+    def close(self):
+        return self.grpc_channel.close()
+
+
+__all__ = (
+    'ErrorGroupServiceGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
new file mode 100644
index 00000000..e45b4ddb
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
@@ -0,0 +1,414 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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
+import grpc  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # 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 path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from requests import __version__ as requests_version
+import dataclasses
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_group_service
+
+from .base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=requests_version,
+)
+
+
+class ErrorGroupServiceRestInterceptor:
+    """Interceptor for ErrorGroupService.
+
+    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 ErrorGroupServiceRestTransport.
+
+    .. code-block:: python
+        class MyCustomErrorGroupServiceInterceptor(ErrorGroupServiceRestInterceptor):
+            def pre_get_group(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_get_group(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_update_group(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_update_group(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = ErrorGroupServiceRestTransport(interceptor=MyCustomErrorGroupServiceInterceptor())
+        client = ErrorGroupServiceClient(transport=transport)
+
+
+    """
+    def pre_get_group(self, request: error_group_service.GetGroupRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_group_service.GetGroupRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for get_group
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the ErrorGroupService server.
+        """
+        return request, metadata
+
+    def post_get_group(self, response: common.ErrorGroup) -> common.ErrorGroup:
+        """Post-rpc interceptor for get_group
+
+        Override in a subclass to manipulate the response
+        after it is returned by the ErrorGroupService server but before
+        it is returned to user code.
+        """
+        return response
+    def pre_update_group(self, request: error_group_service.UpdateGroupRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_group_service.UpdateGroupRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for update_group
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the ErrorGroupService server.
+        """
+        return request, metadata
+
+    def post_update_group(self, response: common.ErrorGroup) -> common.ErrorGroup:
+        """Post-rpc interceptor for update_group
+
+        Override in a subclass to manipulate the response
+        after it is returned by the ErrorGroupService server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class ErrorGroupServiceRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: ErrorGroupServiceRestInterceptor
+
+
+class ErrorGroupServiceRestTransport(ErrorGroupServiceTransport):
+    """REST backend transport for ErrorGroupService.
+
+    Service for retrieving and updating individual error groups.
+
+    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 = 'clouderrorreporting.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[ErrorGroupServiceRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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
+        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
+        )
+        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 ErrorGroupServiceRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    class _GetGroup(ErrorGroupServiceRestStub):
+        def __hash__(self):
+            return hash("GetGroup")
+
+        __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}
+
+        def __call__(self,
+                request: error_group_service.GetGroupRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> common.ErrorGroup:
+            r"""Call the get group method over HTTP.
+
+            Args:
+                request (~.error_group_service.GetGroupRequest):
+                    The request object. A request to return an individual
+                group.
+                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:
+                ~.common.ErrorGroup:
+                    Description of a group of similar
+                error events.
+
+            """
+
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v1beta1/{group_name=projects/*/groups/*}',
+            },
+            ]
+            request, metadata = self._interceptor.pre_get_group(request, metadata)
+            pb_request = error_group_service.GetGroupRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+
+            # Jsonify the query params
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                including_default_value_fields=False,
+                use_integers_for_enums=True,
+            ))
+            query_params.update(self._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+
+            # Send the request
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(self._session, method)(
+                "{host}{uri}".format(host=self._host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+
+            # 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 = common.ErrorGroup()
+            pb_resp = common.ErrorGroup.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_get_group(resp)
+            return resp
+
+    class _UpdateGroup(ErrorGroupServiceRestStub):
+        def __hash__(self):
+            return hash("UpdateGroup")
+
+        __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}
+
+        def __call__(self,
+                request: error_group_service.UpdateGroupRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> common.ErrorGroup:
+            r"""Call the update group method over HTTP.
+
+            Args:
+                request (~.error_group_service.UpdateGroupRequest):
+                    The request object. A request to replace the existing
+                data for the given group.
+                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:
+                ~.common.ErrorGroup:
+                    Description of a group of similar
+                error events.
+
+            """
+
+            http_options: List[Dict[str, str]] = [{
+                'method': 'put',
+                'uri': '/v1beta1/{group.name=projects/*/groups/*}',
+                'body': 'group',
+            },
+            ]
+            request, metadata = self._interceptor.pre_update_group(request, metadata)
+            pb_request = error_group_service.UpdateGroupRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                including_default_value_fields=False,
+                use_integers_for_enums=True
+            )
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+
+            # Jsonify the query params
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                including_default_value_fields=False,
+                use_integers_for_enums=True,
+            ))
+            query_params.update(self._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+
+            # Send the request
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(self._session, method)(
+                "{host}{uri}".format(host=self._host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=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 = common.ErrorGroup()
+            pb_resp = common.ErrorGroup.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_update_group(resp)
+            return resp
+
+    @property
+    def get_group(self) -> Callable[
+            [error_group_service.GetGroupRequest],
+            common.ErrorGroup]:
+        # 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._GetGroup(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def update_group(self) -> Callable[
+            [error_group_service.UpdateGroupRequest],
+            common.ErrorGroup]:
+        # 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._UpdateGroup(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'ErrorGroupServiceRestTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
new file mode 100644
index 00000000..5bad8b31
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ErrorStatsServiceClient
+from .async_client import ErrorStatsServiceAsyncClient
+
+__all__ = (
+    'ErrorStatsServiceClient',
+    'ErrorStatsServiceAsyncClient',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
new file mode 100644
index 00000000..85817610
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
@@ -0,0 +1,569 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 functools
+import re
+from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.errorreporting_v1beta1 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 as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+from google.cloud.errorreporting_v1beta1.services.error_stats_service import pagers
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_stats_service
+from .transports.base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import ErrorStatsServiceGrpcAsyncIOTransport
+from .client import ErrorStatsServiceClient
+
+
+class ErrorStatsServiceAsyncClient:
+    """An API for retrieving and managing error statistics as well
+    as data for individual events.
+    """
+
+    _client: ErrorStatsServiceClient
+
+    DEFAULT_ENDPOINT = ErrorStatsServiceClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = ErrorStatsServiceClient.DEFAULT_MTLS_ENDPOINT
+
+    error_group_path = staticmethod(ErrorStatsServiceClient.error_group_path)
+    parse_error_group_path = staticmethod(ErrorStatsServiceClient.parse_error_group_path)
+    common_billing_account_path = staticmethod(ErrorStatsServiceClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(ErrorStatsServiceClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(ErrorStatsServiceClient.common_folder_path)
+    parse_common_folder_path = staticmethod(ErrorStatsServiceClient.parse_common_folder_path)
+    common_organization_path = staticmethod(ErrorStatsServiceClient.common_organization_path)
+    parse_common_organization_path = staticmethod(ErrorStatsServiceClient.parse_common_organization_path)
+    common_project_path = staticmethod(ErrorStatsServiceClient.common_project_path)
+    parse_common_project_path = staticmethod(ErrorStatsServiceClient.parse_common_project_path)
+    common_location_path = staticmethod(ErrorStatsServiceClient.common_location_path)
+    parse_common_location_path = staticmethod(ErrorStatsServiceClient.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:
+            ErrorStatsServiceAsyncClient: The constructed client.
+        """
+        return ErrorStatsServiceClient.from_service_account_info.__func__(ErrorStatsServiceAsyncClient, 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:
+            ErrorStatsServiceAsyncClient: The constructed client.
+        """
+        return ErrorStatsServiceClient.from_service_account_file.__func__(ErrorStatsServiceAsyncClient, 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 ErrorStatsServiceClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> ErrorStatsServiceTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ErrorStatsServiceTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    get_transport_class = functools.partial(type(ErrorStatsServiceClient).get_transport_class, type(ErrorStatsServiceClient))
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Union[str, ErrorStatsServiceTransport] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the error stats service 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 (Union[str, ~.ErrorStatsServiceTransport]): The
+                transport to use. If set to None, a transport is chosen
+                automatically.
+            client_options (ClientOptions): Custom options for the client. It
+                won't take effect if a ``transport`` instance is provided.
+                (1) The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
+                environment variable can also be used to override the endpoint:
+                "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). However, the ``api_endpoint`` property takes
+                precedence if provided.
+                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide client certificate for mutual TLS 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.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = ErrorStatsServiceClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def list_group_stats(self,
+            request: Optional[Union[error_stats_service.ListGroupStatsRequest, dict]] = None,
+            *,
+            project_name: Optional[str] = None,
+            time_range: Optional[error_stats_service.QueryTimeRange] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListGroupStatsAsyncPager:
+        r"""Lists the specified groups.
+
+        .. 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 errorreporting_v1beta1
+
+            async def sample_list_group_stats():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.ListGroupStatsRequest(
+                    project_name="project_name_value",
+                )
+
+                # Make the request
+                page_result = client.list_group_stats(request=request)
+
+                # Handle the response
+                async for response in page_result:
+                    print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.ListGroupStatsRequest, dict]]):
+                The request object. Specifies a set of ``ErrorGroupStats`` to return.
+            project_name (:class:`str`):
+                Required. The resource name of the Google Cloud Platform
+                project. Written as ``projects/{projectID}`` or
+                ``projects/{projectNumber}``, where ``{projectID}`` and
+                ``{projectNumber}`` can be found in the `Google Cloud
+                Console <https://support.google.com/cloud/answer/6158840>`__.
+
+                Examples: ``projects/my-project-123``,
+                ``projects/5551234``.
+
+                This corresponds to the ``project_name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            time_range (:class:`google.cloud.errorreporting_v1beta1.types.QueryTimeRange`):
+                Optional. List data for the given time range. If not
+                set, a default time range is used. The field
+                time_range_begin in the response will specify the
+                beginning of this time range. Only ErrorGroupStats with
+                a non-zero count in the given time range are returned,
+                unless the request contains an explicit group_id list.
+                If a group_id list is given, also ErrorGroupStats with
+                zero occurrences are returned.
+
+                This corresponds to the ``time_range`` 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.errorreporting_v1beta1.services.error_stats_service.pagers.ListGroupStatsAsyncPager:
+                Contains a set of requested error
+                group stats.
+                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([project_name, time_range])
+        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.")
+
+        request = error_stats_service.ListGroupStatsRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if project_name is not None:
+            request.project_name = project_name
+        if time_range is not None:
+            request.time_range = time_range
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = gapic_v1.method_async.wrap_method(
+            self._client._transport.list_group_stats,
+            default_timeout=None,
+            client_info=DEFAULT_CLIENT_INFO,
+        )
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("project_name", request.project_name),
+            )),
+        )
+
+        # 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.ListGroupStatsAsyncPager(
+            method=rpc,
+            request=request,
+            response=response,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def list_events(self,
+            request: Optional[Union[error_stats_service.ListEventsRequest, dict]] = None,
+            *,
+            project_name: Optional[str] = None,
+            group_id: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListEventsAsyncPager:
+        r"""Lists the specified events.
+
+        .. 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 errorreporting_v1beta1
+
+            async def sample_list_events():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.ListEventsRequest(
+                    project_name="project_name_value",
+                    group_id="group_id_value",
+                )
+
+                # Make the request
+                page_result = client.list_events(request=request)
+
+                # Handle the response
+                async for response in page_result:
+                    print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.ListEventsRequest, dict]]):
+                The request object. Specifies a set of error events to
+                return.
+            project_name (:class:`str`):
+                Required. The resource name of the Google Cloud Platform
+                project. Written as ``projects/{projectID}``, where
+                ``{projectID}`` is the `Google Cloud Platform project
+                ID <https://support.google.com/cloud/answer/6158840>`__.
+
+                Example: ``projects/my-project-123``.
+
+                This corresponds to the ``project_name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            group_id (:class:`str`):
+                Required. The group for which events
+                shall be returned.
+
+                This corresponds to the ``group_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.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListEventsAsyncPager:
+                Contains a set of requested error
+                events.
+                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([project_name, group_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.")
+
+        request = error_stats_service.ListEventsRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if project_name is not None:
+            request.project_name = project_name
+        if group_id is not None:
+            request.group_id = group_id
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = gapic_v1.method_async.wrap_method(
+            self._client._transport.list_events,
+            default_timeout=None,
+            client_info=DEFAULT_CLIENT_INFO,
+        )
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("project_name", request.project_name),
+            )),
+        )
+
+        # 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.ListEventsAsyncPager(
+            method=rpc,
+            request=request,
+            response=response,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def delete_events(self,
+            request: Optional[Union[error_stats_service.DeleteEventsRequest, dict]] = None,
+            *,
+            project_name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> error_stats_service.DeleteEventsResponse:
+        r"""Deletes all error events of 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 errorreporting_v1beta1
+
+            async def sample_delete_events():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.DeleteEventsRequest(
+                    project_name="project_name_value",
+                )
+
+                # Make the request
+                response = await client.delete_events(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.DeleteEventsRequest, dict]]):
+                The request object. Deletes all events in the project.
+            project_name (:class:`str`):
+                Required. The resource name of the Google Cloud Platform
+                project. Written as ``projects/{projectID}``, where
+                ``{projectID}`` is the `Google Cloud Platform project
+                ID <https://support.google.com/cloud/answer/6158840>`__.
+
+                Example: ``projects/my-project-123``.
+
+                This corresponds to the ``project_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.errorreporting_v1beta1.types.DeleteEventsResponse:
+                Response message for deleting error
+                events.
+
+        """
+        # 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([project_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.")
+
+        request = error_stats_service.DeleteEventsRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if project_name is not None:
+            request.project_name = project_name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = gapic_v1.method_async.wrap_method(
+            self._client._transport.delete_events,
+            default_timeout=None,
+            client_info=DEFAULT_CLIENT_INFO,
+        )
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("project_name", request.project_name),
+            )),
+        )
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "ErrorStatsServiceAsyncClient":
+        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__ = (
+    "ErrorStatsServiceAsyncClient",
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
new file mode 100644
index 00000000..ea6d6a14
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
@@ -0,0 +1,773 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+
+from google.cloud.errorreporting_v1beta1 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]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+from google.cloud.errorreporting_v1beta1.services.error_stats_service import pagers
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_stats_service
+from .transports.base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import ErrorStatsServiceGrpcTransport
+from .transports.grpc_asyncio import ErrorStatsServiceGrpcAsyncIOTransport
+from .transports.rest import ErrorStatsServiceRestTransport
+
+
+class ErrorStatsServiceClientMeta(type):
+    """Metaclass for the ErrorStatsService 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[ErrorStatsServiceTransport]]
+    _transport_registry["grpc"] = ErrorStatsServiceGrpcTransport
+    _transport_registry["grpc_asyncio"] = ErrorStatsServiceGrpcAsyncIOTransport
+    _transport_registry["rest"] = ErrorStatsServiceRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[ErrorStatsServiceTransport]:
+        """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 ErrorStatsServiceClient(metaclass=ErrorStatsServiceClientMeta):
+    """An API for retrieving and managing error statistics as well
+    as data for individual events.
+    """
+
+    @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")
+
+    DEFAULT_ENDPOINT = "clouderrorreporting.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    @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:
+            ErrorStatsServiceClient: 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:
+            ErrorStatsServiceClient: 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) -> ErrorStatsServiceTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ErrorStatsServiceTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @staticmethod
+    def error_group_path(project: str,group: str,) -> str:
+        """Returns a fully-qualified error_group string."""
+        return "projects/{project}/groups/{group}".format(project=project, group=group, )
+
+    @staticmethod
+    def parse_error_group_path(path: str) -> Dict[str,str]:
+        """Parses a error_group path into its component segments."""
+        m = re.match(r"^projects/(?P<project>.+?)/groups/(?P<group>.+?)$", 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):
+        """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.
+        """
+        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
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, ErrorStatsServiceTransport]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the error stats service 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 (Union[str, ErrorStatsServiceTransport]): The
+                transport to use. 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. It won't take effect if a ``transport`` instance is provided.
+                (1) The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
+                environment variable can also be used to override the endpoint:
+                "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). However, the ``api_endpoint`` property takes
+                precedence if provided.
+                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide client certificate for mutual TLS 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.
+            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.
+        """
+        if isinstance(client_options, dict):
+            client_options = client_options_lib.from_dict(client_options)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        client_options = cast(client_options_lib.ClientOptions, client_options)
+
+        api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options)
+
+        api_key_value = getattr(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.
+        if isinstance(transport, ErrorStatsServiceTransport):
+            # transport is a ErrorStatsServiceTransport instance.
+            if credentials or client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = transport
+        else:
+            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 = type(self).get_transport_class(transport)
+            self._transport = Transport(
+                credentials=credentials,
+                credentials_file=client_options.credentials_file,
+                host=api_endpoint,
+                scopes=client_options.scopes,
+                client_cert_source_for_mtls=client_cert_source_func,
+                quota_project_id=client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=client_options.api_audience,
+            )
+
+    def list_group_stats(self,
+            request: Optional[Union[error_stats_service.ListGroupStatsRequest, dict]] = None,
+            *,
+            project_name: Optional[str] = None,
+            time_range: Optional[error_stats_service.QueryTimeRange] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListGroupStatsPager:
+        r"""Lists the specified groups.
+
+        .. 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 errorreporting_v1beta1
+
+            def sample_list_group_stats():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorStatsServiceClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.ListGroupStatsRequest(
+                    project_name="project_name_value",
+                )
+
+                # Make the request
+                page_result = client.list_group_stats(request=request)
+
+                # Handle the response
+                for response in page_result:
+                    print(response)
+
+        Args:
+            request (Union[google.cloud.errorreporting_v1beta1.types.ListGroupStatsRequest, dict]):
+                The request object. Specifies a set of ``ErrorGroupStats`` to return.
+            project_name (str):
+                Required. The resource name of the Google Cloud Platform
+                project. Written as ``projects/{projectID}`` or
+                ``projects/{projectNumber}``, where ``{projectID}`` and
+                ``{projectNumber}`` can be found in the `Google Cloud
+                Console <https://support.google.com/cloud/answer/6158840>`__.
+
+                Examples: ``projects/my-project-123``,
+                ``projects/5551234``.
+
+                This corresponds to the ``project_name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            time_range (google.cloud.errorreporting_v1beta1.types.QueryTimeRange):
+                Optional. List data for the given time range. If not
+                set, a default time range is used. The field
+                time_range_begin in the response will specify the
+                beginning of this time range. Only ErrorGroupStats with
+                a non-zero count in the given time range are returned,
+                unless the request contains an explicit group_id list.
+                If a group_id list is given, also ErrorGroupStats with
+                zero occurrences are returned.
+
+                This corresponds to the ``time_range`` 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.errorreporting_v1beta1.services.error_stats_service.pagers.ListGroupStatsPager:
+                Contains a set of requested error
+                group stats.
+                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([project_name, time_range])
+        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.')
+
+        # Minor optimization to avoid making a copy if the user passes
+        # in a error_stats_service.ListGroupStatsRequest.
+        # There's no risk of modifying the input as we've already verified
+        # there are no flattened fields.
+        if not isinstance(request, error_stats_service.ListGroupStatsRequest):
+            request = error_stats_service.ListGroupStatsRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if project_name is not None:
+                request.project_name = project_name
+            if time_range is not None:
+                request.time_range = time_range
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_group_stats]
+
+         # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("project_name", request.project_name),
+            )),
+        )
+
+        # 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.ListGroupStatsPager(
+            method=rpc,
+            request=request,
+            response=response,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def list_events(self,
+            request: Optional[Union[error_stats_service.ListEventsRequest, dict]] = None,
+            *,
+            project_name: Optional[str] = None,
+            group_id: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> pagers.ListEventsPager:
+        r"""Lists the specified events.
+
+        .. 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 errorreporting_v1beta1
+
+            def sample_list_events():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorStatsServiceClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.ListEventsRequest(
+                    project_name="project_name_value",
+                    group_id="group_id_value",
+                )
+
+                # Make the request
+                page_result = client.list_events(request=request)
+
+                # Handle the response
+                for response in page_result:
+                    print(response)
+
+        Args:
+            request (Union[google.cloud.errorreporting_v1beta1.types.ListEventsRequest, dict]):
+                The request object. Specifies a set of error events to
+                return.
+            project_name (str):
+                Required. The resource name of the Google Cloud Platform
+                project. Written as ``projects/{projectID}``, where
+                ``{projectID}`` is the `Google Cloud Platform project
+                ID <https://support.google.com/cloud/answer/6158840>`__.
+
+                Example: ``projects/my-project-123``.
+
+                This corresponds to the ``project_name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            group_id (str):
+                Required. The group for which events
+                shall be returned.
+
+                This corresponds to the ``group_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.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListEventsPager:
+                Contains a set of requested error
+                events.
+                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([project_name, group_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.')
+
+        # Minor optimization to avoid making a copy if the user passes
+        # in a error_stats_service.ListEventsRequest.
+        # There's no risk of modifying the input as we've already verified
+        # there are no flattened fields.
+        if not isinstance(request, error_stats_service.ListEventsRequest):
+            request = error_stats_service.ListEventsRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if project_name is not None:
+                request.project_name = project_name
+            if group_id is not None:
+                request.group_id = group_id
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.list_events]
+
+         # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("project_name", request.project_name),
+            )),
+        )
+
+        # 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.ListEventsPager(
+            method=rpc,
+            request=request,
+            response=response,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def delete_events(self,
+            request: Optional[Union[error_stats_service.DeleteEventsRequest, dict]] = None,
+            *,
+            project_name: Optional[str] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> error_stats_service.DeleteEventsResponse:
+        r"""Deletes all error events of 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 errorreporting_v1beta1
+
+            def sample_delete_events():
+                # Create a client
+                client = errorreporting_v1beta1.ErrorStatsServiceClient()
+
+                # Initialize request argument(s)
+                request = errorreporting_v1beta1.DeleteEventsRequest(
+                    project_name="project_name_value",
+                )
+
+                # Make the request
+                response = client.delete_events(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.errorreporting_v1beta1.types.DeleteEventsRequest, dict]):
+                The request object. Deletes all events in the project.
+            project_name (str):
+                Required. The resource name of the Google Cloud Platform
+                project. Written as ``projects/{projectID}``, where
+                ``{projectID}`` is the `Google Cloud Platform project
+                ID <https://support.google.com/cloud/answer/6158840>`__.
+
+                Example: ``projects/my-project-123``.
+
+                This corresponds to the ``project_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.errorreporting_v1beta1.types.DeleteEventsResponse:
+                Response message for deleting error
+                events.
+
+        """
+        # 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([project_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.')
+
+        # Minor optimization to avoid making a copy if the user passes
+        # in a error_stats_service.DeleteEventsRequest.
+        # There's no risk of modifying the input as we've already verified
+        # there are no flattened fields.
+        if not isinstance(request, error_stats_service.DeleteEventsRequest):
+            request = error_stats_service.DeleteEventsRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if project_name is not None:
+                request.project_name = project_name
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.delete_events]
+
+         # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("project_name", request.project_name),
+            )),
+        )
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "ErrorStatsServiceClient":
+        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()
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "ErrorStatsServiceClient",
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
new file mode 100644
index 00000000..58762997
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
@@ -0,0 +1,261 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator
+
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_stats_service
+
+
+class ListGroupStatsPager:
+    """A pager for iterating through ``list_group_stats`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse` object, and
+    provides an ``__iter__`` method to iterate through its
+    ``error_group_stats`` field.
+
+    If there are more pages, the ``__iter__`` method will make additional
+    ``ListGroupStats`` requests and continue to iterate
+    through the ``error_group_stats`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse`
+    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[..., error_stats_service.ListGroupStatsResponse],
+            request: error_stats_service.ListGroupStatsRequest,
+            response: error_stats_service.ListGroupStatsResponse,
+            *,
+            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.errorreporting_v1beta1.types.ListGroupStatsRequest):
+                The initial request object.
+            response (google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse):
+                The initial response object.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = error_stats_service.ListGroupStatsRequest(request)
+        self._response = response
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    def pages(self) -> Iterator[error_stats_service.ListGroupStatsResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = self._method(self._request, metadata=self._metadata)
+            yield self._response
+
+    def __iter__(self) -> Iterator[error_stats_service.ErrorGroupStats]:
+        for page in self.pages:
+            yield from page.error_group_stats
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
+
+
+class ListGroupStatsAsyncPager:
+    """A pager for iterating through ``list_group_stats`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse` object, and
+    provides an ``__aiter__`` method to iterate through its
+    ``error_group_stats`` field.
+
+    If there are more pages, the ``__aiter__`` method will make additional
+    ``ListGroupStats`` requests and continue to iterate
+    through the ``error_group_stats`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse`
+    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[error_stats_service.ListGroupStatsResponse]],
+            request: error_stats_service.ListGroupStatsRequest,
+            response: error_stats_service.ListGroupStatsResponse,
+            *,
+            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.errorreporting_v1beta1.types.ListGroupStatsRequest):
+                The initial request object.
+            response (google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse):
+                The initial response object.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = error_stats_service.ListGroupStatsRequest(request)
+        self._response = response
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    async def pages(self) -> AsyncIterator[error_stats_service.ListGroupStatsResponse]:
+        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, metadata=self._metadata)
+            yield self._response
+    def __aiter__(self) -> AsyncIterator[error_stats_service.ErrorGroupStats]:
+        async def async_generator():
+            async for page in self.pages:
+                for response in page.error_group_stats:
+                    yield response
+
+        return async_generator()
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
+
+
+class ListEventsPager:
+    """A pager for iterating through ``list_events`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.errorreporting_v1beta1.types.ListEventsResponse` object, and
+    provides an ``__iter__`` method to iterate through its
+    ``error_events`` field.
+
+    If there are more pages, the ``__iter__`` method will make additional
+    ``ListEvents`` requests and continue to iterate
+    through the ``error_events`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.errorreporting_v1beta1.types.ListEventsResponse`
+    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[..., error_stats_service.ListEventsResponse],
+            request: error_stats_service.ListEventsRequest,
+            response: error_stats_service.ListEventsResponse,
+            *,
+            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.errorreporting_v1beta1.types.ListEventsRequest):
+                The initial request object.
+            response (google.cloud.errorreporting_v1beta1.types.ListEventsResponse):
+                The initial response object.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = error_stats_service.ListEventsRequest(request)
+        self._response = response
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    def pages(self) -> Iterator[error_stats_service.ListEventsResponse]:
+        yield self._response
+        while self._response.next_page_token:
+            self._request.page_token = self._response.next_page_token
+            self._response = self._method(self._request, metadata=self._metadata)
+            yield self._response
+
+    def __iter__(self) -> Iterator[common.ErrorEvent]:
+        for page in self.pages:
+            yield from page.error_events
+
+    def __repr__(self) -> str:
+        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
+
+
+class ListEventsAsyncPager:
+    """A pager for iterating through ``list_events`` requests.
+
+    This class thinly wraps an initial
+    :class:`google.cloud.errorreporting_v1beta1.types.ListEventsResponse` object, and
+    provides an ``__aiter__`` method to iterate through its
+    ``error_events`` field.
+
+    If there are more pages, the ``__aiter__`` method will make additional
+    ``ListEvents`` requests and continue to iterate
+    through the ``error_events`` field on the
+    corresponding responses.
+
+    All the usual :class:`google.cloud.errorreporting_v1beta1.types.ListEventsResponse`
+    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[error_stats_service.ListEventsResponse]],
+            request: error_stats_service.ListEventsRequest,
+            response: error_stats_service.ListEventsResponse,
+            *,
+            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.errorreporting_v1beta1.types.ListEventsRequest):
+                The initial request object.
+            response (google.cloud.errorreporting_v1beta1.types.ListEventsResponse):
+                The initial response object.
+            metadata (Sequence[Tuple[str, str]]): Strings which should be
+                sent along with the request as metadata.
+        """
+        self._method = method
+        self._request = error_stats_service.ListEventsRequest(request)
+        self._response = response
+        self._metadata = metadata
+
+    def __getattr__(self, name: str) -> Any:
+        return getattr(self._response, name)
+
+    @property
+    async def pages(self) -> AsyncIterator[error_stats_service.ListEventsResponse]:
+        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, metadata=self._metadata)
+            yield self._response
+    def __aiter__(self) -> AsyncIterator[common.ErrorEvent]:
+        async def async_generator():
+            async for page in self.pages:
+                for response in page.error_events:
+                    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/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
new file mode 100644
index 00000000..e09a9aad
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ErrorStatsServiceTransport
+from .grpc import ErrorStatsServiceGrpcTransport
+from .grpc_asyncio import ErrorStatsServiceGrpcAsyncIOTransport
+from .rest import ErrorStatsServiceRestTransport
+from .rest import ErrorStatsServiceRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[ErrorStatsServiceTransport]]
+_transport_registry['grpc'] = ErrorStatsServiceGrpcTransport
+_transport_registry['grpc_asyncio'] = ErrorStatsServiceGrpcAsyncIOTransport
+_transport_registry['rest'] = ErrorStatsServiceRestTransport
+
+__all__ = (
+    'ErrorStatsServiceTransport',
+    'ErrorStatsServiceGrpcTransport',
+    'ErrorStatsServiceGrpcAsyncIOTransport',
+    'ErrorStatsServiceRestTransport',
+    'ErrorStatsServiceRestInterceptor',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
new file mode 100644
index 00000000..1280f57e
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
@@ -0,0 +1,176 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1 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.errorreporting_v1beta1.types import error_stats_service
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class ErrorStatsServiceTransport(abc.ABC):
+    """Abstract transport class for ErrorStatsService."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'clouderrorreporting.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.
+            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 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:
+            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
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.list_group_stats: gapic_v1.method.wrap_method(
+                self.list_group_stats,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.list_events: gapic_v1.method.wrap_method(
+                self.list_events,
+                default_timeout=None,
+                client_info=client_info,
+            ),
+            self.delete_events: gapic_v1.method.wrap_method(
+                self.delete_events,
+                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 list_group_stats(self) -> Callable[
+            [error_stats_service.ListGroupStatsRequest],
+            Union[
+                error_stats_service.ListGroupStatsResponse,
+                Awaitable[error_stats_service.ListGroupStatsResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def list_events(self) -> Callable[
+            [error_stats_service.ListEventsRequest],
+            Union[
+                error_stats_service.ListEventsResponse,
+                Awaitable[error_stats_service.ListEventsResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def delete_events(self) -> Callable[
+            [error_stats_service.DeleteEventsRequest],
+            Union[
+                error_stats_service.DeleteEventsResponse,
+                Awaitable[error_stats_service.DeleteEventsResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'ErrorStatsServiceTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
new file mode 100644
index 00000000..44a52a1e
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
@@ -0,0 +1,317 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1.types import error_stats_service
+from .base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO
+
+
+class ErrorStatsServiceGrpcTransport(ErrorStatsServiceTransport):
+    """gRPC backend transport for ErrorStatsService.
+
+    An API for retrieving and managing error statistics as well
+    as data for individual events.
+
+    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 = 'clouderrorreporting.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[grpc.Channel] = None,
+            api_mtls_endpoint: Optional[str] = None,
+            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
+            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            quota_project_id: Optional[str] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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 ``channel`` 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 ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            channel (Optional[grpc.Channel]): A ``Channel`` instance through
+                which to make calls.
+            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 ``channel`` 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 ``channel`` 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 channel:
+            # Ignore credentials if a channel was passed.
+            credentials = False
+            # 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:
+            self._grpc_channel = type(self).create_channel(
+                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 = 'clouderrorreporting.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 list_group_stats(self) -> Callable[
+            [error_stats_service.ListGroupStatsRequest],
+            error_stats_service.ListGroupStatsResponse]:
+        r"""Return a callable for the list group stats method over gRPC.
+
+        Lists the specified groups.
+
+        Returns:
+            Callable[[~.ListGroupStatsRequest],
+                    ~.ListGroupStatsResponse]:
+                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_group_stats' not in self._stubs:
+            self._stubs['list_group_stats'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListGroupStats',
+                request_serializer=error_stats_service.ListGroupStatsRequest.serialize,
+                response_deserializer=error_stats_service.ListGroupStatsResponse.deserialize,
+            )
+        return self._stubs['list_group_stats']
+
+    @property
+    def list_events(self) -> Callable[
+            [error_stats_service.ListEventsRequest],
+            error_stats_service.ListEventsResponse]:
+        r"""Return a callable for the list events method over gRPC.
+
+        Lists the specified events.
+
+        Returns:
+            Callable[[~.ListEventsRequest],
+                    ~.ListEventsResponse]:
+                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_events' not in self._stubs:
+            self._stubs['list_events'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListEvents',
+                request_serializer=error_stats_service.ListEventsRequest.serialize,
+                response_deserializer=error_stats_service.ListEventsResponse.deserialize,
+            )
+        return self._stubs['list_events']
+
+    @property
+    def delete_events(self) -> Callable[
+            [error_stats_service.DeleteEventsRequest],
+            error_stats_service.DeleteEventsResponse]:
+        r"""Return a callable for the delete events method over gRPC.
+
+        Deletes all error events of a given project.
+
+        Returns:
+            Callable[[~.DeleteEventsRequest],
+                    ~.DeleteEventsResponse]:
+                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_events' not in self._stubs:
+            self._stubs['delete_events'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/DeleteEvents',
+                request_serializer=error_stats_service.DeleteEventsRequest.serialize,
+                response_deserializer=error_stats_service.DeleteEventsResponse.deserialize,
+            )
+        return self._stubs['delete_events']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'ErrorStatsServiceGrpcTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
new file mode 100644
index 00000000..024003cb
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
@@ -0,0 +1,316 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+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.errorreporting_v1beta1.types import error_stats_service
+from .base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO
+from .grpc import ErrorStatsServiceGrpcTransport
+
+
+class ErrorStatsServiceGrpcAsyncIOTransport(ErrorStatsServiceTransport):
+    """gRPC AsyncIO backend transport for ErrorStatsService.
+
+    An API for retrieving and managing error statistics as well
+    as data for individual events.
+
+    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 = 'clouderrorreporting.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`.
+                This argument is ignored if ``channel`` 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`.
+            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 = 'clouderrorreporting.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[aio.Channel] = None,
+            api_mtls_endpoint: Optional[str] = None,
+            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
+            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            quota_project_id: Optional[str] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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 ``channel`` 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 ``channel`` 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[aio.Channel]): A ``Channel`` instance through
+                which to make calls.
+            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 ``channel`` 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 ``channel`` 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 channel:
+            # Ignore credentials if a channel was passed.
+            credentials = False
+            # 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:
+            self._grpc_channel = type(self).create_channel(
+                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)
+
+    @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 list_group_stats(self) -> Callable[
+            [error_stats_service.ListGroupStatsRequest],
+            Awaitable[error_stats_service.ListGroupStatsResponse]]:
+        r"""Return a callable for the list group stats method over gRPC.
+
+        Lists the specified groups.
+
+        Returns:
+            Callable[[~.ListGroupStatsRequest],
+                    Awaitable[~.ListGroupStatsResponse]]:
+                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_group_stats' not in self._stubs:
+            self._stubs['list_group_stats'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListGroupStats',
+                request_serializer=error_stats_service.ListGroupStatsRequest.serialize,
+                response_deserializer=error_stats_service.ListGroupStatsResponse.deserialize,
+            )
+        return self._stubs['list_group_stats']
+
+    @property
+    def list_events(self) -> Callable[
+            [error_stats_service.ListEventsRequest],
+            Awaitable[error_stats_service.ListEventsResponse]]:
+        r"""Return a callable for the list events method over gRPC.
+
+        Lists the specified events.
+
+        Returns:
+            Callable[[~.ListEventsRequest],
+                    Awaitable[~.ListEventsResponse]]:
+                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_events' not in self._stubs:
+            self._stubs['list_events'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListEvents',
+                request_serializer=error_stats_service.ListEventsRequest.serialize,
+                response_deserializer=error_stats_service.ListEventsResponse.deserialize,
+            )
+        return self._stubs['list_events']
+
+    @property
+    def delete_events(self) -> Callable[
+            [error_stats_service.DeleteEventsRequest],
+            Awaitable[error_stats_service.DeleteEventsResponse]]:
+        r"""Return a callable for the delete events method over gRPC.
+
+        Deletes all error events of a given project.
+
+        Returns:
+            Callable[[~.DeleteEventsRequest],
+                    Awaitable[~.DeleteEventsResponse]]:
+                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_events' not in self._stubs:
+            self._stubs['delete_events'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/DeleteEvents',
+                request_serializer=error_stats_service.DeleteEventsRequest.serialize,
+                response_deserializer=error_stats_service.DeleteEventsResponse.deserialize,
+            )
+        return self._stubs['delete_events']
+
+    def close(self):
+        return self.grpc_channel.close()
+
+
+__all__ = (
+    'ErrorStatsServiceGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
new file mode 100644
index 00000000..9ba0be6f
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
@@ -0,0 +1,516 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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
+import grpc  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # 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 path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from requests import __version__ as requests_version
+import dataclasses
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+
+from google.cloud.errorreporting_v1beta1.types import error_stats_service
+
+from .base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=requests_version,
+)
+
+
+class ErrorStatsServiceRestInterceptor:
+    """Interceptor for ErrorStatsService.
+
+    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 ErrorStatsServiceRestTransport.
+
+    .. code-block:: python
+        class MyCustomErrorStatsServiceInterceptor(ErrorStatsServiceRestInterceptor):
+            def pre_delete_events(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_delete_events(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_list_events(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_list_events(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+            def pre_list_group_stats(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_list_group_stats(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = ErrorStatsServiceRestTransport(interceptor=MyCustomErrorStatsServiceInterceptor())
+        client = ErrorStatsServiceClient(transport=transport)
+
+
+    """
+    def pre_delete_events(self, request: error_stats_service.DeleteEventsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_stats_service.DeleteEventsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for delete_events
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the ErrorStatsService server.
+        """
+        return request, metadata
+
+    def post_delete_events(self, response: error_stats_service.DeleteEventsResponse) -> error_stats_service.DeleteEventsResponse:
+        """Post-rpc interceptor for delete_events
+
+        Override in a subclass to manipulate the response
+        after it is returned by the ErrorStatsService server but before
+        it is returned to user code.
+        """
+        return response
+    def pre_list_events(self, request: error_stats_service.ListEventsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_stats_service.ListEventsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_events
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the ErrorStatsService server.
+        """
+        return request, metadata
+
+    def post_list_events(self, response: error_stats_service.ListEventsResponse) -> error_stats_service.ListEventsResponse:
+        """Post-rpc interceptor for list_events
+
+        Override in a subclass to manipulate the response
+        after it is returned by the ErrorStatsService server but before
+        it is returned to user code.
+        """
+        return response
+    def pre_list_group_stats(self, request: error_stats_service.ListGroupStatsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_stats_service.ListGroupStatsRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for list_group_stats
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the ErrorStatsService server.
+        """
+        return request, metadata
+
+    def post_list_group_stats(self, response: error_stats_service.ListGroupStatsResponse) -> error_stats_service.ListGroupStatsResponse:
+        """Post-rpc interceptor for list_group_stats
+
+        Override in a subclass to manipulate the response
+        after it is returned by the ErrorStatsService server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class ErrorStatsServiceRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: ErrorStatsServiceRestInterceptor
+
+
+class ErrorStatsServiceRestTransport(ErrorStatsServiceTransport):
+    """REST backend transport for ErrorStatsService.
+
+    An API for retrieving and managing error statistics as well
+    as data for individual events.
+
+    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 = 'clouderrorreporting.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[ErrorStatsServiceRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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
+        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
+        )
+        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 ErrorStatsServiceRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    class _DeleteEvents(ErrorStatsServiceRestStub):
+        def __hash__(self):
+            return hash("DeleteEvents")
+
+        __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}
+
+        def __call__(self,
+                request: error_stats_service.DeleteEventsRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> error_stats_service.DeleteEventsResponse:
+            r"""Call the delete events method over HTTP.
+
+            Args:
+                request (~.error_stats_service.DeleteEventsRequest):
+                    The request object. Deletes all events in the project.
+                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:
+                ~.error_stats_service.DeleteEventsResponse:
+                    Response message for deleting error
+                events.
+
+            """
+
+            http_options: List[Dict[str, str]] = [{
+                'method': 'delete',
+                'uri': '/v1beta1/{project_name=projects/*}/events',
+            },
+            ]
+            request, metadata = self._interceptor.pre_delete_events(request, metadata)
+            pb_request = error_stats_service.DeleteEventsRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+
+            # Jsonify the query params
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                including_default_value_fields=False,
+                use_integers_for_enums=True,
+            ))
+            query_params.update(self._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+
+            # Send the request
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(self._session, method)(
+                "{host}{uri}".format(host=self._host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+
+            # 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 = error_stats_service.DeleteEventsResponse()
+            pb_resp = error_stats_service.DeleteEventsResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_delete_events(resp)
+            return resp
+
+    class _ListEvents(ErrorStatsServiceRestStub):
+        def __hash__(self):
+            return hash("ListEvents")
+
+        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
+            "groupId" : "",        }
+
+        @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}
+
+        def __call__(self,
+                request: error_stats_service.ListEventsRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> error_stats_service.ListEventsResponse:
+            r"""Call the list events method over HTTP.
+
+            Args:
+                request (~.error_stats_service.ListEventsRequest):
+                    The request object. Specifies a set of error events to
+                return.
+                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:
+                ~.error_stats_service.ListEventsResponse:
+                    Contains a set of requested error
+                events.
+
+            """
+
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v1beta1/{project_name=projects/*}/events',
+            },
+            ]
+            request, metadata = self._interceptor.pre_list_events(request, metadata)
+            pb_request = error_stats_service.ListEventsRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+
+            # Jsonify the query params
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                including_default_value_fields=False,
+                use_integers_for_enums=True,
+            ))
+            query_params.update(self._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+
+            # Send the request
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(self._session, method)(
+                "{host}{uri}".format(host=self._host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+
+            # 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 = error_stats_service.ListEventsResponse()
+            pb_resp = error_stats_service.ListEventsResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_list_events(resp)
+            return resp
+
+    class _ListGroupStats(ErrorStatsServiceRestStub):
+        def __hash__(self):
+            return hash("ListGroupStats")
+
+        __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}
+
+        def __call__(self,
+                request: error_stats_service.ListGroupStatsRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> error_stats_service.ListGroupStatsResponse:
+            r"""Call the list group stats method over HTTP.
+
+            Args:
+                request (~.error_stats_service.ListGroupStatsRequest):
+                    The request object. Specifies a set of ``ErrorGroupStats`` to return.
+                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:
+                ~.error_stats_service.ListGroupStatsResponse:
+                    Contains a set of requested error
+                group stats.
+
+            """
+
+            http_options: List[Dict[str, str]] = [{
+                'method': 'get',
+                'uri': '/v1beta1/{project_name=projects/*}/groupStats',
+            },
+            ]
+            request, metadata = self._interceptor.pre_list_group_stats(request, metadata)
+            pb_request = error_stats_service.ListGroupStatsRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+
+            # Jsonify the query params
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                including_default_value_fields=False,
+                use_integers_for_enums=True,
+            ))
+            query_params.update(self._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+
+            # Send the request
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(self._session, method)(
+                "{host}{uri}".format(host=self._host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                )
+
+            # 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 = error_stats_service.ListGroupStatsResponse()
+            pb_resp = error_stats_service.ListGroupStatsResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_list_group_stats(resp)
+            return resp
+
+    @property
+    def delete_events(self) -> Callable[
+            [error_stats_service.DeleteEventsRequest],
+            error_stats_service.DeleteEventsResponse]:
+        # 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._DeleteEvents(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def list_events(self) -> Callable[
+            [error_stats_service.ListEventsRequest],
+            error_stats_service.ListEventsResponse]:
+        # 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._ListEvents(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def list_group_stats(self) -> Callable[
+            [error_stats_service.ListGroupStatsRequest],
+            error_stats_service.ListGroupStatsResponse]:
+        # 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._ListGroupStats(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'ErrorStatsServiceRestTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
new file mode 100644
index 00000000..96de16e3
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ReportErrorsServiceClient
+from .async_client import ReportErrorsServiceAsyncClient
+
+__all__ = (
+    'ReportErrorsServiceClient',
+    'ReportErrorsServiceAsyncClient',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
new file mode 100644
index 00000000..eac248f7
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
@@ -0,0 +1,327 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 functools
+import re
+from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
+
+from google.cloud.errorreporting_v1beta1 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 as retries
+from google.auth import credentials as ga_credentials   # type: ignore
+from google.oauth2 import service_account              # type: ignore
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+from google.cloud.errorreporting_v1beta1.types import report_errors_service
+from .transports.base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc_asyncio import ReportErrorsServiceGrpcAsyncIOTransport
+from .client import ReportErrorsServiceClient
+
+
+class ReportErrorsServiceAsyncClient:
+    """An API for reporting error events."""
+
+    _client: ReportErrorsServiceClient
+
+    DEFAULT_ENDPOINT = ReportErrorsServiceClient.DEFAULT_ENDPOINT
+    DEFAULT_MTLS_ENDPOINT = ReportErrorsServiceClient.DEFAULT_MTLS_ENDPOINT
+
+    common_billing_account_path = staticmethod(ReportErrorsServiceClient.common_billing_account_path)
+    parse_common_billing_account_path = staticmethod(ReportErrorsServiceClient.parse_common_billing_account_path)
+    common_folder_path = staticmethod(ReportErrorsServiceClient.common_folder_path)
+    parse_common_folder_path = staticmethod(ReportErrorsServiceClient.parse_common_folder_path)
+    common_organization_path = staticmethod(ReportErrorsServiceClient.common_organization_path)
+    parse_common_organization_path = staticmethod(ReportErrorsServiceClient.parse_common_organization_path)
+    common_project_path = staticmethod(ReportErrorsServiceClient.common_project_path)
+    parse_common_project_path = staticmethod(ReportErrorsServiceClient.parse_common_project_path)
+    common_location_path = staticmethod(ReportErrorsServiceClient.common_location_path)
+    parse_common_location_path = staticmethod(ReportErrorsServiceClient.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:
+            ReportErrorsServiceAsyncClient: The constructed client.
+        """
+        return ReportErrorsServiceClient.from_service_account_info.__func__(ReportErrorsServiceAsyncClient, 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:
+            ReportErrorsServiceAsyncClient: The constructed client.
+        """
+        return ReportErrorsServiceClient.from_service_account_file.__func__(ReportErrorsServiceAsyncClient, 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 ReportErrorsServiceClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
+
+    @property
+    def transport(self) -> ReportErrorsServiceTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ReportErrorsServiceTransport: The transport used by the client instance.
+        """
+        return self._client.transport
+
+    get_transport_class = functools.partial(type(ReportErrorsServiceClient).get_transport_class, type(ReportErrorsServiceClient))
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Union[str, ReportErrorsServiceTransport] = "grpc_asyncio",
+            client_options: Optional[ClientOptions] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the report errors service 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 (Union[str, ~.ReportErrorsServiceTransport]): The
+                transport to use. If set to None, a transport is chosen
+                automatically.
+            client_options (ClientOptions): Custom options for the client. It
+                won't take effect if a ``transport`` instance is provided.
+                (1) The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
+                environment variable can also be used to override the endpoint:
+                "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). However, the ``api_endpoint`` property takes
+                precedence if provided.
+                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide client certificate for mutual TLS 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.
+
+        Raises:
+            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
+                creation failed for any reason.
+        """
+        self._client = ReportErrorsServiceClient(
+            credentials=credentials,
+            transport=transport,
+            client_options=client_options,
+            client_info=client_info,
+
+        )
+
+    async def report_error_event(self,
+            request: Optional[Union[report_errors_service.ReportErrorEventRequest, dict]] = None,
+            *,
+            project_name: Optional[str] = None,
+            event: Optional[report_errors_service.ReportedErrorEvent] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> report_errors_service.ReportErrorEventResponse:
+        r"""Report an individual error event and record the event to a log.
+
+        This endpoint accepts **either** an OAuth token, **or** an `API
+        key <https://support.google.com/cloud/answer/6158862>`__ for
+        authentication. To use an API key, append it to the URL as the
+        value of a ``key`` parameter. For example:
+
+        ``POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456``
+
+        **Note:** `Error Reporting </error-reporting>`__ is a global
+        service built on Cloud Logging and doesn't analyze logs stored
+        in regional log buckets or logs routed to other Google Cloud
+        projects.
+
+        .. 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 errorreporting_v1beta1
+
+            async def sample_report_error_event():
+                # Create a client
+                client = errorreporting_v1beta1.ReportErrorsServiceAsyncClient()
+
+                # Initialize request argument(s)
+                event = errorreporting_v1beta1.ReportedErrorEvent()
+                event.message = "message_value"
+
+                request = errorreporting_v1beta1.ReportErrorEventRequest(
+                    project_name="project_name_value",
+                    event=event,
+                )
+
+                # Make the request
+                response = await client.report_error_event(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.ReportErrorEventRequest, dict]]):
+                The request object. A request for reporting an individual
+                error event.
+            project_name (:class:`str`):
+                Required. The resource name of the Google Cloud Platform
+                project. Written as ``projects/{projectId}``, where
+                ``{projectId}`` is the `Google Cloud Platform project
+                ID <https://support.google.com/cloud/answer/6158840>`__.
+
+                Example: // ``projects/my-project-123``.
+
+                This corresponds to the ``project_name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            event (:class:`google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent`):
+                Required. The error event to be
+                reported.
+
+                This corresponds to the ``event`` 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.errorreporting_v1beta1.types.ReportErrorEventResponse:
+                Response for reporting an individual
+                error event. Data may be added to this
+                message in the future.
+
+        """
+        # 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([project_name, event])
+        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.")
+
+        request = report_errors_service.ReportErrorEventRequest(request)
+
+        # If we have keyword arguments corresponding to fields on the
+        # request, apply these.
+        if project_name is not None:
+            request.project_name = project_name
+        if event is not None:
+            request.event = event
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = gapic_v1.method_async.wrap_method(
+            self._client._transport.report_error_event,
+            default_timeout=None,
+            client_info=DEFAULT_CLIENT_INFO,
+        )
+
+        # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("project_name", request.project_name),
+            )),
+        )
+
+        # Send the request.
+        response = await rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    async def __aenter__(self) -> "ReportErrorsServiceAsyncClient":
+        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__ = (
+    "ReportErrorsServiceAsyncClient",
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
new file mode 100644
index 00000000..eb1157dc
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
@@ -0,0 +1,522 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
+
+from google.cloud.errorreporting_v1beta1 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]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+from google.cloud.errorreporting_v1beta1.types import report_errors_service
+from .transports.base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO
+from .transports.grpc import ReportErrorsServiceGrpcTransport
+from .transports.grpc_asyncio import ReportErrorsServiceGrpcAsyncIOTransport
+from .transports.rest import ReportErrorsServiceRestTransport
+
+
+class ReportErrorsServiceClientMeta(type):
+    """Metaclass for the ReportErrorsService 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[ReportErrorsServiceTransport]]
+    _transport_registry["grpc"] = ReportErrorsServiceGrpcTransport
+    _transport_registry["grpc_asyncio"] = ReportErrorsServiceGrpcAsyncIOTransport
+    _transport_registry["rest"] = ReportErrorsServiceRestTransport
+
+    def get_transport_class(cls,
+            label: Optional[str] = None,
+        ) -> Type[ReportErrorsServiceTransport]:
+        """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 ReportErrorsServiceClient(metaclass=ReportErrorsServiceClientMeta):
+    """An API for reporting error events."""
+
+    @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")
+
+    DEFAULT_ENDPOINT = "clouderrorreporting.googleapis.com"
+    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
+        DEFAULT_ENDPOINT
+    )
+
+    @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:
+            ReportErrorsServiceClient: 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:
+            ReportErrorsServiceClient: 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) -> ReportErrorsServiceTransport:
+        """Returns the transport used by the client instance.
+
+        Returns:
+            ReportErrorsServiceTransport: The transport used by the client
+                instance.
+        """
+        return self._transport
+
+    @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):
+        """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.
+        """
+        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
+
+    def __init__(self, *,
+            credentials: Optional[ga_credentials.Credentials] = None,
+            transport: Optional[Union[str, ReportErrorsServiceTransport]] = None,
+            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            ) -> None:
+        """Instantiates the report errors service 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 (Union[str, ReportErrorsServiceTransport]): The
+                transport to use. 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. It won't take effect if a ``transport`` instance is provided.
+                (1) The ``api_endpoint`` property can be used to override the
+                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
+                environment variable can also be used to override the endpoint:
+                "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). However, the ``api_endpoint`` property takes
+                precedence if provided.
+                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
+                is "true", then the ``client_cert_source`` property can be used
+                to provide client certificate for mutual TLS 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.
+            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.
+        """
+        if isinstance(client_options, dict):
+            client_options = client_options_lib.from_dict(client_options)
+        if client_options is None:
+            client_options = client_options_lib.ClientOptions()
+        client_options = cast(client_options_lib.ClientOptions, client_options)
+
+        api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options)
+
+        api_key_value = getattr(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.
+        if isinstance(transport, ReportErrorsServiceTransport):
+            # transport is a ReportErrorsServiceTransport instance.
+            if credentials or client_options.credentials_file or api_key_value:
+                raise ValueError("When providing a transport instance, "
+                                 "provide its credentials directly.")
+            if client_options.scopes:
+                raise ValueError(
+                    "When providing a transport instance, provide its scopes "
+                    "directly."
+                )
+            self._transport = transport
+        else:
+            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 = type(self).get_transport_class(transport)
+            self._transport = Transport(
+                credentials=credentials,
+                credentials_file=client_options.credentials_file,
+                host=api_endpoint,
+                scopes=client_options.scopes,
+                client_cert_source_for_mtls=client_cert_source_func,
+                quota_project_id=client_options.quota_project_id,
+                client_info=client_info,
+                always_use_jwt_access=True,
+                api_audience=client_options.api_audience,
+            )
+
+    def report_error_event(self,
+            request: Optional[Union[report_errors_service.ReportErrorEventRequest, dict]] = None,
+            *,
+            project_name: Optional[str] = None,
+            event: Optional[report_errors_service.ReportedErrorEvent] = None,
+            retry: OptionalRetry = gapic_v1.method.DEFAULT,
+            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
+            metadata: Sequence[Tuple[str, str]] = (),
+            ) -> report_errors_service.ReportErrorEventResponse:
+        r"""Report an individual error event and record the event to a log.
+
+        This endpoint accepts **either** an OAuth token, **or** an `API
+        key <https://support.google.com/cloud/answer/6158862>`__ for
+        authentication. To use an API key, append it to the URL as the
+        value of a ``key`` parameter. For example:
+
+        ``POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456``
+
+        **Note:** `Error Reporting </error-reporting>`__ is a global
+        service built on Cloud Logging and doesn't analyze logs stored
+        in regional log buckets or logs routed to other Google Cloud
+        projects.
+
+        .. 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 errorreporting_v1beta1
+
+            def sample_report_error_event():
+                # Create a client
+                client = errorreporting_v1beta1.ReportErrorsServiceClient()
+
+                # Initialize request argument(s)
+                event = errorreporting_v1beta1.ReportedErrorEvent()
+                event.message = "message_value"
+
+                request = errorreporting_v1beta1.ReportErrorEventRequest(
+                    project_name="project_name_value",
+                    event=event,
+                )
+
+                # Make the request
+                response = client.report_error_event(request=request)
+
+                # Handle the response
+                print(response)
+
+        Args:
+            request (Union[google.cloud.errorreporting_v1beta1.types.ReportErrorEventRequest, dict]):
+                The request object. A request for reporting an individual
+                error event.
+            project_name (str):
+                Required. The resource name of the Google Cloud Platform
+                project. Written as ``projects/{projectId}``, where
+                ``{projectId}`` is the `Google Cloud Platform project
+                ID <https://support.google.com/cloud/answer/6158840>`__.
+
+                Example: // ``projects/my-project-123``.
+
+                This corresponds to the ``project_name`` field
+                on the ``request`` instance; if ``request`` is provided, this
+                should not be set.
+            event (google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent):
+                Required. The error event to be
+                reported.
+
+                This corresponds to the ``event`` 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.errorreporting_v1beta1.types.ReportErrorEventResponse:
+                Response for reporting an individual
+                error event. Data may be added to this
+                message in the future.
+
+        """
+        # 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([project_name, event])
+        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.')
+
+        # Minor optimization to avoid making a copy if the user passes
+        # in a report_errors_service.ReportErrorEventRequest.
+        # There's no risk of modifying the input as we've already verified
+        # there are no flattened fields.
+        if not isinstance(request, report_errors_service.ReportErrorEventRequest):
+            request = report_errors_service.ReportErrorEventRequest(request)
+            # If we have keyword arguments corresponding to fields on the
+            # request, apply these.
+            if project_name is not None:
+                request.project_name = project_name
+            if event is not None:
+                request.event = event
+
+        # Wrap the RPC method; this adds retry and timeout information,
+        # and friendly error handling.
+        rpc = self._transport._wrapped_methods[self._transport.report_error_event]
+
+         # Certain fields should be provided within the metadata header;
+        # add these here.
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ("project_name", request.project_name),
+            )),
+        )
+
+        # Send the request.
+        response = rpc(
+            request,
+            retry=retry,
+            timeout=timeout,
+            metadata=metadata,
+        )
+
+        # Done; return the response.
+        return response
+
+    def __enter__(self) -> "ReportErrorsServiceClient":
+        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()
+
+
+
+
+
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+__all__ = (
+    "ReportErrorsServiceClient",
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
new file mode 100644
index 00000000..ec1a6fc1
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ReportErrorsServiceTransport
+from .grpc import ReportErrorsServiceGrpcTransport
+from .grpc_asyncio import ReportErrorsServiceGrpcAsyncIOTransport
+from .rest import ReportErrorsServiceRestTransport
+from .rest import ReportErrorsServiceRestInterceptor
+
+
+# Compile a registry of transports.
+_transport_registry = OrderedDict()  # type: Dict[str, Type[ReportErrorsServiceTransport]]
+_transport_registry['grpc'] = ReportErrorsServiceGrpcTransport
+_transport_registry['grpc_asyncio'] = ReportErrorsServiceGrpcAsyncIOTransport
+_transport_registry['rest'] = ReportErrorsServiceRestTransport
+
+__all__ = (
+    'ReportErrorsServiceTransport',
+    'ReportErrorsServiceGrpcTransport',
+    'ReportErrorsServiceGrpcAsyncIOTransport',
+    'ReportErrorsServiceRestTransport',
+    'ReportErrorsServiceRestInterceptor',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
new file mode 100644
index 00000000..a24c38dc
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
@@ -0,0 +1,148 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1 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.errorreporting_v1beta1.types import report_errors_service
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
+
+
+class ReportErrorsServiceTransport(abc.ABC):
+    """Abstract transport class for ReportErrorsService."""
+
+    AUTH_SCOPES = (
+        'https://www.googleapis.com/auth/cloud-platform',
+    )
+
+    DEFAULT_HOST: str = 'clouderrorreporting.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.
+            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 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:
+            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
+
+    def _prep_wrapped_messages(self, client_info):
+        # Precompute the wrapped methods.
+        self._wrapped_methods = {
+            self.report_error_event: gapic_v1.method.wrap_method(
+                self.report_error_event,
+                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 report_error_event(self) -> Callable[
+            [report_errors_service.ReportErrorEventRequest],
+            Union[
+                report_errors_service.ReportErrorEventResponse,
+                Awaitable[report_errors_service.ReportErrorEventResponse]
+            ]]:
+        raise NotImplementedError()
+
+    @property
+    def kind(self) -> str:
+        raise NotImplementedError()
+
+
+__all__ = (
+    'ReportErrorsServiceTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
new file mode 100644
index 00000000..a18df43e
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
@@ -0,0 +1,276 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1.types import report_errors_service
+from .base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO
+
+
+class ReportErrorsServiceGrpcTransport(ReportErrorsServiceTransport):
+    """gRPC backend transport for ReportErrorsService.
+
+    An API for reporting error events.
+
+    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 = 'clouderrorreporting.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[grpc.Channel] = None,
+            api_mtls_endpoint: Optional[str] = None,
+            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
+            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            quota_project_id: Optional[str] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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 ``channel`` 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 ``channel`` is provided.
+            scopes (Optional(Sequence[str])): A list of scopes. This argument is
+                ignored if ``channel`` is provided.
+            channel (Optional[grpc.Channel]): A ``Channel`` instance through
+                which to make calls.
+            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 ``channel`` 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 ``channel`` 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 channel:
+            # Ignore credentials if a channel was passed.
+            credentials = False
+            # 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:
+            self._grpc_channel = type(self).create_channel(
+                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 = 'clouderrorreporting.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 report_error_event(self) -> Callable[
+            [report_errors_service.ReportErrorEventRequest],
+            report_errors_service.ReportErrorEventResponse]:
+        r"""Return a callable for the report error event method over gRPC.
+
+        Report an individual error event and record the event to a log.
+
+        This endpoint accepts **either** an OAuth token, **or** an `API
+        key <https://support.google.com/cloud/answer/6158862>`__ for
+        authentication. To use an API key, append it to the URL as the
+        value of a ``key`` parameter. For example:
+
+        ``POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456``
+
+        **Note:** `Error Reporting </error-reporting>`__ is a global
+        service built on Cloud Logging and doesn't analyze logs stored
+        in regional log buckets or logs routed to other Google Cloud
+        projects.
+
+        Returns:
+            Callable[[~.ReportErrorEventRequest],
+                    ~.ReportErrorEventResponse]:
+                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 'report_error_event' not in self._stubs:
+            self._stubs['report_error_event'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ReportErrorsService/ReportErrorEvent',
+                request_serializer=report_errors_service.ReportErrorEventRequest.serialize,
+                response_deserializer=report_errors_service.ReportErrorEventResponse.deserialize,
+            )
+        return self._stubs['report_error_event']
+
+    def close(self):
+        self.grpc_channel.close()
+
+    @property
+    def kind(self) -> str:
+        return "grpc"
+
+
+__all__ = (
+    'ReportErrorsServiceGrpcTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
new file mode 100644
index 00000000..0533f915
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
@@ -0,0 +1,275 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
+
+from google.api_core import gapic_v1
+from google.api_core import grpc_helpers_async
+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.errorreporting_v1beta1.types import report_errors_service
+from .base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO
+from .grpc import ReportErrorsServiceGrpcTransport
+
+
+class ReportErrorsServiceGrpcAsyncIOTransport(ReportErrorsServiceTransport):
+    """gRPC AsyncIO backend transport for ReportErrorsService.
+
+    An API for reporting error events.
+
+    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 = 'clouderrorreporting.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`.
+                This argument is ignored if ``channel`` 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`.
+            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 = 'clouderrorreporting.googleapis.com',
+            credentials: Optional[ga_credentials.Credentials] = None,
+            credentials_file: Optional[str] = None,
+            scopes: Optional[Sequence[str]] = None,
+            channel: Optional[aio.Channel] = None,
+            api_mtls_endpoint: Optional[str] = None,
+            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
+            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+            quota_project_id: Optional[str] = None,
+            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
+            always_use_jwt_access: Optional[bool] = False,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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 ``channel`` 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 ``channel`` 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[aio.Channel]): A ``Channel`` instance through
+                which to make calls.
+            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 ``channel`` 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 ``channel`` 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 channel:
+            # Ignore credentials if a channel was passed.
+            credentials = False
+            # 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:
+            self._grpc_channel = type(self).create_channel(
+                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)
+
+    @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 report_error_event(self) -> Callable[
+            [report_errors_service.ReportErrorEventRequest],
+            Awaitable[report_errors_service.ReportErrorEventResponse]]:
+        r"""Return a callable for the report error event method over gRPC.
+
+        Report an individual error event and record the event to a log.
+
+        This endpoint accepts **either** an OAuth token, **or** an `API
+        key <https://support.google.com/cloud/answer/6158862>`__ for
+        authentication. To use an API key, append it to the URL as the
+        value of a ``key`` parameter. For example:
+
+        ``POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456``
+
+        **Note:** `Error Reporting </error-reporting>`__ is a global
+        service built on Cloud Logging and doesn't analyze logs stored
+        in regional log buckets or logs routed to other Google Cloud
+        projects.
+
+        Returns:
+            Callable[[~.ReportErrorEventRequest],
+                    Awaitable[~.ReportErrorEventResponse]]:
+                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 'report_error_event' not in self._stubs:
+            self._stubs['report_error_event'] = self.grpc_channel.unary_unary(
+                '/google.devtools.clouderrorreporting.v1beta1.ReportErrorsService/ReportErrorEvent',
+                request_serializer=report_errors_service.ReportErrorEventRequest.serialize,
+                response_deserializer=report_errors_service.ReportErrorEventResponse.deserialize,
+            )
+        return self._stubs['report_error_event']
+
+    def close(self):
+        return self.grpc_channel.close()
+
+
+__all__ = (
+    'ReportErrorsServiceGrpcAsyncIOTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
new file mode 100644
index 00000000..2f16c8bd
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
@@ -0,0 +1,301 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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
+import grpc  # type: ignore
+from google.auth.transport.grpc import SslCredentials  # 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 path_template
+from google.api_core import gapic_v1
+
+from google.protobuf import json_format
+from requests import __version__ as requests_version
+import dataclasses
+import re
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
+import warnings
+
+try:
+    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
+except AttributeError:  # pragma: NO COVER
+    OptionalRetry = Union[retries.Retry, object]  # type: ignore
+
+
+from google.cloud.errorreporting_v1beta1.types import report_errors_service
+
+from .base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
+
+
+DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
+    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
+    grpc_version=None,
+    rest_version=requests_version,
+)
+
+
+class ReportErrorsServiceRestInterceptor:
+    """Interceptor for ReportErrorsService.
+
+    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 ReportErrorsServiceRestTransport.
+
+    .. code-block:: python
+        class MyCustomReportErrorsServiceInterceptor(ReportErrorsServiceRestInterceptor):
+            def pre_report_error_event(self, request, metadata):
+                logging.log(f"Received request: {request}")
+                return request, metadata
+
+            def post_report_error_event(self, response):
+                logging.log(f"Received response: {response}")
+                return response
+
+        transport = ReportErrorsServiceRestTransport(interceptor=MyCustomReportErrorsServiceInterceptor())
+        client = ReportErrorsServiceClient(transport=transport)
+
+
+    """
+    def pre_report_error_event(self, request: report_errors_service.ReportErrorEventRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[report_errors_service.ReportErrorEventRequest, Sequence[Tuple[str, str]]]:
+        """Pre-rpc interceptor for report_error_event
+
+        Override in a subclass to manipulate the request or metadata
+        before they are sent to the ReportErrorsService server.
+        """
+        return request, metadata
+
+    def post_report_error_event(self, response: report_errors_service.ReportErrorEventResponse) -> report_errors_service.ReportErrorEventResponse:
+        """Post-rpc interceptor for report_error_event
+
+        Override in a subclass to manipulate the response
+        after it is returned by the ReportErrorsService server but before
+        it is returned to user code.
+        """
+        return response
+
+
+@dataclasses.dataclass
+class ReportErrorsServiceRestStub:
+    _session: AuthorizedSession
+    _host: str
+    _interceptor: ReportErrorsServiceRestInterceptor
+
+
+class ReportErrorsServiceRestTransport(ReportErrorsServiceTransport):
+    """REST backend transport for ReportErrorsService.
+
+    An API for reporting error events.
+
+    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 = 'clouderrorreporting.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[ReportErrorsServiceRestInterceptor] = None,
+            api_audience: Optional[str] = None,
+            ) -> None:
+        """Instantiate the transport.
+
+        Args:
+            host (Optional[str]):
+                 The hostname to connect to.
+            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
+        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
+        )
+        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 ReportErrorsServiceRestInterceptor()
+        self._prep_wrapped_messages(client_info)
+
+    class _ReportErrorEvent(ReportErrorsServiceRestStub):
+        def __hash__(self):
+            return hash("ReportErrorEvent")
+
+        __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}
+
+        def __call__(self,
+                request: report_errors_service.ReportErrorEventRequest, *,
+                retry: OptionalRetry=gapic_v1.method.DEFAULT,
+                timeout: Optional[float]=None,
+                metadata: Sequence[Tuple[str, str]]=(),
+                ) -> report_errors_service.ReportErrorEventResponse:
+            r"""Call the report error event method over HTTP.
+
+            Args:
+                request (~.report_errors_service.ReportErrorEventRequest):
+                    The request object. A request for reporting an individual
+                error event.
+                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:
+                ~.report_errors_service.ReportErrorEventResponse:
+                    Response for reporting an individual
+                error event. Data may be added to this
+                message in the future.
+
+            """
+
+            http_options: List[Dict[str, str]] = [{
+                'method': 'post',
+                'uri': '/v1beta1/{project_name=projects/*}/events:report',
+                'body': 'event',
+            },
+            ]
+            request, metadata = self._interceptor.pre_report_error_event(request, metadata)
+            pb_request = report_errors_service.ReportErrorEventRequest.pb(request)
+            transcoded_request = path_template.transcode(http_options, pb_request)
+
+            # Jsonify the request body
+
+            body = json_format.MessageToJson(
+                transcoded_request['body'],
+                including_default_value_fields=False,
+                use_integers_for_enums=True
+            )
+            uri = transcoded_request['uri']
+            method = transcoded_request['method']
+
+            # Jsonify the query params
+            query_params = json.loads(json_format.MessageToJson(
+                transcoded_request['query_params'],
+                including_default_value_fields=False,
+                use_integers_for_enums=True,
+            ))
+            query_params.update(self._get_unset_required_fields(query_params))
+
+            query_params["$alt"] = "json;enum-encoding=int"
+
+            # Send the request
+            headers = dict(metadata)
+            headers['Content-Type'] = 'application/json'
+            response = getattr(self._session, method)(
+                "{host}{uri}".format(host=self._host, uri=uri),
+                timeout=timeout,
+                headers=headers,
+                params=rest_helpers.flatten_query_params(query_params, strict=True),
+                data=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 = report_errors_service.ReportErrorEventResponse()
+            pb_resp = report_errors_service.ReportErrorEventResponse.pb(resp)
+
+            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
+            resp = self._interceptor.post_report_error_event(resp)
+            return resp
+
+    @property
+    def report_error_event(self) -> Callable[
+            [report_errors_service.ReportErrorEventRequest],
+            report_errors_service.ReportErrorEventResponse]:
+        # 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._ReportErrorEvent(self._session, self._host, self._interceptor) # type: ignore
+
+    @property
+    def kind(self) -> str:
+        return "rest"
+
+    def close(self):
+        self._session.close()
+
+
+__all__=(
+    'ReportErrorsServiceRestTransport',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/__init__.py
new file mode 100644
index 00000000..3734d301
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/__init__.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 .common import (
+    ErrorContext,
+    ErrorEvent,
+    ErrorGroup,
+    HttpRequestContext,
+    ServiceContext,
+    SourceLocation,
+    TrackingIssue,
+    ResolutionStatus,
+)
+from .error_group_service import (
+    GetGroupRequest,
+    UpdateGroupRequest,
+)
+from .error_stats_service import (
+    DeleteEventsRequest,
+    DeleteEventsResponse,
+    ErrorGroupStats,
+    ListEventsRequest,
+    ListEventsResponse,
+    ListGroupStatsRequest,
+    ListGroupStatsResponse,
+    QueryTimeRange,
+    ServiceContextFilter,
+    TimedCount,
+    ErrorGroupOrder,
+    TimedCountAlignment,
+)
+from .report_errors_service import (
+    ReportedErrorEvent,
+    ReportErrorEventRequest,
+    ReportErrorEventResponse,
+)
+
+__all__ = (
+    'ErrorContext',
+    'ErrorEvent',
+    'ErrorGroup',
+    'HttpRequestContext',
+    'ServiceContext',
+    'SourceLocation',
+    'TrackingIssue',
+    'ResolutionStatus',
+    'GetGroupRequest',
+    'UpdateGroupRequest',
+    'DeleteEventsRequest',
+    'DeleteEventsResponse',
+    'ErrorGroupStats',
+    'ListEventsRequest',
+    'ListEventsResponse',
+    'ListGroupStatsRequest',
+    'ListGroupStatsResponse',
+    'QueryTimeRange',
+    'ServiceContextFilter',
+    'TimedCount',
+    'ErrorGroupOrder',
+    'TimedCountAlignment',
+    'ReportedErrorEvent',
+    'ReportErrorEventRequest',
+    'ReportErrorEventResponse',
+)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/common.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/common.py
new file mode 100644
index 00000000..4bce97ba
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/common.py
@@ -0,0 +1,345 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.devtools.clouderrorreporting.v1beta1',
+    manifest={
+        'ResolutionStatus',
+        'ErrorGroup',
+        'TrackingIssue',
+        'ErrorEvent',
+        'ServiceContext',
+        'ErrorContext',
+        'HttpRequestContext',
+        'SourceLocation',
+    },
+)
+
+
+class ResolutionStatus(proto.Enum):
+    r"""Resolution status of an error group.
+
+    Values:
+        RESOLUTION_STATUS_UNSPECIFIED (0):
+            Status is unknown. When left unspecified in
+            requests, it is treated like OPEN.
+        OPEN (1):
+            The error group is not being addressed. This
+            is the default for new groups. It is also used
+            for errors re-occurring after marked RESOLVED.
+        ACKNOWLEDGED (2):
+            Error Group manually acknowledged, it can
+            have an issue link attached.
+        RESOLVED (3):
+            Error Group manually resolved, more events
+            for this group are not expected to occur.
+        MUTED (4):
+            The error group is muted and excluded by
+            default on group stats requests.
+    """
+    RESOLUTION_STATUS_UNSPECIFIED = 0
+    OPEN = 1
+    ACKNOWLEDGED = 2
+    RESOLVED = 3
+    MUTED = 4
+
+
+class ErrorGroup(proto.Message):
+    r"""Description of a group of similar error events.
+
+    Attributes:
+        name (str):
+            The group resource name.
+            Example:
+            <code>projects/my-project-123/groups/CNSgkpnppqKCUw</code>
+        group_id (str):
+            Group IDs are unique for a given project. If
+            the same kind of error occurs in different
+            service contexts, it will receive the same group
+            ID.
+        tracking_issues (MutableSequence[google.cloud.errorreporting_v1beta1.types.TrackingIssue]):
+            Associated tracking issues.
+        resolution_status (google.cloud.errorreporting_v1beta1.types.ResolutionStatus):
+            Error group's resolution status.
+            An unspecified resolution status will be
+            interpreted as OPEN
+    """
+
+    name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    group_id: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    tracking_issues: MutableSequence['TrackingIssue'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=3,
+        message='TrackingIssue',
+    )
+    resolution_status: 'ResolutionStatus' = proto.Field(
+        proto.ENUM,
+        number=5,
+        enum='ResolutionStatus',
+    )
+
+
+class TrackingIssue(proto.Message):
+    r"""Information related to tracking the progress on resolving the
+    error.
+
+    Attributes:
+        url (str):
+            A URL pointing to a related entry in an issue tracking
+            system. Example:
+            ``https://github.com/user/project/issues/4``
+    """
+
+    url: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class ErrorEvent(proto.Message):
+    r"""An error event which is returned by the Error Reporting
+    system.
+
+    Attributes:
+        event_time (google.protobuf.timestamp_pb2.Timestamp):
+            Time when the event occurred as provided in
+            the error report. If the report did not contain
+            a timestamp, the time the error was received by
+            the Error Reporting system is used.
+        service_context (google.cloud.errorreporting_v1beta1.types.ServiceContext):
+            The ``ServiceContext`` for which this error was reported.
+        message (str):
+            The stack trace that was reported or logged
+            by the service.
+        context (google.cloud.errorreporting_v1beta1.types.ErrorContext):
+            Data about the context in which the error
+            occurred.
+    """
+
+    event_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message=timestamp_pb2.Timestamp,
+    )
+    service_context: 'ServiceContext' = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        message='ServiceContext',
+    )
+    message: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    context: 'ErrorContext' = proto.Field(
+        proto.MESSAGE,
+        number=5,
+        message='ErrorContext',
+    )
+
+
+class ServiceContext(proto.Message):
+    r"""Describes a running service that sends errors.
+    Its version changes over time and multiple versions can run in
+    parallel.
+
+    Attributes:
+        service (str):
+            An identifier of the service, such as the name of the
+            executable, job, or Google App Engine service name. This
+            field is expected to have a low number of values that are
+            relatively stable over time, as opposed to ``version``,
+            which can be changed whenever new code is deployed.
+
+            Contains the service name for error reports extracted from
+            Google App Engine logs or ``default`` if the App Engine
+            default service is used.
+        version (str):
+            Represents the source code version that the
+            developer provided, which could represent a
+            version label or a Git SHA-1 hash, for example.
+            For App Engine standard environment, the version
+            is set to the version of the app.
+        resource_type (str):
+            Type of the MonitoredResource. List of
+            possible values:
+            https://cloud.google.com/monitoring/api/resources
+            Value is set automatically for incoming errors
+            and must not be set when reporting errors.
+    """
+
+    service: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    version: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    resource_type: str = proto.Field(
+        proto.STRING,
+        number=4,
+    )
+
+
+class ErrorContext(proto.Message):
+    r"""A description of the context in which an error occurred.
+    This data should be provided by the application when reporting
+    an error, unless the
+    error report has been generated automatically from Google App
+    Engine logs.
+
+    Attributes:
+        http_request (google.cloud.errorreporting_v1beta1.types.HttpRequestContext):
+            The HTTP request which was processed when the
+            error was triggered.
+        user (str):
+            The user who caused or was affected by the crash. This can
+            be a user ID, an email address, or an arbitrary token that
+            uniquely identifies the user. When sending an error report,
+            leave this field empty if the user was not logged in. In
+            this case the Error Reporting system will use other data,
+            such as remote IP address, to distinguish affected users.
+            See ``affected_users_count`` in ``ErrorGroupStats``.
+        report_location (google.cloud.errorreporting_v1beta1.types.SourceLocation):
+            The location in the source code where the
+            decision was made to report the error, usually
+            the place where it was logged. For a logged
+            exception this would be the source line where
+            the exception is logged, usually close to the
+            place where it was caught.
+    """
+
+    http_request: 'HttpRequestContext' = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message='HttpRequestContext',
+    )
+    user: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    report_location: 'SourceLocation' = proto.Field(
+        proto.MESSAGE,
+        number=3,
+        message='SourceLocation',
+    )
+
+
+class HttpRequestContext(proto.Message):
+    r"""HTTP request data that is related to a reported error.
+    This data should be provided by the application when reporting
+    an error, unless the
+    error report has been generated automatically from Google App
+    Engine logs.
+
+    Attributes:
+        method (str):
+            The type of HTTP request, such as ``GET``, ``POST``, etc.
+        url (str):
+            The URL of the request.
+        user_agent (str):
+            The user agent information that is provided
+            with the request.
+        referrer (str):
+            The referrer information that is provided
+            with the request.
+        response_status_code (int):
+            The HTTP response status code for the
+            request.
+        remote_ip (str):
+            The IP address from which the request
+            originated. This can be IPv4, IPv6, or a token
+            which is derived from the IP address, depending
+            on the data that has been provided in the error
+            report.
+    """
+
+    method: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    url: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    user_agent: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    referrer: str = proto.Field(
+        proto.STRING,
+        number=4,
+    )
+    response_status_code: int = proto.Field(
+        proto.INT32,
+        number=5,
+    )
+    remote_ip: str = proto.Field(
+        proto.STRING,
+        number=6,
+    )
+
+
+class SourceLocation(proto.Message):
+    r"""Indicates a location in the source code of the service for which
+    errors are reported. ``functionName`` must be provided by the
+    application when reporting an error, unless the error report
+    contains a ``message`` with a supported exception stack trace. All
+    fields are optional for the later case.
+
+    Attributes:
+        file_path (str):
+            The source code filename, which can include a
+            truncated relative path, or a full path from a
+            production machine.
+        line_number (int):
+            1-based. 0 indicates that the line number is
+            unknown.
+        function_name (str):
+            Human-readable name of a function or method. The value can
+            include optional context like the class or package name. For
+            example, ``my.package.MyClass.method`` in case of Java.
+    """
+
+    file_path: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    line_number: int = proto.Field(
+        proto.INT32,
+        number=2,
+    )
+    function_name: str = proto.Field(
+        proto.STRING,
+        number=4,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_group_service.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_group_service.py
new file mode 100644
index 00000000..fc4c68ba
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_group_service.py
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1.types import common
+
+
+__protobuf__ = proto.module(
+    package='google.devtools.clouderrorreporting.v1beta1',
+    manifest={
+        'GetGroupRequest',
+        'UpdateGroupRequest',
+    },
+)
+
+
+class GetGroupRequest(proto.Message):
+    r"""A request to return an individual group.
+
+    Attributes:
+        group_name (str):
+            Required. The group resource name. Written as
+            ``projects/{projectID}/groups/{group_name}``. Call
+            ```groupStats.list`` <https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list>`__
+            to return a list of groups belonging to this project.
+
+            Example: ``projects/my-project-123/groups/my-group``
+    """
+
+    group_name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class UpdateGroupRequest(proto.Message):
+    r"""A request to replace the existing data for the given group.
+
+    Attributes:
+        group (google.cloud.errorreporting_v1beta1.types.ErrorGroup):
+            Required. The group which replaces the
+            resource on the server.
+    """
+
+    group: common.ErrorGroup = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message=common.ErrorGroup,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_stats_service.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
new file mode 100644
index 00000000..8c354c37
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
@@ -0,0 +1,574 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1.types import common
+from google.protobuf import duration_pb2  # type: ignore
+from google.protobuf import timestamp_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.devtools.clouderrorreporting.v1beta1',
+    manifest={
+        'TimedCountAlignment',
+        'ErrorGroupOrder',
+        'ListGroupStatsRequest',
+        'ListGroupStatsResponse',
+        'ErrorGroupStats',
+        'TimedCount',
+        'ListEventsRequest',
+        'ListEventsResponse',
+        'QueryTimeRange',
+        'ServiceContextFilter',
+        'DeleteEventsRequest',
+        'DeleteEventsResponse',
+    },
+)
+
+
+class TimedCountAlignment(proto.Enum):
+    r"""Specifies how the time periods of error group counts are
+    aligned.
+
+    Values:
+        ERROR_COUNT_ALIGNMENT_UNSPECIFIED (0):
+            No alignment specified.
+        ALIGNMENT_EQUAL_ROUNDED (1):
+            The time periods shall be consecutive, have width equal to
+            the requested duration, and be aligned at the
+            ``alignment_time`` provided in the request. The
+            ``alignment_time`` does not have to be inside the query
+            period but even if it is outside, only time periods are
+            returned which overlap with the query period. A rounded
+            alignment will typically result in a different size of the
+            first or the last time period.
+        ALIGNMENT_EQUAL_AT_END (2):
+            The time periods shall be consecutive, have
+            width equal to the requested duration, and be
+            aligned at the end of the requested time period.
+            This can result in a different size of the first
+            time period.
+    """
+    ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0
+    ALIGNMENT_EQUAL_ROUNDED = 1
+    ALIGNMENT_EQUAL_AT_END = 2
+
+
+class ErrorGroupOrder(proto.Enum):
+    r"""A sorting order of error groups.
+
+    Values:
+        GROUP_ORDER_UNSPECIFIED (0):
+            No group order specified.
+        COUNT_DESC (1):
+            Total count of errors in the given time
+            window in descending order.
+        LAST_SEEN_DESC (2):
+            Timestamp when the group was last seen in the
+            given time window in descending order.
+        CREATED_DESC (3):
+            Timestamp when the group was created in
+            descending order.
+        AFFECTED_USERS_DESC (4):
+            Number of affected users in the given time
+            window in descending order.
+    """
+    GROUP_ORDER_UNSPECIFIED = 0
+    COUNT_DESC = 1
+    LAST_SEEN_DESC = 2
+    CREATED_DESC = 3
+    AFFECTED_USERS_DESC = 4
+
+
+class ListGroupStatsRequest(proto.Message):
+    r"""Specifies a set of ``ErrorGroupStats`` to return.
+
+    Attributes:
+        project_name (str):
+            Required. The resource name of the Google Cloud Platform
+            project. Written as ``projects/{projectID}`` or
+            ``projects/{projectNumber}``, where ``{projectID}`` and
+            ``{projectNumber}`` can be found in the `Google Cloud
+            Console <https://support.google.com/cloud/answer/6158840>`__.
+
+            Examples: ``projects/my-project-123``, ``projects/5551234``.
+        group_id (MutableSequence[str]):
+            Optional. List all
+            <code>ErrorGroupStats</code> with these IDs.
+        service_filter (google.cloud.errorreporting_v1beta1.types.ServiceContextFilter):
+            Optional. List only
+            <code>ErrorGroupStats</code> which belong to a
+            service context that matches the filter. Data
+            for all service contexts is returned if this
+            field is not specified.
+        time_range (google.cloud.errorreporting_v1beta1.types.QueryTimeRange):
+            Optional. List data for the given time range. If not set, a
+            default time range is used. The field time_range_begin in
+            the response will specify the beginning of this time range.
+            Only ErrorGroupStats with a non-zero count in the given time
+            range are returned, unless the request contains an explicit
+            group_id list. If a group_id list is given, also
+            ErrorGroupStats with zero occurrences are returned.
+        timed_count_duration (google.protobuf.duration_pb2.Duration):
+            Optional. The preferred duration for a single returned
+            ``TimedCount``. If not set, no timed counts are returned.
+        alignment (google.cloud.errorreporting_v1beta1.types.TimedCountAlignment):
+            Optional. The alignment of the timed counts to be returned.
+            Default is ``ALIGNMENT_EQUAL_AT_END``.
+        alignment_time (google.protobuf.timestamp_pb2.Timestamp):
+            Optional. Time where the timed counts shall
+            be aligned if rounded alignment is chosen.
+            Default is 00:00 UTC.
+        order (google.cloud.errorreporting_v1beta1.types.ErrorGroupOrder):
+            Optional. The sort order in which the results are returned.
+            Default is ``COUNT_DESC``.
+        page_size (int):
+            Optional. The maximum number of results to
+            return per response. Default is 20.
+        page_token (str):
+            Optional. A ``next_page_token`` provided by a previous
+            response. To view additional results, pass this token along
+            with the identical query parameters as the first request.
+    """
+
+    project_name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    group_id: MutableSequence[str] = proto.RepeatedField(
+        proto.STRING,
+        number=2,
+    )
+    service_filter: 'ServiceContextFilter' = proto.Field(
+        proto.MESSAGE,
+        number=3,
+        message='ServiceContextFilter',
+    )
+    time_range: 'QueryTimeRange' = proto.Field(
+        proto.MESSAGE,
+        number=5,
+        message='QueryTimeRange',
+    )
+    timed_count_duration: duration_pb2.Duration = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        message=duration_pb2.Duration,
+    )
+    alignment: 'TimedCountAlignment' = proto.Field(
+        proto.ENUM,
+        number=7,
+        enum='TimedCountAlignment',
+    )
+    alignment_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=8,
+        message=timestamp_pb2.Timestamp,
+    )
+    order: 'ErrorGroupOrder' = proto.Field(
+        proto.ENUM,
+        number=9,
+        enum='ErrorGroupOrder',
+    )
+    page_size: int = proto.Field(
+        proto.INT32,
+        number=11,
+    )
+    page_token: str = proto.Field(
+        proto.STRING,
+        number=12,
+    )
+
+
+class ListGroupStatsResponse(proto.Message):
+    r"""Contains a set of requested error group stats.
+
+    Attributes:
+        error_group_stats (MutableSequence[google.cloud.errorreporting_v1beta1.types.ErrorGroupStats]):
+            The error group stats which match the given
+            request.
+        next_page_token (str):
+            If non-empty, more results are available.
+            Pass this token, along with the same query
+            parameters as the first request, to view the
+            next page of results.
+        time_range_begin (google.protobuf.timestamp_pb2.Timestamp):
+            The timestamp specifies the start time to
+            which the request was restricted. The start time
+            is set based on the requested time range. It may
+            be adjusted to a later time if a project has
+            exceeded the storage quota and older data has
+            been deleted.
+    """
+
+    @property
+    def raw_page(self):
+        return self
+
+    error_group_stats: MutableSequence['ErrorGroupStats'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=1,
+        message='ErrorGroupStats',
+    )
+    next_page_token: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    time_range_begin: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        message=timestamp_pb2.Timestamp,
+    )
+
+
+class ErrorGroupStats(proto.Message):
+    r"""Data extracted for a specific group based on certain filter
+    criteria, such as a given time period and/or service filter.
+
+    Attributes:
+        group (google.cloud.errorreporting_v1beta1.types.ErrorGroup):
+            Group data that is independent of the filter
+            criteria.
+        count (int):
+            Approximate total number of events in the
+            given group that match the filter criteria.
+        affected_users_count (int):
+            Approximate number of affected users in the given group that
+            match the filter criteria. Users are distinguished by data
+            in the ``ErrorContext`` of the individual error events, such
+            as their login name or their remote IP address in case of
+            HTTP requests. The number of affected users can be zero even
+            if the number of errors is non-zero if no data was provided
+            from which the affected user could be deduced. Users are
+            counted based on data in the request context that was
+            provided in the error report. If more users are implicitly
+            affected, such as due to a crash of the whole service, this
+            is not reflected here.
+        timed_counts (MutableSequence[google.cloud.errorreporting_v1beta1.types.TimedCount]):
+            Approximate number of occurrences over time.
+            Timed counts returned by ListGroups are
+            guaranteed to be:
+            - Inside the requested time interval
+            - Non-overlapping, and
+            - Ordered by ascending time.
+        first_seen_time (google.protobuf.timestamp_pb2.Timestamp):
+            Approximate first occurrence that was ever seen for this
+            group and which matches the given filter criteria, ignoring
+            the time_range that was specified in the request.
+        last_seen_time (google.protobuf.timestamp_pb2.Timestamp):
+            Approximate last occurrence that was ever seen for this
+            group and which matches the given filter criteria, ignoring
+            the time_range that was specified in the request.
+        affected_services (MutableSequence[google.cloud.errorreporting_v1beta1.types.ServiceContext]):
+            Service contexts with a non-zero error count for the given
+            filter criteria. This list can be truncated if multiple
+            services are affected. Refer to ``num_affected_services``
+            for the total count.
+        num_affected_services (int):
+            The total number of services with a non-zero
+            error count for the given filter criteria.
+        representative (google.cloud.errorreporting_v1beta1.types.ErrorEvent):
+            An arbitrary event that is chosen as
+            representative for the whole group. The
+            representative event is intended to be used as a
+            quick preview for the whole group. Events in the
+            group are usually sufficiently similar to each
+            other such that showing an arbitrary
+            representative provides insight into the
+            characteristics of the group as a whole.
+    """
+
+    group: common.ErrorGroup = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message=common.ErrorGroup,
+    )
+    count: int = proto.Field(
+        proto.INT64,
+        number=2,
+    )
+    affected_users_count: int = proto.Field(
+        proto.INT64,
+        number=3,
+    )
+    timed_counts: MutableSequence['TimedCount'] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=4,
+        message='TimedCount',
+    )
+    first_seen_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=5,
+        message=timestamp_pb2.Timestamp,
+    )
+    last_seen_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=6,
+        message=timestamp_pb2.Timestamp,
+    )
+    affected_services: MutableSequence[common.ServiceContext] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=7,
+        message=common.ServiceContext,
+    )
+    num_affected_services: int = proto.Field(
+        proto.INT32,
+        number=8,
+    )
+    representative: common.ErrorEvent = proto.Field(
+        proto.MESSAGE,
+        number=9,
+        message=common.ErrorEvent,
+    )
+
+
+class TimedCount(proto.Message):
+    r"""The number of errors in a given time period.
+    All numbers are approximate since the error events are sampled
+    before counting them.
+
+    Attributes:
+        count (int):
+            Approximate number of occurrences in the
+            given time period.
+        start_time (google.protobuf.timestamp_pb2.Timestamp):
+            Start of the time period to which ``count`` refers
+            (included).
+        end_time (google.protobuf.timestamp_pb2.Timestamp):
+            End of the time period to which ``count`` refers (excluded).
+    """
+
+    count: int = proto.Field(
+        proto.INT64,
+        number=1,
+    )
+    start_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        message=timestamp_pb2.Timestamp,
+    )
+    end_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=3,
+        message=timestamp_pb2.Timestamp,
+    )
+
+
+class ListEventsRequest(proto.Message):
+    r"""Specifies a set of error events to return.
+
+    Attributes:
+        project_name (str):
+            Required. The resource name of the Google Cloud Platform
+            project. Written as ``projects/{projectID}``, where
+            ``{projectID}`` is the `Google Cloud Platform project
+            ID <https://support.google.com/cloud/answer/6158840>`__.
+
+            Example: ``projects/my-project-123``.
+        group_id (str):
+            Required. The group for which events shall be
+            returned.
+        service_filter (google.cloud.errorreporting_v1beta1.types.ServiceContextFilter):
+            Optional. List only ErrorGroups which belong
+            to a service context that matches the filter.
+            Data for all service contexts is returned if
+            this field is not specified.
+        time_range (google.cloud.errorreporting_v1beta1.types.QueryTimeRange):
+            Optional. List only data for the given time range. If not
+            set a default time range is used. The field time_range_begin
+            in the response will specify the beginning of this time
+            range.
+        page_size (int):
+            Optional. The maximum number of results to
+            return per response.
+        page_token (str):
+            Optional. A ``next_page_token`` provided by a previous
+            response.
+    """
+
+    project_name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    group_id: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    service_filter: 'ServiceContextFilter' = proto.Field(
+        proto.MESSAGE,
+        number=3,
+        message='ServiceContextFilter',
+    )
+    time_range: 'QueryTimeRange' = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        message='QueryTimeRange',
+    )
+    page_size: int = proto.Field(
+        proto.INT32,
+        number=6,
+    )
+    page_token: str = proto.Field(
+        proto.STRING,
+        number=7,
+    )
+
+
+class ListEventsResponse(proto.Message):
+    r"""Contains a set of requested error events.
+
+    Attributes:
+        error_events (MutableSequence[google.cloud.errorreporting_v1beta1.types.ErrorEvent]):
+            The error events which match the given
+            request.
+        next_page_token (str):
+            If non-empty, more results are available.
+            Pass this token, along with the same query
+            parameters as the first request, to view the
+            next page of results.
+        time_range_begin (google.protobuf.timestamp_pb2.Timestamp):
+            The timestamp specifies the start time to
+            which the request was restricted.
+    """
+
+    @property
+    def raw_page(self):
+        return self
+
+    error_events: MutableSequence[common.ErrorEvent] = proto.RepeatedField(
+        proto.MESSAGE,
+        number=1,
+        message=common.ErrorEvent,
+    )
+    next_page_token: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    time_range_begin: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        message=timestamp_pb2.Timestamp,
+    )
+
+
+class QueryTimeRange(proto.Message):
+    r"""Requests might be rejected or the resulting timed count
+    durations might be adjusted for lower durations.
+
+    Attributes:
+        period (google.cloud.errorreporting_v1beta1.types.QueryTimeRange.Period):
+            Restricts the query to the specified time
+            range.
+    """
+    class Period(proto.Enum):
+        r"""The supported time ranges.
+
+        Values:
+            PERIOD_UNSPECIFIED (0):
+                Do not use.
+            PERIOD_1_HOUR (1):
+                Retrieve data for the last hour.
+                Recommended minimum timed count duration: 1 min.
+            PERIOD_6_HOURS (2):
+                Retrieve data for the last 6 hours.
+                Recommended minimum timed count duration: 10
+                min.
+            PERIOD_1_DAY (3):
+                Retrieve data for the last day.
+                Recommended minimum timed count duration: 1
+                hour.
+            PERIOD_1_WEEK (4):
+                Retrieve data for the last week.
+                Recommended minimum timed count duration: 6
+                hours.
+            PERIOD_30_DAYS (5):
+                Retrieve data for the last 30 days.
+                Recommended minimum timed count duration: 1 day.
+        """
+        PERIOD_UNSPECIFIED = 0
+        PERIOD_1_HOUR = 1
+        PERIOD_6_HOURS = 2
+        PERIOD_1_DAY = 3
+        PERIOD_1_WEEK = 4
+        PERIOD_30_DAYS = 5
+
+    period: Period = proto.Field(
+        proto.ENUM,
+        number=1,
+        enum=Period,
+    )
+
+
+class ServiceContextFilter(proto.Message):
+    r"""Specifies criteria for filtering a subset of service contexts. The
+    fields in the filter correspond to the fields in ``ServiceContext``.
+    Only exact, case-sensitive matches are supported. If a field is
+    unset or empty, it matches arbitrary values.
+
+    Attributes:
+        service (str):
+            Optional. The exact value to match against
+            ```ServiceContext.service`` </error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service>`__.
+        version (str):
+            Optional. The exact value to match against
+            ```ServiceContext.version`` </error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version>`__.
+        resource_type (str):
+            Optional. The exact value to match against
+            ```ServiceContext.resource_type`` </error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type>`__.
+    """
+
+    service: str = proto.Field(
+        proto.STRING,
+        number=2,
+    )
+    version: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    resource_type: str = proto.Field(
+        proto.STRING,
+        number=4,
+    )
+
+
+class DeleteEventsRequest(proto.Message):
+    r"""Deletes all events in the project.
+
+    Attributes:
+        project_name (str):
+            Required. The resource name of the Google Cloud Platform
+            project. Written as ``projects/{projectID}``, where
+            ``{projectID}`` is the `Google Cloud Platform project
+            ID <https://support.google.com/cloud/answer/6158840>`__.
+
+            Example: ``projects/my-project-123``.
+    """
+
+    project_name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+
+
+class DeleteEventsResponse(proto.Message):
+    r"""Response message for deleting error events.
+    """
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/report_errors_service.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
new file mode 100644
index 00000000..0bacd45a
--- /dev/null
+++ b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
@@ -0,0 +1,134 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.errorreporting_v1beta1.types import common
+from google.protobuf import timestamp_pb2  # type: ignore
+
+
+__protobuf__ = proto.module(
+    package='google.devtools.clouderrorreporting.v1beta1',
+    manifest={
+        'ReportErrorEventRequest',
+        'ReportErrorEventResponse',
+        'ReportedErrorEvent',
+    },
+)
+
+
+class ReportErrorEventRequest(proto.Message):
+    r"""A request for reporting an individual error event.
+
+    Attributes:
+        project_name (str):
+            Required. The resource name of the Google Cloud Platform
+            project. Written as ``projects/{projectId}``, where
+            ``{projectId}`` is the `Google Cloud Platform project
+            ID <https://support.google.com/cloud/answer/6158840>`__.
+
+            Example: // ``projects/my-project-123``.
+        event (google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent):
+            Required. The error event to be reported.
+    """
+
+    project_name: str = proto.Field(
+        proto.STRING,
+        number=1,
+    )
+    event: 'ReportedErrorEvent' = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        message='ReportedErrorEvent',
+    )
+
+
+class ReportErrorEventResponse(proto.Message):
+    r"""Response for reporting an individual error event.
+    Data may be added to this message in the future.
+
+    """
+
+
+class ReportedErrorEvent(proto.Message):
+    r"""An error event which is reported to the Error Reporting
+    system.
+
+    Attributes:
+        event_time (google.protobuf.timestamp_pb2.Timestamp):
+            Optional. Time when the event occurred.
+            If not provided, the time when the event was
+            received by the Error Reporting system will be
+            used.
+        service_context (google.cloud.errorreporting_v1beta1.types.ServiceContext):
+            Required. The service context in which this
+            error has occurred.
+        message (str):
+            Required. The error message. If no
+            ``context.reportLocation`` is provided, the message must
+            contain a header (typically consisting of the exception type
+            name and an error message) and an exception stack trace in
+            one of the supported programming languages and formats.
+            Supported languages are Java, Python, JavaScript, Ruby, C#,
+            PHP, and Go. Supported stack trace formats are:
+
+            -  **Java**: Must be the return value of
+               ```Throwable.printStackTrace()`` <https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29>`__.
+            -  **Python**: Must be the return value of
+               ```traceback.format_exc()`` <https://docs.python.org/2/library/traceback.html#traceback.format_exc>`__.
+            -  **JavaScript**: Must be the value of
+               ```error.stack`` <https://github.com/v8/v8/wiki/Stack-Trace-API>`__
+               as returned by V8.
+            -  **Ruby**: Must contain frames returned by
+               ```Exception.backtrace`` <https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace>`__.
+            -  **C#**: Must be the return value of
+               ```Exception.ToString()`` <https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx>`__.
+            -  **PHP**: Must start with
+               ``PHP (Notice|Parse error|Fatal error|Warning)`` and
+               contain the result of
+               ```(string)$exception`` <http://php.net/manual/en/exception.tostring.php>`__.
+            -  **Go**: Must be the return value of
+               ```runtime.Stack()`` <https://golang.org/pkg/runtime/debug/#Stack>`__.
+        context (google.cloud.errorreporting_v1beta1.types.ErrorContext):
+            Optional. A description of the context in
+            which the error occurred.
+    """
+
+    event_time: timestamp_pb2.Timestamp = proto.Field(
+        proto.MESSAGE,
+        number=1,
+        message=timestamp_pb2.Timestamp,
+    )
+    service_context: common.ServiceContext = proto.Field(
+        proto.MESSAGE,
+        number=2,
+        message=common.ServiceContext,
+    )
+    message: str = proto.Field(
+        proto.STRING,
+        number=3,
+    )
+    context: common.ErrorContext = proto.Field(
+        proto.MESSAGE,
+        number=4,
+        message=common.ErrorContext,
+    )
+
+
+__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/v1beta1/mypy.ini b/owl-bot-staging/v1beta1/mypy.ini
new file mode 100644
index 00000000..574c5aed
--- /dev/null
+++ b/owl-bot-staging/v1beta1/mypy.ini
@@ -0,0 +1,3 @@
+[mypy]
+python_version = 3.7
+namespace_packages = True
diff --git a/owl-bot-staging/v1beta1/noxfile.py b/owl-bot-staging/v1beta1/noxfile.py
new file mode 100644
index 00000000..359a1f2e
--- /dev/null
+++ b/owl-bot-staging/v1beta1/noxfile.py
@@ -0,0 +1,184 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 shutil
+import subprocess
+import sys
+
+
+import nox  # type: ignore
+
+ALL_PYTHON = [
+    "3.7",
+    "3.8",
+    "3.9",
+    "3.10",
+    "3.11",
+]
+
+CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()
+
+LOWER_BOUND_CONSTRAINTS_FILE = CURRENT_DIRECTORY / "constraints.txt"
+PACKAGE_NAME = subprocess.check_output([sys.executable, "setup.py", "--name"], encoding="utf-8")
+
+BLACK_VERSION = "black==22.3.0"
+BLACK_PATHS = ["docs", "google", "tests", "samples", "noxfile.py", "setup.py"]
+DEFAULT_PYTHON_VERSION = "3.11"
+
+nox.sessions = [
+    "unit",
+    "cover",
+    "mypy",
+    "check_lower_bounds"
+    # exclude update_lower_bounds from default
+    "docs",
+    "blacken",
+    "lint",
+    "lint_setup_py",
+]
+
+@nox.session(python=ALL_PYTHON)
+def unit(session):
+    """Run the unit test suite."""
+
+    session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"')
+    session.install('-e', '.')
+
+    session.run(
+        'py.test',
+        '--quiet',
+        '--cov=google/cloud/errorreporting_v1beta1/',
+        '--cov=tests/',
+        '--cov-config=.coveragerc',
+        '--cov-report=term',
+        '--cov-report=html',
+        os.path.join('tests', 'unit', ''.join(session.posargs))
+    )
+
+
+@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',
+        '--explicit-package-bases',
+        '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==4.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,
+    )
+
+
+@nox.session(python=DEFAULT_PYTHON_VERSION)
+def lint_setup_py(session):
+    """Verify that setup.py is valid (including RST check)."""
+    session.install("docutils", "pygments")
+    session.run("python", "setup.py", "check", "--restructuredtext", "--strict")
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
new file mode 100644
index 00000000..702f5cda
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 GetGroup
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_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 errorreporting_v1beta1
+
+
+async def sample_get_group():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorGroupServiceAsyncClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.GetGroupRequest(
+        group_name="group_name_value",
+    )
+
+    # Make the request
+    response = await client.get_group(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
new file mode 100644
index 00000000..074978d9
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 GetGroup
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_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 errorreporting_v1beta1
+
+
+def sample_get_group():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorGroupServiceClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.GetGroupRequest(
+        group_name="group_name_value",
+    )
+
+    # Make the request
+    response = client.get_group(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
new file mode 100644
index 00000000..8b345298
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
@@ -0,0 +1,51 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 UpdateGroup
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_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 errorreporting_v1beta1
+
+
+async def sample_update_group():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorGroupServiceAsyncClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.UpdateGroupRequest(
+    )
+
+    # Make the request
+    response = await client.update_group(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
new file mode 100644
index 00000000..7c38b173
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
@@ -0,0 +1,51 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 UpdateGroup
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_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 errorreporting_v1beta1
+
+
+def sample_update_group():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorGroupServiceClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.UpdateGroupRequest(
+    )
+
+    # Make the request
+    response = client.update_group(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
new file mode 100644
index 00000000..a1cd90bf
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 DeleteEvents
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_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 errorreporting_v1beta1
+
+
+async def sample_delete_events():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.DeleteEventsRequest(
+        project_name="project_name_value",
+    )
+
+    # Make the request
+    response = await client.delete_events(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
new file mode 100644
index 00000000..f8c08c1b
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 DeleteEvents
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_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 errorreporting_v1beta1
+
+
+def sample_delete_events():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorStatsServiceClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.DeleteEventsRequest(
+        project_name="project_name_value",
+    )
+
+    # Make the request
+    response = client.delete_events(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
new file mode 100644
index 00000000..1ec25ba7
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ListEvents
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_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 errorreporting_v1beta1
+
+
+async def sample_list_events():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.ListEventsRequest(
+        project_name="project_name_value",
+        group_id="group_id_value",
+    )
+
+    # Make the request
+    page_result = client.list_events(request=request)
+
+    # Handle the response
+    async for response in page_result:
+        print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
new file mode 100644
index 00000000..81c7cc4c
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ListEvents
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_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 errorreporting_v1beta1
+
+
+def sample_list_events():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorStatsServiceClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.ListEventsRequest(
+        project_name="project_name_value",
+        group_id="group_id_value",
+    )
+
+    # Make the request
+    page_result = client.list_events(request=request)
+
+    # Handle the response
+    for response in page_result:
+        print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
new file mode 100644
index 00000000..60e47686
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ListGroupStats
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_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 errorreporting_v1beta1
+
+
+async def sample_list_group_stats():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.ListGroupStatsRequest(
+        project_name="project_name_value",
+    )
+
+    # Make the request
+    page_result = client.list_group_stats(request=request)
+
+    # Handle the response
+    async for response in page_result:
+        print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
new file mode 100644
index 00000000..16d09dc4
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ListGroupStats
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_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 errorreporting_v1beta1
+
+
+def sample_list_group_stats():
+    # Create a client
+    client = errorreporting_v1beta1.ErrorStatsServiceClient()
+
+    # Initialize request argument(s)
+    request = errorreporting_v1beta1.ListGroupStatsRequest(
+        project_name="project_name_value",
+    )
+
+    # Make the request
+    page_result = client.list_group_stats(request=request)
+
+    # Handle the response
+    for response in page_result:
+        print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
new file mode 100644
index 00000000..ba590771
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ReportErrorEvent
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_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 errorreporting_v1beta1
+
+
+async def sample_report_error_event():
+    # Create a client
+    client = errorreporting_v1beta1.ReportErrorsServiceAsyncClient()
+
+    # Initialize request argument(s)
+    event = errorreporting_v1beta1.ReportedErrorEvent()
+    event.message = "message_value"
+
+    request = errorreporting_v1beta1.ReportErrorEventRequest(
+        project_name="project_name_value",
+        event=event,
+    )
+
+    # Make the request
+    response = await client.report_error_event(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
new file mode 100644
index 00000000..c1fb7124
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 ReportErrorEvent
+# 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-error-reporting
+
+
+# [START clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_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 errorreporting_v1beta1
+
+
+def sample_report_error_event():
+    # Create a client
+    client = errorreporting_v1beta1.ReportErrorsServiceClient()
+
+    # Initialize request argument(s)
+    event = errorreporting_v1beta1.ReportedErrorEvent()
+    event.message = "message_value"
+
+    request = errorreporting_v1beta1.ReportErrorEventRequest(
+        project_name="project_name_value",
+        event=event,
+    )
+
+    # Make the request
+    response = client.report_error_event(request=request)
+
+    # Handle the response
+    print(response)
+
+# [END clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json b/owl-bot-staging/v1beta1/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
new file mode 100644
index 00000000..fedd655c
--- /dev/null
+++ b/owl-bot-staging/v1beta1/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
@@ -0,0 +1,1005 @@
+{
+  "clientLibrary": {
+    "apis": [
+      {
+        "id": "google.devtools.clouderrorreporting.v1beta1",
+        "version": "v1beta1"
+      }
+    ],
+    "language": "PYTHON",
+    "name": "google-cloud-error-reporting",
+    "version": "0.1.0"
+  },
+  "snippets": [
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceAsyncClient",
+          "shortName": "ErrorGroupServiceAsyncClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceAsyncClient.get_group",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.GetGroup",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService",
+            "shortName": "ErrorGroupService"
+          },
+          "shortName": "GetGroup"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.GetGroupRequest"
+          },
+          {
+            "name": "group_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.errorreporting_v1beta1.types.ErrorGroup",
+        "shortName": "get_group"
+      },
+      "description": "Sample for GetGroup",
+      "file": "clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_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": "clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceClient",
+          "shortName": "ErrorGroupServiceClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceClient.get_group",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.GetGroup",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService",
+            "shortName": "ErrorGroupService"
+          },
+          "shortName": "GetGroup"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.GetGroupRequest"
+          },
+          {
+            "name": "group_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.errorreporting_v1beta1.types.ErrorGroup",
+        "shortName": "get_group"
+      },
+      "description": "Sample for GetGroup",
+      "file": "clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_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": "clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceAsyncClient",
+          "shortName": "ErrorGroupServiceAsyncClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceAsyncClient.update_group",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.UpdateGroup",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService",
+            "shortName": "ErrorGroupService"
+          },
+          "shortName": "UpdateGroup"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.UpdateGroupRequest"
+          },
+          {
+            "name": "group",
+            "type": "google.cloud.errorreporting_v1beta1.types.ErrorGroup"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.errorreporting_v1beta1.types.ErrorGroup",
+        "shortName": "update_group"
+      },
+      "description": "Sample for UpdateGroup",
+      "file": "clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_async",
+      "segments": [
+        {
+          "end": 50,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 50,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 44,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 47,
+          "start": 45,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 51,
+          "start": 48,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceClient",
+          "shortName": "ErrorGroupServiceClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceClient.update_group",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.UpdateGroup",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService",
+            "shortName": "ErrorGroupService"
+          },
+          "shortName": "UpdateGroup"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.UpdateGroupRequest"
+          },
+          {
+            "name": "group",
+            "type": "google.cloud.errorreporting_v1beta1.types.ErrorGroup"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.errorreporting_v1beta1.types.ErrorGroup",
+        "shortName": "update_group"
+      },
+      "description": "Sample for UpdateGroup",
+      "file": "clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_sync",
+      "segments": [
+        {
+          "end": 50,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 50,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 44,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 47,
+          "start": 45,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 51,
+          "start": 48,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient",
+          "shortName": "ErrorStatsServiceAsyncClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient.delete_events",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.DeleteEvents",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
+            "shortName": "ErrorStatsService"
+          },
+          "shortName": "DeleteEvents"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.DeleteEventsRequest"
+          },
+          {
+            "name": "project_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.errorreporting_v1beta1.types.DeleteEventsResponse",
+        "shortName": "delete_events"
+      },
+      "description": "Sample for DeleteEvents",
+      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_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": "clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient",
+          "shortName": "ErrorStatsServiceClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient.delete_events",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.DeleteEvents",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
+            "shortName": "ErrorStatsService"
+          },
+          "shortName": "DeleteEvents"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.DeleteEventsRequest"
+          },
+          {
+            "name": "project_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.errorreporting_v1beta1.types.DeleteEventsResponse",
+        "shortName": "delete_events"
+      },
+      "description": "Sample for DeleteEvents",
+      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_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": "clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient",
+          "shortName": "ErrorStatsServiceAsyncClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient.list_events",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListEvents",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
+            "shortName": "ErrorStatsService"
+          },
+          "shortName": "ListEvents"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.ListEventsRequest"
+          },
+          {
+            "name": "project_name",
+            "type": "str"
+          },
+          {
+            "name": "group_id",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListEventsAsyncPager",
+        "shortName": "list_events"
+      },
+      "description": "Sample for ListEvents",
+      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_async",
+      "segments": [
+        {
+          "end": 53,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 53,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 54,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient",
+          "shortName": "ErrorStatsServiceClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient.list_events",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListEvents",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
+            "shortName": "ErrorStatsService"
+          },
+          "shortName": "ListEvents"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.ListEventsRequest"
+          },
+          {
+            "name": "project_name",
+            "type": "str"
+          },
+          {
+            "name": "group_id",
+            "type": "str"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListEventsPager",
+        "shortName": "list_events"
+      },
+      "description": "Sample for ListEvents",
+      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_sync",
+      "segments": [
+        {
+          "end": 53,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 53,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 46,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 47,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 54,
+          "start": 50,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient",
+          "shortName": "ErrorStatsServiceAsyncClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient.list_group_stats",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListGroupStats",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
+            "shortName": "ErrorStatsService"
+          },
+          "shortName": "ListGroupStats"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.ListGroupStatsRequest"
+          },
+          {
+            "name": "project_name",
+            "type": "str"
+          },
+          {
+            "name": "time_range",
+            "type": "google.cloud.errorreporting_v1beta1.types.QueryTimeRange"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListGroupStatsAsyncPager",
+        "shortName": "list_group_stats"
+      },
+      "description": "Sample for ListGroupStats",
+      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_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": "clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient",
+          "shortName": "ErrorStatsServiceClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient.list_group_stats",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListGroupStats",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
+            "shortName": "ErrorStatsService"
+          },
+          "shortName": "ListGroupStats"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.ListGroupStatsRequest"
+          },
+          {
+            "name": "project_name",
+            "type": "str"
+          },
+          {
+            "name": "time_range",
+            "type": "google.cloud.errorreporting_v1beta1.types.QueryTimeRange"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListGroupStatsPager",
+        "shortName": "list_group_stats"
+      },
+      "description": "Sample for ListGroupStats",
+      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_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": "clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "async": true,
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ReportErrorsServiceAsyncClient",
+          "shortName": "ReportErrorsServiceAsyncClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ReportErrorsServiceAsyncClient.report_error_event",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService.ReportErrorEvent",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService",
+            "shortName": "ReportErrorsService"
+          },
+          "shortName": "ReportErrorEvent"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.ReportErrorEventRequest"
+          },
+          {
+            "name": "project_name",
+            "type": "str"
+          },
+          {
+            "name": "event",
+            "type": "google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.errorreporting_v1beta1.types.ReportErrorEventResponse",
+        "shortName": "report_error_event"
+      },
+      "description": "Sample for ReportErrorEvent",
+      "file": "clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_async",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 50,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py"
+    },
+    {
+      "canonical": true,
+      "clientMethod": {
+        "client": {
+          "fullName": "google.cloud.errorreporting_v1beta1.ReportErrorsServiceClient",
+          "shortName": "ReportErrorsServiceClient"
+        },
+        "fullName": "google.cloud.errorreporting_v1beta1.ReportErrorsServiceClient.report_error_event",
+        "method": {
+          "fullName": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService.ReportErrorEvent",
+          "service": {
+            "fullName": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService",
+            "shortName": "ReportErrorsService"
+          },
+          "shortName": "ReportErrorEvent"
+        },
+        "parameters": [
+          {
+            "name": "request",
+            "type": "google.cloud.errorreporting_v1beta1.types.ReportErrorEventRequest"
+          },
+          {
+            "name": "project_name",
+            "type": "str"
+          },
+          {
+            "name": "event",
+            "type": "google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent"
+          },
+          {
+            "name": "retry",
+            "type": "google.api_core.retry.Retry"
+          },
+          {
+            "name": "timeout",
+            "type": "float"
+          },
+          {
+            "name": "metadata",
+            "type": "Sequence[Tuple[str, str]"
+          }
+        ],
+        "resultType": "google.cloud.errorreporting_v1beta1.types.ReportErrorEventResponse",
+        "shortName": "report_error_event"
+      },
+      "description": "Sample for ReportErrorEvent",
+      "file": "clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py",
+      "language": "PYTHON",
+      "origin": "API_DEFINITION",
+      "regionTag": "clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_sync",
+      "segments": [
+        {
+          "end": 55,
+          "start": 27,
+          "type": "FULL"
+        },
+        {
+          "end": 55,
+          "start": 27,
+          "type": "SHORT"
+        },
+        {
+          "end": 40,
+          "start": 38,
+          "type": "CLIENT_INITIALIZATION"
+        },
+        {
+          "end": 49,
+          "start": 41,
+          "type": "REQUEST_INITIALIZATION"
+        },
+        {
+          "end": 52,
+          "start": 50,
+          "type": "REQUEST_EXECUTION"
+        },
+        {
+          "end": 56,
+          "start": 53,
+          "type": "RESPONSE_HANDLING"
+        }
+      ],
+      "title": "clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py"
+    }
+  ]
+}
diff --git a/owl-bot-staging/v1beta1/scripts/fixup_errorreporting_v1beta1_keywords.py b/owl-bot-staging/v1beta1/scripts/fixup_errorreporting_v1beta1_keywords.py
new file mode 100644
index 00000000..813f0be6
--- /dev/null
+++ b/owl-bot-staging/v1beta1/scripts/fixup_errorreporting_v1beta1_keywords.py
@@ -0,0 +1,181 @@
+#! /usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 errorreportingCallTransformer(cst.CSTTransformer):
+    CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata')
+    METHOD_TO_PARAMS: Dict[str, Tuple[str]] = {
+        'delete_events': ('project_name', ),
+        'get_group': ('group_name', ),
+        'list_events': ('project_name', 'group_id', 'service_filter', 'time_range', 'page_size', 'page_token', ),
+        'list_group_stats': ('project_name', 'group_id', 'service_filter', 'time_range', 'timed_count_duration', 'alignment', 'alignment_time', 'order', 'page_size', 'page_token', ),
+        'report_error_event': ('project_name', 'event', ),
+        'update_group': ('group', ),
+    }
+
+    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=errorreportingCallTransformer(),
+):
+    """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 errorreporting 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/v1beta1/setup.py b/owl-bot-staging/v1beta1/setup.py
new file mode 100644
index 00000000..5eec54f7
--- /dev/null
+++ b/owl-bot-staging/v1beta1/setup.py
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 setuptools # type: ignore
+
+package_root = os.path.abspath(os.path.dirname(__file__))
+
+name = 'google-cloud-error-reporting'
+
+
+description = "Google Cloud Error Reporting API client library"
+
+version = {}
+with open(os.path.join(package_root, 'google/cloud/errorreporting/gapic_version.py')) as fp:
+    exec(fp.read(), version)
+version = version["__version__"]
+
+if version[0] == "0":
+    release_status = "Development Status :: 4 - Beta"
+else:
+    release_status = "Development Status :: 5 - Production/Stable"
+
+dependencies = [
+    "google-api-core[grpc] >= 1.34.0, <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.*",
+    "proto-plus >= 1.22.0, <2.0.0dev",
+    "proto-plus >= 1.22.2, <2.0.0dev; python_version>='3.11'",
+    "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
+]
+url = "https://github.com/googleapis/python-error-reporting"
+
+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.PEP420PackageFinder.find()
+    if package.startswith("google")
+]
+
+namespaces = ["google", "google.cloud"]
+
+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",
+        "Operating System :: OS Independent",
+        "Topic :: Internet",
+    ],
+    platforms="Posix; MacOS X; Windows",
+    packages=packages,
+    python_requires=">=3.7",
+    namespace_packages=namespaces,
+    install_requires=dependencies,
+    include_package_data=True,
+    zip_safe=False,
+)
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.10.txt b/owl-bot-staging/v1beta1/testing/constraints-3.10.txt
new file mode 100644
index 00000000..ed7f9aed
--- /dev/null
+++ b/owl-bot-staging/v1beta1/testing/constraints-3.10.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.11.txt b/owl-bot-staging/v1beta1/testing/constraints-3.11.txt
new file mode 100644
index 00000000..ed7f9aed
--- /dev/null
+++ b/owl-bot-staging/v1beta1/testing/constraints-3.11.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.12.txt b/owl-bot-staging/v1beta1/testing/constraints-3.12.txt
new file mode 100644
index 00000000..ed7f9aed
--- /dev/null
+++ b/owl-bot-staging/v1beta1/testing/constraints-3.12.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.7.txt b/owl-bot-staging/v1beta1/testing/constraints-3.7.txt
new file mode 100644
index 00000000..6c44adfe
--- /dev/null
+++ b/owl-bot-staging/v1beta1/testing/constraints-3.7.txt
@@ -0,0 +1,9 @@
+# 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.0
+proto-plus==1.22.0
+protobuf==3.19.5
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.8.txt b/owl-bot-staging/v1beta1/testing/constraints-3.8.txt
new file mode 100644
index 00000000..ed7f9aed
--- /dev/null
+++ b/owl-bot-staging/v1beta1/testing/constraints-3.8.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.9.txt b/owl-bot-staging/v1beta1/testing/constraints-3.9.txt
new file mode 100644
index 00000000..ed7f9aed
--- /dev/null
+++ b/owl-bot-staging/v1beta1/testing/constraints-3.9.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/owl-bot-staging/v1beta1/tests/__init__.py b/owl-bot-staging/v1beta1/tests/__init__.py
new file mode 100644
index 00000000..1b4db446
--- /dev/null
+++ b/owl-bot-staging/v1beta1/tests/__init__.py
@@ -0,0 +1,16 @@
+
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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/v1beta1/tests/unit/__init__.py b/owl-bot-staging/v1beta1/tests/unit/__init__.py
new file mode 100644
index 00000000..1b4db446
--- /dev/null
+++ b/owl-bot-staging/v1beta1/tests/unit/__init__.py
@@ -0,0 +1,16 @@
+
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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/v1beta1/tests/unit/gapic/__init__.py b/owl-bot-staging/v1beta1/tests/unit/gapic/__init__.py
new file mode 100644
index 00000000..1b4db446
--- /dev/null
+++ b/owl-bot-staging/v1beta1/tests/unit/gapic/__init__.py
@@ -0,0 +1,16 @@
+
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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/v1beta1/tests/unit/gapic/errorreporting_v1beta1/__init__.py b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/__init__.py
new file mode 100644
index 00000000..1b4db446
--- /dev/null
+++ b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/__init__.py
@@ -0,0 +1,16 @@
+
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
new file mode 100644
index 00000000..7eac8dd2
--- /dev/null
+++ b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
@@ -0,0 +1,2172 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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
+from google.protobuf import json_format
+import json
+import math
+import pytest
+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
+
+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.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.errorreporting_v1beta1.services.error_group_service import ErrorGroupServiceAsyncClient
+from google.cloud.errorreporting_v1beta1.services.error_group_service import ErrorGroupServiceClient
+from google.cloud.errorreporting_v1beta1.services.error_group_service import transports
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_group_service
+from google.oauth2 import service_account
+import google.auth
+
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+
+# 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
+
+
+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 ErrorGroupServiceClient._get_default_mtls_endpoint(None) is None
+    assert ErrorGroupServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert ErrorGroupServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert ErrorGroupServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert ErrorGroupServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert ErrorGroupServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (ErrorGroupServiceClient, "grpc"),
+    (ErrorGroupServiceAsyncClient, "grpc_asyncio"),
+    (ErrorGroupServiceClient, "rest"),
+])
+def test_error_group_service_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 == (
+            'clouderrorreporting.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://clouderrorreporting.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.ErrorGroupServiceGrpcTransport, "grpc"),
+    (transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.ErrorGroupServiceRestTransport, "rest"),
+])
+def test_error_group_service_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", [
+    (ErrorGroupServiceClient, "grpc"),
+    (ErrorGroupServiceAsyncClient, "grpc_asyncio"),
+    (ErrorGroupServiceClient, "rest"),
+])
+def test_error_group_service_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 == (
+            'clouderrorreporting.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://clouderrorreporting.googleapis.com'
+        )
+
+
+def test_error_group_service_client_get_transport_class():
+    transport = ErrorGroupServiceClient.get_transport_class()
+    available_transports = [
+        transports.ErrorGroupServiceGrpcTransport,
+        transports.ErrorGroupServiceRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = ErrorGroupServiceClient.get_transport_class("grpc")
+    assert transport == transports.ErrorGroupServiceGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc"),
+    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest"),
+])
+@mock.patch.object(ErrorGroupServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceClient))
+@mock.patch.object(ErrorGroupServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceAsyncClient))
+def test_error_group_service_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(ErrorGroupServiceClient, '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(ErrorGroupServiceClient, '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,
+                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):
+            client = client_class(transport=transport_name)
+
+    # 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):
+            client = client_class(transport=transport_name)
+
+    # 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,
+            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,
+            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", [
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc", "true"),
+    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc", "false"),
+    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest", "true"),
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest", "false"),
+])
+@mock.patch.object(ErrorGroupServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceClient))
+@mock.patch.object(ErrorGroupServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_error_group_service_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
+            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
+                        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,
+                    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", [
+    ErrorGroupServiceClient, ErrorGroupServiceAsyncClient
+])
+@mock.patch.object(ErrorGroupServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceClient))
+@mock.patch.object(ErrorGroupServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceAsyncClient))
+def test_error_group_service_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
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc"),
+    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest"),
+])
+def test_error_group_service_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,
+            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", [
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc", grpc_helpers),
+    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest", None),
+])
+def test_error_group_service_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,
+            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_error_group_service_client_client_options_from_dict():
+    with mock.patch('google.cloud.errorreporting_v1beta1.services.error_group_service.transports.ErrorGroupServiceGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = ErrorGroupServiceClient(
+            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", [
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc", grpc_helpers),
+    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_error_group_service_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,
+            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(
+            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  error_group_service.GetGroupRequest,
+  dict,
+])
+def test_get_group(request_type, transport: str = 'grpc'):
+    client = ErrorGroupServiceClient(
+        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_group),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = common.ErrorGroup(
+            name='name_value',
+            group_id='group_id_value',
+            resolution_status=common.ResolutionStatus.OPEN,
+        )
+        response = client.get_group(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_group_service.GetGroupRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, common.ErrorGroup)
+    assert response.name == 'name_value'
+    assert response.group_id == 'group_id_value'
+    assert response.resolution_status == common.ResolutionStatus.OPEN
+
+
+def test_get_group_empty_call():
+    # This test is a coverage failsafe to make sure that totally empty calls,
+    # i.e. request == None and no flattened fields passed, work.
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_group),
+            '__call__') as call:
+        client.get_group()
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_group_service.GetGroupRequest()
+
+@pytest.mark.asyncio
+async def test_get_group_async(transport: str = 'grpc_asyncio', request_type=error_group_service.GetGroupRequest):
+    client = ErrorGroupServiceAsyncClient(
+        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_group),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup(
+            name='name_value',
+            group_id='group_id_value',
+            resolution_status=common.ResolutionStatus.OPEN,
+        ))
+        response = await client.get_group(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_group_service.GetGroupRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, common.ErrorGroup)
+    assert response.name == 'name_value'
+    assert response.group_id == 'group_id_value'
+    assert response.resolution_status == common.ResolutionStatus.OPEN
+
+
+@pytest.mark.asyncio
+async def test_get_group_async_from_dict():
+    await test_get_group_async(request_type=dict)
+
+
+def test_get_group_field_headers():
+    client = ErrorGroupServiceClient(
+        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 = error_group_service.GetGroupRequest()
+
+    request.group_name = 'group_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_group),
+            '__call__') as call:
+        call.return_value = common.ErrorGroup()
+        client.get_group(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',
+        'group_name=group_name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_get_group_field_headers_async():
+    client = ErrorGroupServiceAsyncClient(
+        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 = error_group_service.GetGroupRequest()
+
+    request.group_name = 'group_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_group),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup())
+        await client.get_group(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',
+        'group_name=group_name_value',
+    ) in kw['metadata']
+
+
+def test_get_group_flattened():
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_group),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = common.ErrorGroup()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.get_group(
+            group_name='group_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].group_name
+        mock_val = 'group_name_value'
+        assert arg == mock_val
+
+
+def test_get_group_flattened_error():
+    client = ErrorGroupServiceClient(
+        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_group(
+            error_group_service.GetGroupRequest(),
+            group_name='group_name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_get_group_flattened_async():
+    client = ErrorGroupServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.get_group),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = common.ErrorGroup()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.get_group(
+            group_name='group_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].group_name
+        mock_val = 'group_name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_get_group_flattened_error_async():
+    client = ErrorGroupServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.get_group(
+            error_group_service.GetGroupRequest(),
+            group_name='group_name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  error_group_service.UpdateGroupRequest,
+  dict,
+])
+def test_update_group(request_type, transport: str = 'grpc'):
+    client = ErrorGroupServiceClient(
+        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_group),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = common.ErrorGroup(
+            name='name_value',
+            group_id='group_id_value',
+            resolution_status=common.ResolutionStatus.OPEN,
+        )
+        response = client.update_group(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_group_service.UpdateGroupRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, common.ErrorGroup)
+    assert response.name == 'name_value'
+    assert response.group_id == 'group_id_value'
+    assert response.resolution_status == common.ResolutionStatus.OPEN
+
+
+def test_update_group_empty_call():
+    # This test is a coverage failsafe to make sure that totally empty calls,
+    # i.e. request == None and no flattened fields passed, work.
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_group),
+            '__call__') as call:
+        client.update_group()
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_group_service.UpdateGroupRequest()
+
+@pytest.mark.asyncio
+async def test_update_group_async(transport: str = 'grpc_asyncio', request_type=error_group_service.UpdateGroupRequest):
+    client = ErrorGroupServiceAsyncClient(
+        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_group),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup(
+            name='name_value',
+            group_id='group_id_value',
+            resolution_status=common.ResolutionStatus.OPEN,
+        ))
+        response = await client.update_group(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_group_service.UpdateGroupRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, common.ErrorGroup)
+    assert response.name == 'name_value'
+    assert response.group_id == 'group_id_value'
+    assert response.resolution_status == common.ResolutionStatus.OPEN
+
+
+@pytest.mark.asyncio
+async def test_update_group_async_from_dict():
+    await test_update_group_async(request_type=dict)
+
+
+def test_update_group_field_headers():
+    client = ErrorGroupServiceClient(
+        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 = error_group_service.UpdateGroupRequest()
+
+    request.group.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_group),
+            '__call__') as call:
+        call.return_value = common.ErrorGroup()
+        client.update_group(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',
+        'group.name=name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_update_group_field_headers_async():
+    client = ErrorGroupServiceAsyncClient(
+        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 = error_group_service.UpdateGroupRequest()
+
+    request.group.name = 'name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_group),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup())
+        await client.update_group(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',
+        'group.name=name_value',
+    ) in kw['metadata']
+
+
+def test_update_group_flattened():
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_group),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = common.ErrorGroup()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.update_group(
+            group=common.ErrorGroup(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].group
+        mock_val = common.ErrorGroup(name='name_value')
+        assert arg == mock_val
+
+
+def test_update_group_flattened_error():
+    client = ErrorGroupServiceClient(
+        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_group(
+            error_group_service.UpdateGroupRequest(),
+            group=common.ErrorGroup(name='name_value'),
+        )
+
+@pytest.mark.asyncio
+async def test_update_group_flattened_async():
+    client = ErrorGroupServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.update_group),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = common.ErrorGroup()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.update_group(
+            group=common.ErrorGroup(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].group
+        mock_val = common.ErrorGroup(name='name_value')
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_update_group_flattened_error_async():
+    client = ErrorGroupServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.update_group(
+            error_group_service.UpdateGroupRequest(),
+            group=common.ErrorGroup(name='name_value'),
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+    error_group_service.GetGroupRequest,
+    dict,
+])
+def test_get_group_rest(request_type):
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'group_name': 'projects/sample1/groups/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 = common.ErrorGroup(
+              name='name_value',
+              group_id='group_id_value',
+              resolution_status=common.ResolutionStatus.OPEN,
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = common.ErrorGroup.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.get_group(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, common.ErrorGroup)
+    assert response.name == 'name_value'
+    assert response.group_id == 'group_id_value'
+    assert response.resolution_status == common.ResolutionStatus.OPEN
+
+
+def test_get_group_rest_required_fields(request_type=error_group_service.GetGroupRequest):
+    transport_class = transports.ErrorGroupServiceRestTransport
+
+    request_init = {}
+    request_init["group_name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        including_default_value_fields=False,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_group._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["groupName"] = 'group_name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_group._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "groupName" in jsonified_request
+    assert jsonified_request["groupName"] == 'group_name_value'
+
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = common.ErrorGroup()
+    # 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
+
+            pb_return_value = common.ErrorGroup.pb(return_value)
+            json_return_value = json_format.MessageToJson(pb_return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.get_group(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_get_group_rest_unset_required_fields():
+    transport = transports.ErrorGroupServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.get_group._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("groupName", )))
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_get_group_rest_interceptors(null_interceptor):
+    transport = transports.ErrorGroupServiceRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ErrorGroupServiceRestInterceptor(),
+        )
+    client = ErrorGroupServiceClient(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.ErrorGroupServiceRestInterceptor, "post_get_group") as post, \
+         mock.patch.object(transports.ErrorGroupServiceRestInterceptor, "pre_get_group") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = error_group_service.GetGroupRequest.pb(error_group_service.GetGroupRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = Response()
+        req.return_value.status_code = 200
+        req.return_value.request = PreparedRequest()
+        req.return_value._content = common.ErrorGroup.to_json(common.ErrorGroup())
+
+        request = error_group_service.GetGroupRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = common.ErrorGroup()
+
+        client.get_group(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_get_group_rest_bad_request(transport: str = 'rest', request_type=error_group_service.GetGroupRequest):
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'group_name': 'projects/sample1/groups/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 = Response()
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.get_group(request)
+
+
+def test_get_group_rest_flattened():
+    client = ErrorGroupServiceClient(
+        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 = common.ErrorGroup()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'group_name': 'projects/sample1/groups/sample2'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            group_name='group_name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = common.ErrorGroup.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.get_group(**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/v1beta1/{group_name=projects/*/groups/*}" % client.transport._host, args[1])
+
+
+def test_get_group_rest_flattened_error(transport: str = 'rest'):
+    client = ErrorGroupServiceClient(
+        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_group(
+            error_group_service.GetGroupRequest(),
+            group_name='group_name_value',
+        )
+
+
+def test_get_group_rest_error():
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest'
+    )
+
+
+@pytest.mark.parametrize("request_type", [
+    error_group_service.UpdateGroupRequest,
+    dict,
+])
+def test_update_group_rest(request_type):
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'group': {'name': 'projects/sample1/groups/sample2'}}
+    request_init["group"] = {'name': 'projects/sample1/groups/sample2', 'group_id': 'group_id_value', 'tracking_issues': [{'url': 'url_value'}], 'resolution_status': 1}
+    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 = common.ErrorGroup(
+              name='name_value',
+              group_id='group_id_value',
+              resolution_status=common.ResolutionStatus.OPEN,
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = common.ErrorGroup.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.update_group(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, common.ErrorGroup)
+    assert response.name == 'name_value'
+    assert response.group_id == 'group_id_value'
+    assert response.resolution_status == common.ResolutionStatus.OPEN
+
+
+def test_update_group_rest_required_fields(request_type=error_group_service.UpdateGroupRequest):
+    transport_class = transports.ErrorGroupServiceRestTransport
+
+    request_init = {}
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        including_default_value_fields=False,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_group._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_group._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = common.ErrorGroup()
+    # 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': "put",
+                'query_params': pb_request,
+            }
+            transcode_result['body'] = pb_request
+            transcode.return_value = transcode_result
+
+            response_value = Response()
+            response_value.status_code = 200
+
+            pb_return_value = common.ErrorGroup.pb(return_value)
+            json_return_value = json_format.MessageToJson(pb_return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.update_group(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_update_group_rest_unset_required_fields():
+    transport = transports.ErrorGroupServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.update_group._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("group", )))
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_update_group_rest_interceptors(null_interceptor):
+    transport = transports.ErrorGroupServiceRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ErrorGroupServiceRestInterceptor(),
+        )
+    client = ErrorGroupServiceClient(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.ErrorGroupServiceRestInterceptor, "post_update_group") as post, \
+         mock.patch.object(transports.ErrorGroupServiceRestInterceptor, "pre_update_group") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = error_group_service.UpdateGroupRequest.pb(error_group_service.UpdateGroupRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = Response()
+        req.return_value.status_code = 200
+        req.return_value.request = PreparedRequest()
+        req.return_value._content = common.ErrorGroup.to_json(common.ErrorGroup())
+
+        request = error_group_service.UpdateGroupRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = common.ErrorGroup()
+
+        client.update_group(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_update_group_rest_bad_request(transport: str = 'rest', request_type=error_group_service.UpdateGroupRequest):
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'group': {'name': 'projects/sample1/groups/sample2'}}
+    request_init["group"] = {'name': 'projects/sample1/groups/sample2', 'group_id': 'group_id_value', 'tracking_issues': [{'url': 'url_value'}], 'resolution_status': 1}
+    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 = Response()
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.update_group(request)
+
+
+def test_update_group_rest_flattened():
+    client = ErrorGroupServiceClient(
+        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 = common.ErrorGroup()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'group': {'name': 'projects/sample1/groups/sample2'}}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            group=common.ErrorGroup(name='name_value'),
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = common.ErrorGroup.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.update_group(**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/v1beta1/{group.name=projects/*/groups/*}" % client.transport._host, args[1])
+
+
+def test_update_group_rest_flattened_error(transport: str = 'rest'):
+    client = ErrorGroupServiceClient(
+        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_group(
+            error_group_service.UpdateGroupRequest(),
+            group=common.ErrorGroup(name='name_value'),
+        )
+
+
+def test_update_group_rest_error():
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest'
+    )
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.ErrorGroupServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ErrorGroupServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.ErrorGroupServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ErrorGroupServiceClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.ErrorGroupServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ErrorGroupServiceClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = mock.Mock()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ErrorGroupServiceClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.ErrorGroupServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ErrorGroupServiceClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ErrorGroupServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = ErrorGroupServiceClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ErrorGroupServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.ErrorGroupServiceGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.ErrorGroupServiceGrpcTransport,
+    transports.ErrorGroupServiceGrpcAsyncIOTransport,
+    transports.ErrorGroupServiceRestTransport,
+])
+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()
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "rest",
+])
+def test_transport_kind(transport_name):
+    transport = ErrorGroupServiceClient.get_transport_class(transport_name)(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert transport.kind == transport_name
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.ErrorGroupServiceGrpcTransport,
+    )
+
+def test_error_group_service_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.ErrorGroupServiceTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_error_group_service_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.errorreporting_v1beta1.services.error_group_service.transports.ErrorGroupServiceTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.ErrorGroupServiceTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'get_group',
+        'update_group',
+    )
+    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_error_group_service_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.errorreporting_v1beta1.services.error_group_service.transports.ErrorGroupServiceTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ErrorGroupServiceTransport(
+            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_error_group_service_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.errorreporting_v1beta1.services.error_group_service.transports.ErrorGroupServiceTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ErrorGroupServiceTransport()
+        adc.assert_called_once()
+
+
+def test_error_group_service_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)
+        ErrorGroupServiceClient()
+        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.ErrorGroupServiceGrpcTransport,
+        transports.ErrorGroupServiceGrpcAsyncIOTransport,
+    ],
+)
+def test_error_group_service_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.ErrorGroupServiceGrpcTransport,
+        transports.ErrorGroupServiceGrpcAsyncIOTransport,
+        transports.ErrorGroupServiceRestTransport,
+    ],
+)
+def test_error_group_service_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.ErrorGroupServiceGrpcTransport, grpc_helpers),
+        (transports.ErrorGroupServiceGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_error_group_service_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.ErrorGroupServiceGrpcTransport, transports.ErrorGroupServiceGrpcAsyncIOTransport])
+def test_error_group_service_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_error_group_service_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.ErrorGroupServiceRestTransport (
+            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_error_group_service_host_no_port(transport_name):
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'clouderrorreporting.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://clouderrorreporting.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_error_group_service_host_with_port(transport_name):
+    client = ErrorGroupServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'clouderrorreporting.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://clouderrorreporting.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_error_group_service_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = ErrorGroupServiceClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = ErrorGroupServiceClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.get_group._session
+    session2 = client2.transport.get_group._session
+    assert session1 != session2
+    session1 = client1.transport.update_group._session
+    session2 = client2.transport.update_group._session
+    assert session1 != session2
+def test_error_group_service_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ErrorGroupServiceGrpcTransport(
+        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_error_group_service_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ErrorGroupServiceGrpcAsyncIOTransport(
+        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.ErrorGroupServiceGrpcTransport, transports.ErrorGroupServiceGrpcAsyncIOTransport])
+def test_error_group_service_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.ErrorGroupServiceGrpcTransport, transports.ErrorGroupServiceGrpcAsyncIOTransport])
+def test_error_group_service_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_error_group_path():
+    project = "squid"
+    group = "clam"
+    expected = "projects/{project}/groups/{group}".format(project=project, group=group, )
+    actual = ErrorGroupServiceClient.error_group_path(project, group)
+    assert expected == actual
+
+
+def test_parse_error_group_path():
+    expected = {
+        "project": "whelk",
+        "group": "octopus",
+    }
+    path = ErrorGroupServiceClient.error_group_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorGroupServiceClient.parse_error_group_path(path)
+    assert expected == actual
+
+def test_common_billing_account_path():
+    billing_account = "oyster"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = ErrorGroupServiceClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "nudibranch",
+    }
+    path = ErrorGroupServiceClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorGroupServiceClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "cuttlefish"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = ErrorGroupServiceClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "mussel",
+    }
+    path = ErrorGroupServiceClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorGroupServiceClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "winkle"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = ErrorGroupServiceClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "nautilus",
+    }
+    path = ErrorGroupServiceClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorGroupServiceClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "scallop"
+    expected = "projects/{project}".format(project=project, )
+    actual = ErrorGroupServiceClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "abalone",
+    }
+    path = ErrorGroupServiceClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorGroupServiceClient.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 = ErrorGroupServiceClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "whelk",
+        "location": "octopus",
+    }
+    path = ErrorGroupServiceClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorGroupServiceClient.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.ErrorGroupServiceTransport, '_prep_wrapped_messages') as prep:
+        client = ErrorGroupServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.ErrorGroupServiceTransport, '_prep_wrapped_messages') as prep:
+        transport_class = ErrorGroupServiceClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+@pytest.mark.asyncio
+async def test_transport_close_async():
+    client = ErrorGroupServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        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():
+    transports = {
+        "rest": "_session",
+        "grpc": "_grpc_channel",
+    }
+
+    for transport, close_name in transports.items():
+        client = ErrorGroupServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        with mock.patch.object(type(getattr(client.transport, close_name)), "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 = ErrorGroupServiceClient(
+            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", [
+    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport),
+    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport),
+])
+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,
+                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/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
new file mode 100644
index 00000000..62bd7eaf
--- /dev/null
+++ b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
@@ -0,0 +1,3149 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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
+from google.protobuf import json_format
+import json
+import math
+import pytest
+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
+
+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.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.errorreporting_v1beta1.services.error_stats_service import ErrorStatsServiceAsyncClient
+from google.cloud.errorreporting_v1beta1.services.error_stats_service import ErrorStatsServiceClient
+from google.cloud.errorreporting_v1beta1.services.error_stats_service import pagers
+from google.cloud.errorreporting_v1beta1.services.error_stats_service import transports
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import error_stats_service
+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
+
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+
+# 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
+
+
+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 ErrorStatsServiceClient._get_default_mtls_endpoint(None) is None
+    assert ErrorStatsServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert ErrorStatsServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert ErrorStatsServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert ErrorStatsServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert ErrorStatsServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (ErrorStatsServiceClient, "grpc"),
+    (ErrorStatsServiceAsyncClient, "grpc_asyncio"),
+    (ErrorStatsServiceClient, "rest"),
+])
+def test_error_stats_service_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 == (
+            'clouderrorreporting.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://clouderrorreporting.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.ErrorStatsServiceGrpcTransport, "grpc"),
+    (transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.ErrorStatsServiceRestTransport, "rest"),
+])
+def test_error_stats_service_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", [
+    (ErrorStatsServiceClient, "grpc"),
+    (ErrorStatsServiceAsyncClient, "grpc_asyncio"),
+    (ErrorStatsServiceClient, "rest"),
+])
+def test_error_stats_service_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 == (
+            'clouderrorreporting.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://clouderrorreporting.googleapis.com'
+        )
+
+
+def test_error_stats_service_client_get_transport_class():
+    transport = ErrorStatsServiceClient.get_transport_class()
+    available_transports = [
+        transports.ErrorStatsServiceGrpcTransport,
+        transports.ErrorStatsServiceRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = ErrorStatsServiceClient.get_transport_class("grpc")
+    assert transport == transports.ErrorStatsServiceGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc"),
+    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest"),
+])
+@mock.patch.object(ErrorStatsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceClient))
+@mock.patch.object(ErrorStatsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceAsyncClient))
+def test_error_stats_service_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(ErrorStatsServiceClient, '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(ErrorStatsServiceClient, '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,
+                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):
+            client = client_class(transport=transport_name)
+
+    # 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):
+            client = client_class(transport=transport_name)
+
+    # 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,
+            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,
+            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", [
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc", "true"),
+    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc", "false"),
+    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest", "true"),
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest", "false"),
+])
+@mock.patch.object(ErrorStatsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceClient))
+@mock.patch.object(ErrorStatsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_error_stats_service_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
+            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
+                        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,
+                    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", [
+    ErrorStatsServiceClient, ErrorStatsServiceAsyncClient
+])
+@mock.patch.object(ErrorStatsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceClient))
+@mock.patch.object(ErrorStatsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceAsyncClient))
+def test_error_stats_service_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
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc"),
+    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest"),
+])
+def test_error_stats_service_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,
+            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", [
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc", grpc_helpers),
+    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest", None),
+])
+def test_error_stats_service_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,
+            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_error_stats_service_client_client_options_from_dict():
+    with mock.patch('google.cloud.errorreporting_v1beta1.services.error_stats_service.transports.ErrorStatsServiceGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = ErrorStatsServiceClient(
+            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", [
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc", grpc_helpers),
+    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_error_stats_service_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,
+            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(
+            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  error_stats_service.ListGroupStatsRequest,
+  dict,
+])
+def test_list_group_stats(request_type, transport: str = 'grpc'):
+    client = ErrorStatsServiceClient(
+        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_group_stats),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.ListGroupStatsResponse(
+            next_page_token='next_page_token_value',
+        )
+        response = client.list_group_stats(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.ListGroupStatsRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListGroupStatsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_group_stats_empty_call():
+    # This test is a coverage failsafe to make sure that totally empty calls,
+    # i.e. request == None and no flattened fields passed, work.
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_group_stats),
+            '__call__') as call:
+        client.list_group_stats()
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.ListGroupStatsRequest()
+
+@pytest.mark.asyncio
+async def test_list_group_stats_async(transport: str = 'grpc_asyncio', request_type=error_stats_service.ListGroupStatsRequest):
+    client = ErrorStatsServiceAsyncClient(
+        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_group_stats),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListGroupStatsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        response = await client.list_group_stats(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.ListGroupStatsRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListGroupStatsAsyncPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.asyncio
+async def test_list_group_stats_async_from_dict():
+    await test_list_group_stats_async(request_type=dict)
+
+
+def test_list_group_stats_field_headers():
+    client = ErrorStatsServiceClient(
+        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 = error_stats_service.ListGroupStatsRequest()
+
+    request.project_name = 'project_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_group_stats),
+            '__call__') as call:
+        call.return_value = error_stats_service.ListGroupStatsResponse()
+        client.list_group_stats(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',
+        'project_name=project_name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_list_group_stats_field_headers_async():
+    client = ErrorStatsServiceAsyncClient(
+        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 = error_stats_service.ListGroupStatsRequest()
+
+    request.project_name = 'project_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_group_stats),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListGroupStatsResponse())
+        await client.list_group_stats(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',
+        'project_name=project_name_value',
+    ) in kw['metadata']
+
+
+def test_list_group_stats_flattened():
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_group_stats),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.ListGroupStatsResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.list_group_stats(
+            project_name='project_name_value',
+            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
+        )
+
+        # 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].project_name
+        mock_val = 'project_name_value'
+        assert arg == mock_val
+        arg = args[0].time_range
+        mock_val = error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR)
+        assert arg == mock_val
+
+
+def test_list_group_stats_flattened_error():
+    client = ErrorStatsServiceClient(
+        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_group_stats(
+            error_stats_service.ListGroupStatsRequest(),
+            project_name='project_name_value',
+            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
+        )
+
+@pytest.mark.asyncio
+async def test_list_group_stats_flattened_async():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_group_stats),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.ListGroupStatsResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListGroupStatsResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.list_group_stats(
+            project_name='project_name_value',
+            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
+        )
+
+        # 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].project_name
+        mock_val = 'project_name_value'
+        assert arg == mock_val
+        arg = args[0].time_range
+        mock_val = error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR)
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_list_group_stats_flattened_error_async():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.list_group_stats(
+            error_stats_service.ListGroupStatsRequest(),
+            project_name='project_name_value',
+            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
+        )
+
+
+def test_list_group_stats_pager(transport_name: str = "grpc"):
+    client = ErrorStatsServiceClient(
+        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_group_stats),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+            ),
+            RuntimeError,
+        )
+
+        metadata = ()
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ('project_name', ''),
+            )),
+        )
+        pager = client.list_group_stats(request={})
+
+        assert pager._metadata == metadata
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, error_stats_service.ErrorGroupStats)
+                   for i in results)
+def test_list_group_stats_pages(transport_name: str = "grpc"):
+    client = ErrorStatsServiceClient(
+        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_group_stats),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = list(client.list_group_stats(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_group_stats_async_pager():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_group_stats),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+            ),
+            RuntimeError,
+        )
+        async_pager = await client.list_group_stats(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, error_stats_service.ErrorGroupStats)
+                for i in responses)
+
+
+@pytest.mark.asyncio
+async def test_list_group_stats_async_pages():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_group_stats),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+            ),
+            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_group_stats(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", [
+  error_stats_service.ListEventsRequest,
+  dict,
+])
+def test_list_events(request_type, transport: str = 'grpc'):
+    client = ErrorStatsServiceClient(
+        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_events),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.ListEventsResponse(
+            next_page_token='next_page_token_value',
+        )
+        response = client.list_events(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.ListEventsRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListEventsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_events_empty_call():
+    # This test is a coverage failsafe to make sure that totally empty calls,
+    # i.e. request == None and no flattened fields passed, work.
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_events),
+            '__call__') as call:
+        client.list_events()
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.ListEventsRequest()
+
+@pytest.mark.asyncio
+async def test_list_events_async(transport: str = 'grpc_asyncio', request_type=error_stats_service.ListEventsRequest):
+    client = ErrorStatsServiceAsyncClient(
+        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_events),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListEventsResponse(
+            next_page_token='next_page_token_value',
+        ))
+        response = await client.list_events(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.ListEventsRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListEventsAsyncPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+@pytest.mark.asyncio
+async def test_list_events_async_from_dict():
+    await test_list_events_async(request_type=dict)
+
+
+def test_list_events_field_headers():
+    client = ErrorStatsServiceClient(
+        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 = error_stats_service.ListEventsRequest()
+
+    request.project_name = 'project_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_events),
+            '__call__') as call:
+        call.return_value = error_stats_service.ListEventsResponse()
+        client.list_events(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',
+        'project_name=project_name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_list_events_field_headers_async():
+    client = ErrorStatsServiceAsyncClient(
+        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 = error_stats_service.ListEventsRequest()
+
+    request.project_name = 'project_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_events),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListEventsResponse())
+        await client.list_events(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',
+        'project_name=project_name_value',
+    ) in kw['metadata']
+
+
+def test_list_events_flattened():
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_events),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.ListEventsResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.list_events(
+            project_name='project_name_value',
+            group_id='group_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].project_name
+        mock_val = 'project_name_value'
+        assert arg == mock_val
+        arg = args[0].group_id
+        mock_val = 'group_id_value'
+        assert arg == mock_val
+
+
+def test_list_events_flattened_error():
+    client = ErrorStatsServiceClient(
+        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_events(
+            error_stats_service.ListEventsRequest(),
+            project_name='project_name_value',
+            group_id='group_id_value',
+        )
+
+@pytest.mark.asyncio
+async def test_list_events_flattened_async():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_events),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.ListEventsResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListEventsResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.list_events(
+            project_name='project_name_value',
+            group_id='group_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].project_name
+        mock_val = 'project_name_value'
+        assert arg == mock_val
+        arg = args[0].group_id
+        mock_val = 'group_id_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_list_events_flattened_error_async():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.list_events(
+            error_stats_service.ListEventsRequest(),
+            project_name='project_name_value',
+            group_id='group_id_value',
+        )
+
+
+def test_list_events_pager(transport_name: str = "grpc"):
+    client = ErrorStatsServiceClient(
+        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_events),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+            ),
+            RuntimeError,
+        )
+
+        metadata = ()
+        metadata = tuple(metadata) + (
+            gapic_v1.routing_header.to_grpc_metadata((
+                ('project_name', ''),
+            )),
+        )
+        pager = client.list_events(request={})
+
+        assert pager._metadata == metadata
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, common.ErrorEvent)
+                   for i in results)
+def test_list_events_pages(transport_name: str = "grpc"):
+    client = ErrorStatsServiceClient(
+        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_events),
+            '__call__') as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+            ),
+            RuntimeError,
+        )
+        pages = list(client.list_events(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_events_async_pager():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_events),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+            ),
+            RuntimeError,
+        )
+        async_pager = await client.list_events(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, common.ErrorEvent)
+                for i in responses)
+
+
+@pytest.mark.asyncio
+async def test_list_events_async_pages():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials,
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.list_events),
+            '__call__', new_callable=mock.AsyncMock) as call:
+        # Set the response to a series of pages.
+        call.side_effect = (
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+            ),
+            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_events(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", [
+  error_stats_service.DeleteEventsRequest,
+  dict,
+])
+def test_delete_events(request_type, transport: str = 'grpc'):
+    client = ErrorStatsServiceClient(
+        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_events),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.DeleteEventsResponse(
+        )
+        response = client.delete_events(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.DeleteEventsRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, error_stats_service.DeleteEventsResponse)
+
+
+def test_delete_events_empty_call():
+    # This test is a coverage failsafe to make sure that totally empty calls,
+    # i.e. request == None and no flattened fields passed, work.
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_events),
+            '__call__') as call:
+        client.delete_events()
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.DeleteEventsRequest()
+
+@pytest.mark.asyncio
+async def test_delete_events_async(transport: str = 'grpc_asyncio', request_type=error_stats_service.DeleteEventsRequest):
+    client = ErrorStatsServiceAsyncClient(
+        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_events),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.DeleteEventsResponse(
+        ))
+        response = await client.delete_events(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == error_stats_service.DeleteEventsRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, error_stats_service.DeleteEventsResponse)
+
+
+@pytest.mark.asyncio
+async def test_delete_events_async_from_dict():
+    await test_delete_events_async(request_type=dict)
+
+
+def test_delete_events_field_headers():
+    client = ErrorStatsServiceClient(
+        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 = error_stats_service.DeleteEventsRequest()
+
+    request.project_name = 'project_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_events),
+            '__call__') as call:
+        call.return_value = error_stats_service.DeleteEventsResponse()
+        client.delete_events(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',
+        'project_name=project_name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_delete_events_field_headers_async():
+    client = ErrorStatsServiceAsyncClient(
+        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 = error_stats_service.DeleteEventsRequest()
+
+    request.project_name = 'project_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_events),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.DeleteEventsResponse())
+        await client.delete_events(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',
+        'project_name=project_name_value',
+    ) in kw['metadata']
+
+
+def test_delete_events_flattened():
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_events),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.DeleteEventsResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.delete_events(
+            project_name='project_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].project_name
+        mock_val = 'project_name_value'
+        assert arg == mock_val
+
+
+def test_delete_events_flattened_error():
+    client = ErrorStatsServiceClient(
+        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_events(
+            error_stats_service.DeleteEventsRequest(),
+            project_name='project_name_value',
+        )
+
+@pytest.mark.asyncio
+async def test_delete_events_flattened_async():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.delete_events),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = error_stats_service.DeleteEventsResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.DeleteEventsResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.delete_events(
+            project_name='project_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].project_name
+        mock_val = 'project_name_value'
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_delete_events_flattened_error_async():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.delete_events(
+            error_stats_service.DeleteEventsRequest(),
+            project_name='project_name_value',
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+    error_stats_service.ListGroupStatsRequest,
+    dict,
+])
+def test_list_group_stats_rest(request_type):
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'project_name': 'projects/sample1'}
+    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 = error_stats_service.ListGroupStatsResponse(
+              next_page_token='next_page_token_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = error_stats_service.ListGroupStatsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.list_group_stats(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListGroupStatsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_group_stats_rest_required_fields(request_type=error_stats_service.ListGroupStatsRequest):
+    transport_class = transports.ErrorStatsServiceRestTransport
+
+    request_init = {}
+    request_init["project_name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        including_default_value_fields=False,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_group_stats._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["projectName"] = 'project_name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_group_stats._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("alignment", "alignment_time", "group_id", "order", "page_size", "page_token", "service_filter", "time_range", "timed_count_duration", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "projectName" in jsonified_request
+    assert jsonified_request["projectName"] == 'project_name_value'
+
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = error_stats_service.ListGroupStatsResponse()
+    # 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
+
+            pb_return_value = error_stats_service.ListGroupStatsResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(pb_return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.list_group_stats(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_list_group_stats_rest_unset_required_fields():
+    transport = transports.ErrorStatsServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.list_group_stats._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("alignment", "alignmentTime", "groupId", "order", "pageSize", "pageToken", "serviceFilter", "timeRange", "timedCountDuration", )) & set(("projectName", )))
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_list_group_stats_rest_interceptors(null_interceptor):
+    transport = transports.ErrorStatsServiceRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ErrorStatsServiceRestInterceptor(),
+        )
+    client = ErrorStatsServiceClient(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.ErrorStatsServiceRestInterceptor, "post_list_group_stats") as post, \
+         mock.patch.object(transports.ErrorStatsServiceRestInterceptor, "pre_list_group_stats") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = error_stats_service.ListGroupStatsRequest.pb(error_stats_service.ListGroupStatsRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = Response()
+        req.return_value.status_code = 200
+        req.return_value.request = PreparedRequest()
+        req.return_value._content = error_stats_service.ListGroupStatsResponse.to_json(error_stats_service.ListGroupStatsResponse())
+
+        request = error_stats_service.ListGroupStatsRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = error_stats_service.ListGroupStatsResponse()
+
+        client.list_group_stats(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_list_group_stats_rest_bad_request(transport: str = 'rest', request_type=error_stats_service.ListGroupStatsRequest):
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'project_name': 'projects/sample1'}
+    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 = Response()
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.list_group_stats(request)
+
+
+def test_list_group_stats_rest_flattened():
+    client = ErrorStatsServiceClient(
+        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 = error_stats_service.ListGroupStatsResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'project_name': 'projects/sample1'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            project_name='project_name_value',
+            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = error_stats_service.ListGroupStatsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.list_group_stats(**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/v1beta1/{project_name=projects/*}/groupStats" % client.transport._host, args[1])
+
+
+def test_list_group_stats_rest_flattened_error(transport: str = 'rest'):
+    client = ErrorStatsServiceClient(
+        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_group_stats(
+            error_stats_service.ListGroupStatsRequest(),
+            project_name='project_name_value',
+            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
+        )
+
+
+def test_list_group_stats_rest_pager(transport: str = 'rest'):
+    client = ErrorStatsServiceClient(
+        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 = (
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListGroupStatsResponse(
+                error_group_stats=[
+                    error_stats_service.ErrorGroupStats(),
+                    error_stats_service.ErrorGroupStats(),
+                ],
+            ),
+        )
+        # Two responses for two calls
+        response = response + response
+
+        # Wrap the values into proper Response objs
+        response = tuple(error_stats_service.ListGroupStatsResponse.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 = {'project_name': 'projects/sample1'}
+
+        pager = client.list_group_stats(request=sample_request)
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, error_stats_service.ErrorGroupStats)
+                for i in results)
+
+        pages = list(client.list_group_stats(request=sample_request).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+
+@pytest.mark.parametrize("request_type", [
+    error_stats_service.ListEventsRequest,
+    dict,
+])
+def test_list_events_rest(request_type):
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'project_name': 'projects/sample1'}
+    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 = error_stats_service.ListEventsResponse(
+              next_page_token='next_page_token_value',
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = error_stats_service.ListEventsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.list_events(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, pagers.ListEventsPager)
+    assert response.next_page_token == 'next_page_token_value'
+
+
+def test_list_events_rest_required_fields(request_type=error_stats_service.ListEventsRequest):
+    transport_class = transports.ErrorStatsServiceRestTransport
+
+    request_init = {}
+    request_init["project_name"] = ""
+    request_init["group_id"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        including_default_value_fields=False,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+    assert "groupId" not in jsonified_request
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_events._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+    assert "groupId" in jsonified_request
+    assert jsonified_request["groupId"] == request_init["group_id"]
+
+    jsonified_request["projectName"] = 'project_name_value'
+    jsonified_request["groupId"] = 'group_id_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_events._get_unset_required_fields(jsonified_request)
+    # Check that path parameters and body parameters are not mixing in.
+    assert not set(unset_fields) - set(("group_id", "page_size", "page_token", "service_filter", "time_range", ))
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "projectName" in jsonified_request
+    assert jsonified_request["projectName"] == 'project_name_value'
+    assert "groupId" in jsonified_request
+    assert jsonified_request["groupId"] == 'group_id_value'
+
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = error_stats_service.ListEventsResponse()
+    # 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
+
+            pb_return_value = error_stats_service.ListEventsResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(pb_return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.list_events(request)
+
+            expected_params = [
+                (
+                    "groupId",
+                    "",
+                ),
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_list_events_rest_unset_required_fields():
+    transport = transports.ErrorStatsServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.list_events._get_unset_required_fields({})
+    assert set(unset_fields) == (set(("groupId", "pageSize", "pageToken", "serviceFilter", "timeRange", )) & set(("projectName", "groupId", )))
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_list_events_rest_interceptors(null_interceptor):
+    transport = transports.ErrorStatsServiceRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ErrorStatsServiceRestInterceptor(),
+        )
+    client = ErrorStatsServiceClient(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.ErrorStatsServiceRestInterceptor, "post_list_events") as post, \
+         mock.patch.object(transports.ErrorStatsServiceRestInterceptor, "pre_list_events") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = error_stats_service.ListEventsRequest.pb(error_stats_service.ListEventsRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = Response()
+        req.return_value.status_code = 200
+        req.return_value.request = PreparedRequest()
+        req.return_value._content = error_stats_service.ListEventsResponse.to_json(error_stats_service.ListEventsResponse())
+
+        request = error_stats_service.ListEventsRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = error_stats_service.ListEventsResponse()
+
+        client.list_events(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_list_events_rest_bad_request(transport: str = 'rest', request_type=error_stats_service.ListEventsRequest):
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'project_name': 'projects/sample1'}
+    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 = Response()
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.list_events(request)
+
+
+def test_list_events_rest_flattened():
+    client = ErrorStatsServiceClient(
+        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 = error_stats_service.ListEventsResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'project_name': 'projects/sample1'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            project_name='project_name_value',
+            group_id='group_id_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = error_stats_service.ListEventsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.list_events(**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/v1beta1/{project_name=projects/*}/events" % client.transport._host, args[1])
+
+
+def test_list_events_rest_flattened_error(transport: str = 'rest'):
+    client = ErrorStatsServiceClient(
+        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_events(
+            error_stats_service.ListEventsRequest(),
+            project_name='project_name_value',
+            group_id='group_id_value',
+        )
+
+
+def test_list_events_rest_pager(transport: str = 'rest'):
+    client = ErrorStatsServiceClient(
+        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 = (
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+                next_page_token='abc',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[],
+                next_page_token='def',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                ],
+                next_page_token='ghi',
+            ),
+            error_stats_service.ListEventsResponse(
+                error_events=[
+                    common.ErrorEvent(),
+                    common.ErrorEvent(),
+                ],
+            ),
+        )
+        # Two responses for two calls
+        response = response + response
+
+        # Wrap the values into proper Response objs
+        response = tuple(error_stats_service.ListEventsResponse.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 = {'project_name': 'projects/sample1'}
+
+        pager = client.list_events(request=sample_request)
+
+        results = list(pager)
+        assert len(results) == 6
+        assert all(isinstance(i, common.ErrorEvent)
+                for i in results)
+
+        pages = list(client.list_events(request=sample_request).pages)
+        for page_, token in zip(pages, ['abc','def','ghi', '']):
+            assert page_.raw_page.next_page_token == token
+
+
+@pytest.mark.parametrize("request_type", [
+    error_stats_service.DeleteEventsRequest,
+    dict,
+])
+def test_delete_events_rest(request_type):
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'project_name': 'projects/sample1'}
+    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 = error_stats_service.DeleteEventsResponse(
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = error_stats_service.DeleteEventsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.delete_events(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, error_stats_service.DeleteEventsResponse)
+
+
+def test_delete_events_rest_required_fields(request_type=error_stats_service.DeleteEventsRequest):
+    transport_class = transports.ErrorStatsServiceRestTransport
+
+    request_init = {}
+    request_init["project_name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        including_default_value_fields=False,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_events._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["projectName"] = 'project_name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_events._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "projectName" in jsonified_request
+    assert jsonified_request["projectName"] == 'project_name_value'
+
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = error_stats_service.DeleteEventsResponse()
+    # 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
+
+            pb_return_value = error_stats_service.DeleteEventsResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(pb_return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.delete_events(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_delete_events_rest_unset_required_fields():
+    transport = transports.ErrorStatsServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.delete_events._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("projectName", )))
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_delete_events_rest_interceptors(null_interceptor):
+    transport = transports.ErrorStatsServiceRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ErrorStatsServiceRestInterceptor(),
+        )
+    client = ErrorStatsServiceClient(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.ErrorStatsServiceRestInterceptor, "post_delete_events") as post, \
+         mock.patch.object(transports.ErrorStatsServiceRestInterceptor, "pre_delete_events") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = error_stats_service.DeleteEventsRequest.pb(error_stats_service.DeleteEventsRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = Response()
+        req.return_value.status_code = 200
+        req.return_value.request = PreparedRequest()
+        req.return_value._content = error_stats_service.DeleteEventsResponse.to_json(error_stats_service.DeleteEventsResponse())
+
+        request = error_stats_service.DeleteEventsRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = error_stats_service.DeleteEventsResponse()
+
+        client.delete_events(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_delete_events_rest_bad_request(transport: str = 'rest', request_type=error_stats_service.DeleteEventsRequest):
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'project_name': 'projects/sample1'}
+    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 = Response()
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.delete_events(request)
+
+
+def test_delete_events_rest_flattened():
+    client = ErrorStatsServiceClient(
+        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 = error_stats_service.DeleteEventsResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'project_name': 'projects/sample1'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            project_name='project_name_value',
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = error_stats_service.DeleteEventsResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.delete_events(**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/v1beta1/{project_name=projects/*}/events" % client.transport._host, args[1])
+
+
+def test_delete_events_rest_flattened_error(transport: str = 'rest'):
+    client = ErrorStatsServiceClient(
+        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_events(
+            error_stats_service.DeleteEventsRequest(),
+            project_name='project_name_value',
+        )
+
+
+def test_delete_events_rest_error():
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest'
+    )
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.ErrorStatsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ErrorStatsServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.ErrorStatsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ErrorStatsServiceClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.ErrorStatsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ErrorStatsServiceClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = mock.Mock()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ErrorStatsServiceClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.ErrorStatsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ErrorStatsServiceClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ErrorStatsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = ErrorStatsServiceClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ErrorStatsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.ErrorStatsServiceGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.ErrorStatsServiceGrpcTransport,
+    transports.ErrorStatsServiceGrpcAsyncIOTransport,
+    transports.ErrorStatsServiceRestTransport,
+])
+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()
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "rest",
+])
+def test_transport_kind(transport_name):
+    transport = ErrorStatsServiceClient.get_transport_class(transport_name)(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert transport.kind == transport_name
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.ErrorStatsServiceGrpcTransport,
+    )
+
+def test_error_stats_service_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.ErrorStatsServiceTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_error_stats_service_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.errorreporting_v1beta1.services.error_stats_service.transports.ErrorStatsServiceTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.ErrorStatsServiceTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'list_group_stats',
+        'list_events',
+        'delete_events',
+    )
+    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_error_stats_service_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.errorreporting_v1beta1.services.error_stats_service.transports.ErrorStatsServiceTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ErrorStatsServiceTransport(
+            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_error_stats_service_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.errorreporting_v1beta1.services.error_stats_service.transports.ErrorStatsServiceTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ErrorStatsServiceTransport()
+        adc.assert_called_once()
+
+
+def test_error_stats_service_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)
+        ErrorStatsServiceClient()
+        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.ErrorStatsServiceGrpcTransport,
+        transports.ErrorStatsServiceGrpcAsyncIOTransport,
+    ],
+)
+def test_error_stats_service_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.ErrorStatsServiceGrpcTransport,
+        transports.ErrorStatsServiceGrpcAsyncIOTransport,
+        transports.ErrorStatsServiceRestTransport,
+    ],
+)
+def test_error_stats_service_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.ErrorStatsServiceGrpcTransport, grpc_helpers),
+        (transports.ErrorStatsServiceGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_error_stats_service_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.ErrorStatsServiceGrpcTransport, transports.ErrorStatsServiceGrpcAsyncIOTransport])
+def test_error_stats_service_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_error_stats_service_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.ErrorStatsServiceRestTransport (
+            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_error_stats_service_host_no_port(transport_name):
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'clouderrorreporting.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://clouderrorreporting.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_error_stats_service_host_with_port(transport_name):
+    client = ErrorStatsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'clouderrorreporting.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://clouderrorreporting.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_error_stats_service_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = ErrorStatsServiceClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = ErrorStatsServiceClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.list_group_stats._session
+    session2 = client2.transport.list_group_stats._session
+    assert session1 != session2
+    session1 = client1.transport.list_events._session
+    session2 = client2.transport.list_events._session
+    assert session1 != session2
+    session1 = client1.transport.delete_events._session
+    session2 = client2.transport.delete_events._session
+    assert session1 != session2
+def test_error_stats_service_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ErrorStatsServiceGrpcTransport(
+        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_error_stats_service_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ErrorStatsServiceGrpcAsyncIOTransport(
+        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.ErrorStatsServiceGrpcTransport, transports.ErrorStatsServiceGrpcAsyncIOTransport])
+def test_error_stats_service_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.ErrorStatsServiceGrpcTransport, transports.ErrorStatsServiceGrpcAsyncIOTransport])
+def test_error_stats_service_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_error_group_path():
+    project = "squid"
+    group = "clam"
+    expected = "projects/{project}/groups/{group}".format(project=project, group=group, )
+    actual = ErrorStatsServiceClient.error_group_path(project, group)
+    assert expected == actual
+
+
+def test_parse_error_group_path():
+    expected = {
+        "project": "whelk",
+        "group": "octopus",
+    }
+    path = ErrorStatsServiceClient.error_group_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorStatsServiceClient.parse_error_group_path(path)
+    assert expected == actual
+
+def test_common_billing_account_path():
+    billing_account = "oyster"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = ErrorStatsServiceClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "nudibranch",
+    }
+    path = ErrorStatsServiceClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorStatsServiceClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "cuttlefish"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = ErrorStatsServiceClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "mussel",
+    }
+    path = ErrorStatsServiceClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorStatsServiceClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "winkle"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = ErrorStatsServiceClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "nautilus",
+    }
+    path = ErrorStatsServiceClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorStatsServiceClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "scallop"
+    expected = "projects/{project}".format(project=project, )
+    actual = ErrorStatsServiceClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "abalone",
+    }
+    path = ErrorStatsServiceClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorStatsServiceClient.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 = ErrorStatsServiceClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "whelk",
+        "location": "octopus",
+    }
+    path = ErrorStatsServiceClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ErrorStatsServiceClient.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.ErrorStatsServiceTransport, '_prep_wrapped_messages') as prep:
+        client = ErrorStatsServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.ErrorStatsServiceTransport, '_prep_wrapped_messages') as prep:
+        transport_class = ErrorStatsServiceClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+@pytest.mark.asyncio
+async def test_transport_close_async():
+    client = ErrorStatsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        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():
+    transports = {
+        "rest": "_session",
+        "grpc": "_grpc_channel",
+    }
+
+    for transport, close_name in transports.items():
+        client = ErrorStatsServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        with mock.patch.object(type(getattr(client.transport, close_name)), "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 = ErrorStatsServiceClient(
+            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", [
+    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport),
+    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport),
+])
+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,
+                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/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py
new file mode 100644
index 00000000..2ce91ebe
--- /dev/null
+++ b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py
@@ -0,0 +1,1672 @@
+# -*- coding: utf-8 -*-
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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
+from google.protobuf import json_format
+import json
+import math
+import pytest
+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
+
+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.auth import credentials as ga_credentials
+from google.auth.exceptions import MutualTLSChannelError
+from google.cloud.errorreporting_v1beta1.services.report_errors_service import ReportErrorsServiceAsyncClient
+from google.cloud.errorreporting_v1beta1.services.report_errors_service import ReportErrorsServiceClient
+from google.cloud.errorreporting_v1beta1.services.report_errors_service import transports
+from google.cloud.errorreporting_v1beta1.types import common
+from google.cloud.errorreporting_v1beta1.types import report_errors_service
+from google.oauth2 import service_account
+from google.protobuf import timestamp_pb2  # type: ignore
+import google.auth
+
+
+def client_cert_source_callback():
+    return b"cert bytes", b"key bytes"
+
+
+# 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
+
+
+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 ReportErrorsServiceClient._get_default_mtls_endpoint(None) is None
+    assert ReportErrorsServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
+    assert ReportErrorsServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
+    assert ReportErrorsServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
+    assert ReportErrorsServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
+    assert ReportErrorsServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
+
+
+@pytest.mark.parametrize("client_class,transport_name", [
+    (ReportErrorsServiceClient, "grpc"),
+    (ReportErrorsServiceAsyncClient, "grpc_asyncio"),
+    (ReportErrorsServiceClient, "rest"),
+])
+def test_report_errors_service_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 == (
+            'clouderrorreporting.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://clouderrorreporting.googleapis.com'
+        )
+
+
+@pytest.mark.parametrize("transport_class,transport_name", [
+    (transports.ReportErrorsServiceGrpcTransport, "grpc"),
+    (transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (transports.ReportErrorsServiceRestTransport, "rest"),
+])
+def test_report_errors_service_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", [
+    (ReportErrorsServiceClient, "grpc"),
+    (ReportErrorsServiceAsyncClient, "grpc_asyncio"),
+    (ReportErrorsServiceClient, "rest"),
+])
+def test_report_errors_service_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 == (
+            'clouderrorreporting.googleapis.com:443'
+            if transport_name in ['grpc', 'grpc_asyncio']
+            else
+            'https://clouderrorreporting.googleapis.com'
+        )
+
+
+def test_report_errors_service_client_get_transport_class():
+    transport = ReportErrorsServiceClient.get_transport_class()
+    available_transports = [
+        transports.ReportErrorsServiceGrpcTransport,
+        transports.ReportErrorsServiceRestTransport,
+    ]
+    assert transport in available_transports
+
+    transport = ReportErrorsServiceClient.get_transport_class("grpc")
+    assert transport == transports.ReportErrorsServiceGrpcTransport
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc"),
+    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest"),
+])
+@mock.patch.object(ReportErrorsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceClient))
+@mock.patch.object(ReportErrorsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceAsyncClient))
+def test_report_errors_service_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(ReportErrorsServiceClient, '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(ReportErrorsServiceClient, '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,
+                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):
+            client = client_class(transport=transport_name)
+
+    # 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):
+            client = client_class(transport=transport_name)
+
+    # 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,
+            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,
+            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", [
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc", "true"),
+    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"),
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc", "false"),
+    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"),
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest", "true"),
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest", "false"),
+])
+@mock.patch.object(ReportErrorsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceClient))
+@mock.patch.object(ReportErrorsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceAsyncClient))
+@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
+def test_report_errors_service_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
+            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
+                        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,
+                    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", [
+    ReportErrorsServiceClient, ReportErrorsServiceAsyncClient
+])
+@mock.patch.object(ReportErrorsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceClient))
+@mock.patch.object(ReportErrorsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceAsyncClient))
+def test_report_errors_service_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
+
+
+@pytest.mark.parametrize("client_class,transport_class,transport_name", [
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc"),
+    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest"),
+])
+def test_report_errors_service_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,
+            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", [
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc", grpc_helpers),
+    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest", None),
+])
+def test_report_errors_service_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,
+            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_report_errors_service_client_client_options_from_dict():
+    with mock.patch('google.cloud.errorreporting_v1beta1.services.report_errors_service.transports.ReportErrorsServiceGrpcTransport.__init__') as grpc_transport:
+        grpc_transport.return_value = None
+        client = ReportErrorsServiceClient(
+            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", [
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc", grpc_helpers),
+    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
+])
+def test_report_errors_service_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,
+            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(
+            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+  report_errors_service.ReportErrorEventRequest,
+  dict,
+])
+def test_report_error_event(request_type, transport: str = 'grpc'):
+    client = ReportErrorsServiceClient(
+        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.report_error_event),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = report_errors_service.ReportErrorEventResponse(
+        )
+        response = client.report_error_event(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == report_errors_service.ReportErrorEventRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, report_errors_service.ReportErrorEventResponse)
+
+
+def test_report_error_event_empty_call():
+    # This test is a coverage failsafe to make sure that totally empty calls,
+    # i.e. request == None and no flattened fields passed, work.
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='grpc',
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.report_error_event),
+            '__call__') as call:
+        client.report_error_event()
+        call.assert_called()
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == report_errors_service.ReportErrorEventRequest()
+
+@pytest.mark.asyncio
+async def test_report_error_event_async(transport: str = 'grpc_asyncio', request_type=report_errors_service.ReportErrorEventRequest):
+    client = ReportErrorsServiceAsyncClient(
+        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.report_error_event),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(report_errors_service.ReportErrorEventResponse(
+        ))
+        response = await client.report_error_event(request)
+
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls)
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == report_errors_service.ReportErrorEventRequest()
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, report_errors_service.ReportErrorEventResponse)
+
+
+@pytest.mark.asyncio
+async def test_report_error_event_async_from_dict():
+    await test_report_error_event_async(request_type=dict)
+
+
+def test_report_error_event_field_headers():
+    client = ReportErrorsServiceClient(
+        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 = report_errors_service.ReportErrorEventRequest()
+
+    request.project_name = 'project_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.report_error_event),
+            '__call__') as call:
+        call.return_value = report_errors_service.ReportErrorEventResponse()
+        client.report_error_event(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',
+        'project_name=project_name_value',
+    ) in kw['metadata']
+
+
+@pytest.mark.asyncio
+async def test_report_error_event_field_headers_async():
+    client = ReportErrorsServiceAsyncClient(
+        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 = report_errors_service.ReportErrorEventRequest()
+
+    request.project_name = 'project_name_value'
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.report_error_event),
+            '__call__') as call:
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(report_errors_service.ReportErrorEventResponse())
+        await client.report_error_event(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',
+        'project_name=project_name_value',
+    ) in kw['metadata']
+
+
+def test_report_error_event_flattened():
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.report_error_event),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = report_errors_service.ReportErrorEventResponse()
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        client.report_error_event(
+            project_name='project_name_value',
+            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
+        )
+
+        # 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].project_name
+        mock_val = 'project_name_value'
+        assert arg == mock_val
+        arg = args[0].event
+        mock_val = report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751))
+        assert arg == mock_val
+
+
+def test_report_error_event_flattened_error():
+    client = ReportErrorsServiceClient(
+        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.report_error_event(
+            report_errors_service.ReportErrorEventRequest(),
+            project_name='project_name_value',
+            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
+        )
+
+@pytest.mark.asyncio
+async def test_report_error_event_flattened_async():
+    client = ReportErrorsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(
+            type(client.transport.report_error_event),
+            '__call__') as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = report_errors_service.ReportErrorEventResponse()
+
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(report_errors_service.ReportErrorEventResponse())
+        # Call the method with a truthy value for each flattened field,
+        # using the keyword arguments to the method.
+        response = await client.report_error_event(
+            project_name='project_name_value',
+            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
+        )
+
+        # 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].project_name
+        mock_val = 'project_name_value'
+        assert arg == mock_val
+        arg = args[0].event
+        mock_val = report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751))
+        assert arg == mock_val
+
+@pytest.mark.asyncio
+async def test_report_error_event_flattened_error_async():
+    client = ReportErrorsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+
+    # Attempting to call a method with both a request object and flattened
+    # fields is an error.
+    with pytest.raises(ValueError):
+        await client.report_error_event(
+            report_errors_service.ReportErrorEventRequest(),
+            project_name='project_name_value',
+            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
+        )
+
+
+@pytest.mark.parametrize("request_type", [
+    report_errors_service.ReportErrorEventRequest,
+    dict,
+])
+def test_report_error_event_rest(request_type):
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport="rest",
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'project_name': 'projects/sample1'}
+    request_init["event"] = {'event_time': {'seconds': 751, 'nanos': 543}, 'service_context': {'service': 'service_value', 'version': 'version_value', 'resource_type': 'resource_type_value'}, 'message': 'message_value', 'context': {'http_request': {'method': 'method_value', 'url': 'url_value', 'user_agent': 'user_agent_value', 'referrer': 'referrer_value', 'response_status_code': 2156, 'remote_ip': 'remote_ip_value'}, 'user': 'user_value', 'report_location': {'file_path': 'file_path_value', 'line_number': 1168, 'function_name': 'function_name_value'}}}
+    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 = report_errors_service.ReportErrorEventResponse(
+        )
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = report_errors_service.ReportErrorEventResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+        response = client.report_error_event(request)
+
+    # Establish that the response is the type that we expect.
+    assert isinstance(response, report_errors_service.ReportErrorEventResponse)
+
+
+def test_report_error_event_rest_required_fields(request_type=report_errors_service.ReportErrorEventRequest):
+    transport_class = transports.ReportErrorsServiceRestTransport
+
+    request_init = {}
+    request_init["project_name"] = ""
+    request = request_type(**request_init)
+    pb_request = request_type.pb(request)
+    jsonified_request = json.loads(json_format.MessageToJson(
+        pb_request,
+        including_default_value_fields=False,
+        use_integers_for_enums=False
+    ))
+
+    # verify fields with default values are dropped
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).report_error_event._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with default values are now present
+
+    jsonified_request["projectName"] = 'project_name_value'
+
+    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).report_error_event._get_unset_required_fields(jsonified_request)
+    jsonified_request.update(unset_fields)
+
+    # verify required fields with non-default values are left alone
+    assert "projectName" in jsonified_request
+    assert jsonified_request["projectName"] == 'project_name_value'
+
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest',
+    )
+    request = request_type(**request_init)
+
+    # Designate an appropriate value for the returned response.
+    return_value = report_errors_service.ReportErrorEventResponse()
+    # 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
+
+            pb_return_value = report_errors_service.ReportErrorEventResponse.pb(return_value)
+            json_return_value = json_format.MessageToJson(pb_return_value)
+
+            response_value._content = json_return_value.encode('UTF-8')
+            req.return_value = response_value
+
+            response = client.report_error_event(request)
+
+            expected_params = [
+                ('$alt', 'json;enum-encoding=int')
+            ]
+            actual_params = req.call_args.kwargs['params']
+            assert expected_params == actual_params
+
+
+def test_report_error_event_rest_unset_required_fields():
+    transport = transports.ReportErrorsServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
+
+    unset_fields = transport.report_error_event._get_unset_required_fields({})
+    assert set(unset_fields) == (set(()) & set(("projectName", "event", )))
+
+
+@pytest.mark.parametrize("null_interceptor", [True, False])
+def test_report_error_event_rest_interceptors(null_interceptor):
+    transport = transports.ReportErrorsServiceRestTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+        interceptor=None if null_interceptor else transports.ReportErrorsServiceRestInterceptor(),
+        )
+    client = ReportErrorsServiceClient(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.ReportErrorsServiceRestInterceptor, "post_report_error_event") as post, \
+         mock.patch.object(transports.ReportErrorsServiceRestInterceptor, "pre_report_error_event") as pre:
+        pre.assert_not_called()
+        post.assert_not_called()
+        pb_message = report_errors_service.ReportErrorEventRequest.pb(report_errors_service.ReportErrorEventRequest())
+        transcode.return_value = {
+            "method": "post",
+            "uri": "my_uri",
+            "body": pb_message,
+            "query_params": pb_message,
+        }
+
+        req.return_value = Response()
+        req.return_value.status_code = 200
+        req.return_value.request = PreparedRequest()
+        req.return_value._content = report_errors_service.ReportErrorEventResponse.to_json(report_errors_service.ReportErrorEventResponse())
+
+        request = report_errors_service.ReportErrorEventRequest()
+        metadata =[
+            ("key", "val"),
+            ("cephalopod", "squid"),
+        ]
+        pre.return_value = request, metadata
+        post.return_value = report_errors_service.ReportErrorEventResponse()
+
+        client.report_error_event(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
+
+        pre.assert_called_once()
+        post.assert_called_once()
+
+
+def test_report_error_event_rest_bad_request(transport: str = 'rest', request_type=report_errors_service.ReportErrorEventRequest):
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport=transport,
+    )
+
+    # send a request that will satisfy transcoding
+    request_init = {'project_name': 'projects/sample1'}
+    request_init["event"] = {'event_time': {'seconds': 751, 'nanos': 543}, 'service_context': {'service': 'service_value', 'version': 'version_value', 'resource_type': 'resource_type_value'}, 'message': 'message_value', 'context': {'http_request': {'method': 'method_value', 'url': 'url_value', 'user_agent': 'user_agent_value', 'referrer': 'referrer_value', 'response_status_code': 2156, 'remote_ip': 'remote_ip_value'}, 'user': 'user_value', 'report_location': {'file_path': 'file_path_value', 'line_number': 1168, 'function_name': 'function_name_value'}}}
+    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 = Response()
+        response_value.status_code = 400
+        response_value.request = Request()
+        req.return_value = response_value
+        client.report_error_event(request)
+
+
+def test_report_error_event_rest_flattened():
+    client = ReportErrorsServiceClient(
+        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 = report_errors_service.ReportErrorEventResponse()
+
+        # get arguments that satisfy an http rule for this method
+        sample_request = {'project_name': 'projects/sample1'}
+
+        # get truthy value for each flattened field
+        mock_args = dict(
+            project_name='project_name_value',
+            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
+        )
+        mock_args.update(sample_request)
+
+        # Wrap the value into a proper Response obj
+        response_value = Response()
+        response_value.status_code = 200
+        pb_return_value = report_errors_service.ReportErrorEventResponse.pb(return_value)
+        json_return_value = json_format.MessageToJson(pb_return_value)
+        response_value._content = json_return_value.encode('UTF-8')
+        req.return_value = response_value
+
+        client.report_error_event(**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/v1beta1/{project_name=projects/*}/events:report" % client.transport._host, args[1])
+
+
+def test_report_error_event_rest_flattened_error(transport: str = 'rest'):
+    client = ReportErrorsServiceClient(
+        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.report_error_event(
+            report_errors_service.ReportErrorEventRequest(),
+            project_name='project_name_value',
+            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
+        )
+
+
+def test_report_error_event_rest_error():
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        transport='rest'
+    )
+
+
+def test_credentials_transport_error():
+    # It is an error to provide credentials and a transport instance.
+    transport = transports.ReportErrorsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ReportErrorsServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport,
+        )
+
+    # It is an error to provide a credentials file and a transport instance.
+    transport = transports.ReportErrorsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ReportErrorsServiceClient(
+            client_options={"credentials_file": "credentials.json"},
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a transport instance.
+    transport = transports.ReportErrorsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    options = client_options.ClientOptions()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ReportErrorsServiceClient(
+            client_options=options,
+            transport=transport,
+        )
+
+    # It is an error to provide an api_key and a credential.
+    options = mock.Mock()
+    options.api_key = "api_key"
+    with pytest.raises(ValueError):
+        client = ReportErrorsServiceClient(
+            client_options=options,
+            credentials=ga_credentials.AnonymousCredentials()
+        )
+
+    # It is an error to provide scopes and a transport instance.
+    transport = transports.ReportErrorsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    with pytest.raises(ValueError):
+        client = ReportErrorsServiceClient(
+            client_options={"scopes": ["1", "2"]},
+            transport=transport,
+        )
+
+
+def test_transport_instance():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ReportErrorsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    client = ReportErrorsServiceClient(transport=transport)
+    assert client.transport is transport
+
+def test_transport_get_channel():
+    # A client may be instantiated with a custom transport instance.
+    transport = transports.ReportErrorsServiceGrpcTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+    transport = transports.ReportErrorsServiceGrpcAsyncIOTransport(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    channel = transport.grpc_channel
+    assert channel
+
+@pytest.mark.parametrize("transport_class", [
+    transports.ReportErrorsServiceGrpcTransport,
+    transports.ReportErrorsServiceGrpcAsyncIOTransport,
+    transports.ReportErrorsServiceRestTransport,
+])
+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()
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "rest",
+])
+def test_transport_kind(transport_name):
+    transport = ReportErrorsServiceClient.get_transport_class(transport_name)(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert transport.kind == transport_name
+
+def test_transport_grpc_default():
+    # A client should use the gRPC transport by default.
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    assert isinstance(
+        client.transport,
+        transports.ReportErrorsServiceGrpcTransport,
+    )
+
+def test_report_errors_service_base_transport_error():
+    # Passing both a credentials object and credentials_file should raise an error
+    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
+        transport = transports.ReportErrorsServiceTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+            credentials_file="credentials.json"
+        )
+
+
+def test_report_errors_service_base_transport():
+    # Instantiate the base transport.
+    with mock.patch('google.cloud.errorreporting_v1beta1.services.report_errors_service.transports.ReportErrorsServiceTransport.__init__') as Transport:
+        Transport.return_value = None
+        transport = transports.ReportErrorsServiceTransport(
+            credentials=ga_credentials.AnonymousCredentials(),
+        )
+
+    # Every method on the transport should just blindly
+    # raise NotImplementedError.
+    methods = (
+        'report_error_event',
+    )
+    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_report_errors_service_base_transport_with_credentials_file():
+    # Instantiate the base transport with a credentials file
+    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.errorreporting_v1beta1.services.report_errors_service.transports.ReportErrorsServiceTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ReportErrorsServiceTransport(
+            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_report_errors_service_base_transport_with_adc():
+    # Test the default credentials are used if credentials and credentials_file are None.
+    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.errorreporting_v1beta1.services.report_errors_service.transports.ReportErrorsServiceTransport._prep_wrapped_messages') as Transport:
+        Transport.return_value = None
+        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
+        transport = transports.ReportErrorsServiceTransport()
+        adc.assert_called_once()
+
+
+def test_report_errors_service_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)
+        ReportErrorsServiceClient()
+        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.ReportErrorsServiceGrpcTransport,
+        transports.ReportErrorsServiceGrpcAsyncIOTransport,
+    ],
+)
+def test_report_errors_service_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.ReportErrorsServiceGrpcTransport,
+        transports.ReportErrorsServiceGrpcAsyncIOTransport,
+        transports.ReportErrorsServiceRestTransport,
+    ],
+)
+def test_report_errors_service_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.ReportErrorsServiceGrpcTransport, grpc_helpers),
+        (transports.ReportErrorsServiceGrpcAsyncIOTransport, grpc_helpers_async)
+    ],
+)
+def test_report_errors_service_transport_create_channel(transport_class, grpc_helpers):
+    # If credentials and host are not provided, the transport class should use
+    # ADC credentials.
+    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
+        grpc_helpers, "create_channel", autospec=True
+    ) as create_channel:
+        creds = ga_credentials.AnonymousCredentials()
+        adc.return_value = (creds, None)
+        transport_class(
+            quota_project_id="octopus",
+            scopes=["1", "2"]
+        )
+
+        create_channel.assert_called_with(
+            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
+            ssl_credentials=None,
+            options=[
+                ("grpc.max_send_message_length", -1),
+                ("grpc.max_receive_message_length", -1),
+            ],
+        )
+
+
+@pytest.mark.parametrize("transport_class", [transports.ReportErrorsServiceGrpcTransport, transports.ReportErrorsServiceGrpcAsyncIOTransport])
+def test_report_errors_service_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_report_errors_service_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.ReportErrorsServiceRestTransport (
+            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_report_errors_service_host_no_port(transport_name):
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com'),
+         transport=transport_name,
+    )
+    assert client.transport._host == (
+        'clouderrorreporting.googleapis.com:443'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://clouderrorreporting.googleapis.com'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "grpc",
+    "grpc_asyncio",
+    "rest",
+])
+def test_report_errors_service_host_with_port(transport_name):
+    client = ReportErrorsServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com:8000'),
+        transport=transport_name,
+    )
+    assert client.transport._host == (
+        'clouderrorreporting.googleapis.com:8000'
+        if transport_name in ['grpc', 'grpc_asyncio']
+        else 'https://clouderrorreporting.googleapis.com:8000'
+    )
+
+@pytest.mark.parametrize("transport_name", [
+    "rest",
+])
+def test_report_errors_service_client_transport_session_collision(transport_name):
+    creds1 = ga_credentials.AnonymousCredentials()
+    creds2 = ga_credentials.AnonymousCredentials()
+    client1 = ReportErrorsServiceClient(
+        credentials=creds1,
+        transport=transport_name,
+    )
+    client2 = ReportErrorsServiceClient(
+        credentials=creds2,
+        transport=transport_name,
+    )
+    session1 = client1.transport.report_error_event._session
+    session2 = client2.transport.report_error_event._session
+    assert session1 != session2
+def test_report_errors_service_grpc_transport_channel():
+    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ReportErrorsServiceGrpcTransport(
+        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_report_errors_service_grpc_asyncio_transport_channel():
+    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
+
+    # Check that channel is used if provided.
+    transport = transports.ReportErrorsServiceGrpcAsyncIOTransport(
+        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.ReportErrorsServiceGrpcTransport, transports.ReportErrorsServiceGrpcAsyncIOTransport])
+def test_report_errors_service_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.ReportErrorsServiceGrpcTransport, transports.ReportErrorsServiceGrpcAsyncIOTransport])
+def test_report_errors_service_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_common_billing_account_path():
+    billing_account = "squid"
+    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
+    actual = ReportErrorsServiceClient.common_billing_account_path(billing_account)
+    assert expected == actual
+
+
+def test_parse_common_billing_account_path():
+    expected = {
+        "billing_account": "clam",
+    }
+    path = ReportErrorsServiceClient.common_billing_account_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ReportErrorsServiceClient.parse_common_billing_account_path(path)
+    assert expected == actual
+
+def test_common_folder_path():
+    folder = "whelk"
+    expected = "folders/{folder}".format(folder=folder, )
+    actual = ReportErrorsServiceClient.common_folder_path(folder)
+    assert expected == actual
+
+
+def test_parse_common_folder_path():
+    expected = {
+        "folder": "octopus",
+    }
+    path = ReportErrorsServiceClient.common_folder_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ReportErrorsServiceClient.parse_common_folder_path(path)
+    assert expected == actual
+
+def test_common_organization_path():
+    organization = "oyster"
+    expected = "organizations/{organization}".format(organization=organization, )
+    actual = ReportErrorsServiceClient.common_organization_path(organization)
+    assert expected == actual
+
+
+def test_parse_common_organization_path():
+    expected = {
+        "organization": "nudibranch",
+    }
+    path = ReportErrorsServiceClient.common_organization_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ReportErrorsServiceClient.parse_common_organization_path(path)
+    assert expected == actual
+
+def test_common_project_path():
+    project = "cuttlefish"
+    expected = "projects/{project}".format(project=project, )
+    actual = ReportErrorsServiceClient.common_project_path(project)
+    assert expected == actual
+
+
+def test_parse_common_project_path():
+    expected = {
+        "project": "mussel",
+    }
+    path = ReportErrorsServiceClient.common_project_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ReportErrorsServiceClient.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 = ReportErrorsServiceClient.common_location_path(project, location)
+    assert expected == actual
+
+
+def test_parse_common_location_path():
+    expected = {
+        "project": "scallop",
+        "location": "abalone",
+    }
+    path = ReportErrorsServiceClient.common_location_path(**expected)
+
+    # Check that the path construction is reversible.
+    actual = ReportErrorsServiceClient.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.ReportErrorsServiceTransport, '_prep_wrapped_messages') as prep:
+        client = ReportErrorsServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+    with mock.patch.object(transports.ReportErrorsServiceTransport, '_prep_wrapped_messages') as prep:
+        transport_class = ReportErrorsServiceClient.get_transport_class()
+        transport = transport_class(
+            credentials=ga_credentials.AnonymousCredentials(),
+            client_info=client_info,
+        )
+        prep.assert_called_once_with(client_info)
+
+@pytest.mark.asyncio
+async def test_transport_close_async():
+    client = ReportErrorsServiceAsyncClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+        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():
+    transports = {
+        "rest": "_session",
+        "grpc": "_grpc_channel",
+    }
+
+    for transport, close_name in transports.items():
+        client = ReportErrorsServiceClient(
+            credentials=ga_credentials.AnonymousCredentials(),
+            transport=transport
+        )
+        with mock.patch.object(type(getattr(client.transport, close_name)), "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 = ReportErrorsServiceClient(
+            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", [
+    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport),
+    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport),
+])
+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,
+                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 003ad58e31031346c38157f8c8bbc07c6cff3143 Mon Sep 17 00:00:00 2001
From: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Date: Sat, 8 Jul 2023 13:27:07 +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
---
 .../cloud/errorreporting_v1beta1/__init__.py  |    2 +-
 .../services/__init__.py                      |    2 +-
 .../services/error_group_service/__init__.py  |    2 +-
 .../error_group_service/async_client.py       |    2 +-
 .../services/error_group_service/client.py    |    2 +-
 .../transports/__init__.py                    |    2 +-
 .../error_group_service/transports/base.py    |    2 +-
 .../error_group_service/transports/grpc.py    |    2 +-
 .../transports/grpc_asyncio.py                |    2 +-
 .../error_group_service/transports/rest.py    |    2 +-
 .../services/error_stats_service/__init__.py  |    2 +-
 .../error_stats_service/async_client.py       |    2 +-
 .../services/error_stats_service/client.py    |    2 +-
 .../services/error_stats_service/pagers.py    |    2 +-
 .../transports/__init__.py                    |    2 +-
 .../error_stats_service/transports/base.py    |    2 +-
 .../error_stats_service/transports/grpc.py    |    2 +-
 .../transports/grpc_asyncio.py                |    2 +-
 .../error_stats_service/transports/rest.py    |    2 +-
 .../report_errors_service/__init__.py         |    2 +-
 .../report_errors_service/async_client.py     |    2 +-
 .../services/report_errors_service/client.py  |    2 +-
 .../transports/__init__.py                    |    2 +-
 .../report_errors_service/transports/base.py  |    2 +-
 .../report_errors_service/transports/grpc.py  |    2 +-
 .../transports/grpc_asyncio.py                |    2 +-
 .../report_errors_service/transports/rest.py  |    2 +-
 .../errorreporting_v1beta1/types/__init__.py  |    2 +-
 .../errorreporting_v1beta1/types/common.py    |    2 +-
 .../types/error_group_service.py              |    2 +-
 .../types/error_stats_service.py              |    2 +-
 .../types/report_errors_service.py            |    2 +-
 owl-bot-staging/v1beta1/.coveragerc           |   13 -
 owl-bot-staging/v1beta1/.flake8               |   33 -
 owl-bot-staging/v1beta1/MANIFEST.in           |    2 -
 owl-bot-staging/v1beta1/README.rst            |   49 -
 owl-bot-staging/v1beta1/docs/conf.py          |  376 --
 .../error_group_service.rst                   |    6 -
 .../error_stats_service.rst                   |   10 -
 .../report_errors_service.rst                 |    6 -
 .../docs/errorreporting_v1beta1/services.rst  |    8 -
 .../docs/errorreporting_v1beta1/types.rst     |    6 -
 owl-bot-staging/v1beta1/docs/index.rst        |    7 -
 .../google/cloud/errorreporting/__init__.py   |   85 -
 .../cloud/errorreporting/gapic_version.py     |   16 -
 .../google/cloud/errorreporting/py.typed      |    2 -
 .../cloud/errorreporting_v1beta1/__init__.py  |   86 -
 .../gapic_metadata.json                       |  156 -
 .../errorreporting_v1beta1/gapic_version.py   |   16 -
 .../cloud/errorreporting_v1beta1/py.typed     |    2 -
 .../services/__init__.py                      |   15 -
 .../services/error_group_service/__init__.py  |   22 -
 .../error_group_service/async_client.py       |  404 ---
 .../services/error_group_service/client.py    |  608 ----
 .../transports/__init__.py                    |   38 -
 .../error_group_service/transports/base.py    |  163 -
 .../error_group_service/transports/grpc.py    |  292 --
 .../transports/grpc_asyncio.py                |  291 --
 .../error_group_service/transports/rest.py    |  414 ---
 .../services/error_stats_service/__init__.py  |   22 -
 .../error_stats_service/async_client.py       |  569 ---
 .../services/error_stats_service/client.py    |  773 ----
 .../services/error_stats_service/pagers.py    |  261 --
 .../transports/__init__.py                    |   38 -
 .../error_stats_service/transports/base.py    |  176 -
 .../error_stats_service/transports/grpc.py    |  317 --
 .../transports/grpc_asyncio.py                |  316 --
 .../error_stats_service/transports/rest.py    |  516 ---
 .../report_errors_service/__init__.py         |   22 -
 .../report_errors_service/async_client.py     |  327 --
 .../services/report_errors_service/client.py  |  522 ---
 .../transports/__init__.py                    |   38 -
 .../report_errors_service/transports/base.py  |  148 -
 .../report_errors_service/transports/grpc.py  |  276 --
 .../transports/grpc_asyncio.py                |  275 --
 .../report_errors_service/transports/rest.py  |  301 --
 .../errorreporting_v1beta1/types/__init__.py  |   76 -
 .../errorreporting_v1beta1/types/common.py    |  345 --
 .../types/error_group_service.py              |   69 -
 .../types/error_stats_service.py              |  574 ---
 .../types/report_errors_service.py            |  134 -
 owl-bot-staging/v1beta1/mypy.ini              |    3 -
 owl-bot-staging/v1beta1/noxfile.py            |  184 -
 ...ted_error_group_service_get_group_async.py |   52 -
 ...ated_error_group_service_get_group_sync.py |   52 -
 ..._error_group_service_update_group_async.py |   51 -
 ...d_error_group_service_update_group_sync.py |   51 -
 ...error_stats_service_delete_events_async.py |   52 -
 ..._error_stats_service_delete_events_sync.py |   52 -
 ...d_error_stats_service_list_events_async.py |   54 -
 ...ed_error_stats_service_list_events_sync.py |   54 -
 ...or_stats_service_list_group_stats_async.py |   53 -
 ...ror_stats_service_list_group_stats_sync.py |   53 -
 ...errors_service_report_error_event_async.py |   56 -
 ..._errors_service_report_error_event_sync.py |   56 -
 ....devtools.clouderrorreporting.v1beta1.json | 1005 ------
 .../fixup_errorreporting_v1beta1_keywords.py  |  181 -
 owl-bot-staging/v1beta1/setup.py              |   90 -
 .../v1beta1/testing/constraints-3.10.txt      |    6 -
 .../v1beta1/testing/constraints-3.11.txt      |    6 -
 .../v1beta1/testing/constraints-3.12.txt      |    6 -
 .../v1beta1/testing/constraints-3.7.txt       |    9 -
 .../v1beta1/testing/constraints-3.8.txt       |    6 -
 .../v1beta1/testing/constraints-3.9.txt       |    6 -
 owl-bot-staging/v1beta1/tests/__init__.py     |   16 -
 .../v1beta1/tests/unit/__init__.py            |   16 -
 .../v1beta1/tests/unit/gapic/__init__.py      |   16 -
 .../gapic/errorreporting_v1beta1/__init__.py  |   16 -
 .../test_error_group_service.py               | 2172 ------------
 .../test_error_stats_service.py               | 3149 -----------------
 .../test_report_errors_service.py             | 1672 ---------
 ...ted_error_group_service_get_group_async.py |    2 +-
 ...ated_error_group_service_get_group_sync.py |    2 +-
 ..._error_group_service_update_group_async.py |    2 +-
 ...d_error_group_service_update_group_sync.py |    2 +-
 ...error_stats_service_delete_events_async.py |    2 +-
 ..._error_stats_service_delete_events_sync.py |    2 +-
 ...d_error_stats_service_list_events_async.py |    2 +-
 ...ed_error_stats_service_list_events_sync.py |    2 +-
 ...or_stats_service_list_group_stats_async.py |    2 +-
 ...ror_stats_service_list_group_stats_sync.py |    2 +-
 ...errors_service_report_error_event_async.py |    2 +-
 ..._errors_service_report_error_event_sync.py |    2 +-
 ....devtools.clouderrorreporting.v1beta1.json |    2 +-
 .../fixup_errorreporting_v1beta1_keywords.py  |    2 +-
 tests/__init__.py                             |    2 +-
 tests/unit/__init__.py                        |    2 +-
 tests/unit/gapic/__init__.py                  |    2 +-
 .../gapic/errorreporting_v1beta1/__init__.py  |    2 +-
 .../test_error_group_service.py               |    2 +-
 .../test_error_stats_service.py               |    2 +-
 .../test_report_errors_service.py             |    2 +-
 132 files changed, 53 insertions(+), 18469 deletions(-)
 delete mode 100644 owl-bot-staging/v1beta1/.coveragerc
 delete mode 100644 owl-bot-staging/v1beta1/.flake8
 delete mode 100644 owl-bot-staging/v1beta1/MANIFEST.in
 delete mode 100644 owl-bot-staging/v1beta1/README.rst
 delete mode 100644 owl-bot-staging/v1beta1/docs/conf.py
 delete mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_group_service.rst
 delete mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_stats_service.rst
 delete mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/report_errors_service.rst
 delete mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/services.rst
 delete mode 100644 owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/types.rst
 delete mode 100644 owl-bot-staging/v1beta1/docs/index.rst
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting/gapic_version.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting/py.typed
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_metadata.json
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_version.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/py.typed
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/common.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_group_service.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
 delete mode 100644 owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
 delete mode 100644 owl-bot-staging/v1beta1/mypy.ini
 delete mode 100644 owl-bot-staging/v1beta1/noxfile.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
 delete mode 100644 owl-bot-staging/v1beta1/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
 delete mode 100644 owl-bot-staging/v1beta1/scripts/fixup_errorreporting_v1beta1_keywords.py
 delete mode 100644 owl-bot-staging/v1beta1/setup.py
 delete mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.10.txt
 delete mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.11.txt
 delete mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.12.txt
 delete mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.7.txt
 delete mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.8.txt
 delete mode 100644 owl-bot-staging/v1beta1/testing/constraints-3.9.txt
 delete mode 100644 owl-bot-staging/v1beta1/tests/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/tests/unit/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/__init__.py
 delete mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
 delete mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
 delete mode 100644 owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py

diff --git a/google/cloud/errorreporting_v1beta1/__init__.py b/google/cloud/errorreporting_v1beta1/__init__.py
index 32bd5db9..e143641a 100644
--- a/google/cloud/errorreporting_v1beta1/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/__init__.py b/google/cloud/errorreporting_v1beta1/services/__init__.py
index e8e1c384..89a37dc9 100644
--- a/google/cloud/errorreporting_v1beta1/services/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/services/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py b/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
index 62563e79..96ac56f8 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py b/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
index bdc59765..0d91c2fd 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py b/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
index 07f0aead..34b0119b 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
index b6d0629c..91a3752f 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
index 665ee116..3cbc6416 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
index 4145ab7b..d97d8ad8 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
index 69497298..0a1d829b 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
index dcd0aefa..71c259c2 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
index b402e01a..3eda02c7 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
index 9bbfbcfd..bb758420 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
index 629a6ea6..75722883 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
index 9fe297c6..9170d159 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
index b1b560f3..f8a5fe87 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
index a2546b27..3899648b 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
index 21e0d0c2..4e751ed4 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
index b51a2ccb..b9b1be5f 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
index a32ef79c..b32a340e 100644
--- a/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
+++ b/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py b/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
index 5efbd937..9b8290ad 100644
--- a/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py b/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
index cfcad25b..929bac2c 100644
--- a/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
+++ b/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py b/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
index 810b2aba..60a9b15b 100644
--- a/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
+++ b/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
index 289d0ff1..d4d23aaf 100644
--- a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
index 77dc674a..54a7eda6 100644
--- a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
+++ b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
index 0ff8e435..e81bad5c 100644
--- a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
+++ b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
index eea7a486..d779e686 100644
--- a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
+++ b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
index dd460cf2..3a959003 100644
--- a/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
+++ b/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/types/__init__.py b/google/cloud/errorreporting_v1beta1/types/__init__.py
index fed4105b..9b575327 100644
--- a/google/cloud/errorreporting_v1beta1/types/__init__.py
+++ b/google/cloud/errorreporting_v1beta1/types/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/types/common.py b/google/cloud/errorreporting_v1beta1/types/common.py
index 43ac4ba2..c8fc2a1b 100644
--- a/google/cloud/errorreporting_v1beta1/types/common.py
+++ b/google/cloud/errorreporting_v1beta1/types/common.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/types/error_group_service.py b/google/cloud/errorreporting_v1beta1/types/error_group_service.py
index 63ecabf9..daecedde 100644
--- a/google/cloud/errorreporting_v1beta1/types/error_group_service.py
+++ b/google/cloud/errorreporting_v1beta1/types/error_group_service.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/types/error_stats_service.py b/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
index afb2668a..165d800b 100644
--- a/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
+++ b/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/google/cloud/errorreporting_v1beta1/types/report_errors_service.py b/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
index a3087c1a..7d6b5eee 100644
--- a/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
+++ b/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/owl-bot-staging/v1beta1/.coveragerc b/owl-bot-staging/v1beta1/.coveragerc
deleted file mode 100644
index 9aac2710..00000000
--- a/owl-bot-staging/v1beta1/.coveragerc
+++ /dev/null
@@ -1,13 +0,0 @@
-[run]
-branch = True
-
-[report]
-show_missing = True
-omit =
-    google/cloud/errorreporting/__init__.py
-    google/cloud/errorreporting/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/v1beta1/.flake8 b/owl-bot-staging/v1beta1/.flake8
deleted file mode 100644
index 29227d4c..00000000
--- a/owl-bot-staging/v1beta1/.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/v1beta1/MANIFEST.in b/owl-bot-staging/v1beta1/MANIFEST.in
deleted file mode 100644
index 46f177dc..00000000
--- a/owl-bot-staging/v1beta1/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-recursive-include google/cloud/errorreporting *.py
-recursive-include google/cloud/errorreporting_v1beta1 *.py
diff --git a/owl-bot-staging/v1beta1/README.rst b/owl-bot-staging/v1beta1/README.rst
deleted file mode 100644
index fda4cf8e..00000000
--- a/owl-bot-staging/v1beta1/README.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-Python Client for Google Cloud Errorreporting 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 Errorreporting 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/v1beta1/docs/conf.py b/owl-bot-staging/v1beta1/docs/conf.py
deleted file mode 100644
index ca368bb2..00000000
--- a/owl-bot-staging/v1beta1/docs/conf.py
+++ /dev/null
@@ -1,376 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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-error-reporting 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-error-reporting"
-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 = None
-
-# 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-error-reporting-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-error-reporting.tex",
-        u"google-cloud-error-reporting 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-error-reporting",
-        u"Google Cloud Errorreporting 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-error-reporting",
-        u"google-cloud-error-reporting Documentation",
-        author,
-        "google-cloud-error-reporting",
-        "GAPIC library for Google Cloud Errorreporting 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/v1beta1/docs/errorreporting_v1beta1/error_group_service.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_group_service.rst
deleted file mode 100644
index dd213525..00000000
--- a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_group_service.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-ErrorGroupService
------------------------------------
-
-.. automodule:: google.cloud.errorreporting_v1beta1.services.error_group_service
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_stats_service.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_stats_service.rst
deleted file mode 100644
index b798b28d..00000000
--- a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/error_stats_service.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-ErrorStatsService
------------------------------------
-
-.. automodule:: google.cloud.errorreporting_v1beta1.services.error_stats_service
-    :members:
-    :inherited-members:
-
-.. automodule:: google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/report_errors_service.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/report_errors_service.rst
deleted file mode 100644
index ccddb8b0..00000000
--- a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/report_errors_service.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-ReportErrorsService
--------------------------------------
-
-.. automodule:: google.cloud.errorreporting_v1beta1.services.report_errors_service
-    :members:
-    :inherited-members:
diff --git a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/services.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/services.rst
deleted file mode 100644
index e888027f..00000000
--- a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/services.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Services for Google Cloud Errorreporting v1beta1 API
-====================================================
-.. toctree::
-    :maxdepth: 2
-
-    error_group_service
-    error_stats_service
-    report_errors_service
diff --git a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/types.rst b/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/types.rst
deleted file mode 100644
index 08851dbe..00000000
--- a/owl-bot-staging/v1beta1/docs/errorreporting_v1beta1/types.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Types for Google Cloud Errorreporting v1beta1 API
-=================================================
-
-.. automodule:: google.cloud.errorreporting_v1beta1.types
-    :members:
-    :show-inheritance:
diff --git a/owl-bot-staging/v1beta1/docs/index.rst b/owl-bot-staging/v1beta1/docs/index.rst
deleted file mode 100644
index 886f7cd9..00000000
--- a/owl-bot-staging/v1beta1/docs/index.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-API Reference
--------------
-.. toctree::
-    :maxdepth: 2
-
-    errorreporting_v1beta1/services
-    errorreporting_v1beta1/types
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting/__init__.py
deleted file mode 100644
index 9f8df9e1..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting/__init__.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting import gapic_version as package_version
-
-__version__ = package_version.__version__
-
-
-from google.cloud.errorreporting_v1beta1.services.error_group_service.client import ErrorGroupServiceClient
-from google.cloud.errorreporting_v1beta1.services.error_group_service.async_client import ErrorGroupServiceAsyncClient
-from google.cloud.errorreporting_v1beta1.services.error_stats_service.client import ErrorStatsServiceClient
-from google.cloud.errorreporting_v1beta1.services.error_stats_service.async_client import ErrorStatsServiceAsyncClient
-from google.cloud.errorreporting_v1beta1.services.report_errors_service.client import ReportErrorsServiceClient
-from google.cloud.errorreporting_v1beta1.services.report_errors_service.async_client import ReportErrorsServiceAsyncClient
-
-from google.cloud.errorreporting_v1beta1.types.common import ErrorContext
-from google.cloud.errorreporting_v1beta1.types.common import ErrorEvent
-from google.cloud.errorreporting_v1beta1.types.common import ErrorGroup
-from google.cloud.errorreporting_v1beta1.types.common import HttpRequestContext
-from google.cloud.errorreporting_v1beta1.types.common import ServiceContext
-from google.cloud.errorreporting_v1beta1.types.common import SourceLocation
-from google.cloud.errorreporting_v1beta1.types.common import TrackingIssue
-from google.cloud.errorreporting_v1beta1.types.common import ResolutionStatus
-from google.cloud.errorreporting_v1beta1.types.error_group_service import GetGroupRequest
-from google.cloud.errorreporting_v1beta1.types.error_group_service import UpdateGroupRequest
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import DeleteEventsRequest
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import DeleteEventsResponse
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import ErrorGroupStats
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import ListEventsRequest
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import ListEventsResponse
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import ListGroupStatsRequest
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import ListGroupStatsResponse
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import QueryTimeRange
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import ServiceContextFilter
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import TimedCount
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import ErrorGroupOrder
-from google.cloud.errorreporting_v1beta1.types.error_stats_service import TimedCountAlignment
-from google.cloud.errorreporting_v1beta1.types.report_errors_service import ReportedErrorEvent
-from google.cloud.errorreporting_v1beta1.types.report_errors_service import ReportErrorEventRequest
-from google.cloud.errorreporting_v1beta1.types.report_errors_service import ReportErrorEventResponse
-
-__all__ = ('ErrorGroupServiceClient',
-    'ErrorGroupServiceAsyncClient',
-    'ErrorStatsServiceClient',
-    'ErrorStatsServiceAsyncClient',
-    'ReportErrorsServiceClient',
-    'ReportErrorsServiceAsyncClient',
-    'ErrorContext',
-    'ErrorEvent',
-    'ErrorGroup',
-    'HttpRequestContext',
-    'ServiceContext',
-    'SourceLocation',
-    'TrackingIssue',
-    'ResolutionStatus',
-    'GetGroupRequest',
-    'UpdateGroupRequest',
-    'DeleteEventsRequest',
-    'DeleteEventsResponse',
-    'ErrorGroupStats',
-    'ListEventsRequest',
-    'ListEventsResponse',
-    'ListGroupStatsRequest',
-    'ListGroupStatsResponse',
-    'QueryTimeRange',
-    'ServiceContextFilter',
-    'TimedCount',
-    'ErrorGroupOrder',
-    'TimedCountAlignment',
-    'ReportedErrorEvent',
-    'ReportErrorEventRequest',
-    'ReportErrorEventResponse',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting/gapic_version.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting/gapic_version.py
deleted file mode 100644
index 360a0d13..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting/gapic_version.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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/v1beta1/google/cloud/errorreporting/py.typed b/owl-bot-staging/v1beta1/google/cloud/errorreporting/py.typed
deleted file mode 100644
index 01870137..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting/py.typed
+++ /dev/null
@@ -1,2 +0,0 @@
-# Marker file for PEP 561.
-# The google-cloud-error-reporting package uses inline types.
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/__init__.py
deleted file mode 100644
index 4b8f8aba..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/__init__.py
+++ /dev/null
@@ -1,86 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1 import gapic_version as package_version
-
-__version__ = package_version.__version__
-
-
-from .services.error_group_service import ErrorGroupServiceClient
-from .services.error_group_service import ErrorGroupServiceAsyncClient
-from .services.error_stats_service import ErrorStatsServiceClient
-from .services.error_stats_service import ErrorStatsServiceAsyncClient
-from .services.report_errors_service import ReportErrorsServiceClient
-from .services.report_errors_service import ReportErrorsServiceAsyncClient
-
-from .types.common import ErrorContext
-from .types.common import ErrorEvent
-from .types.common import ErrorGroup
-from .types.common import HttpRequestContext
-from .types.common import ServiceContext
-from .types.common import SourceLocation
-from .types.common import TrackingIssue
-from .types.common import ResolutionStatus
-from .types.error_group_service import GetGroupRequest
-from .types.error_group_service import UpdateGroupRequest
-from .types.error_stats_service import DeleteEventsRequest
-from .types.error_stats_service import DeleteEventsResponse
-from .types.error_stats_service import ErrorGroupStats
-from .types.error_stats_service import ListEventsRequest
-from .types.error_stats_service import ListEventsResponse
-from .types.error_stats_service import ListGroupStatsRequest
-from .types.error_stats_service import ListGroupStatsResponse
-from .types.error_stats_service import QueryTimeRange
-from .types.error_stats_service import ServiceContextFilter
-from .types.error_stats_service import TimedCount
-from .types.error_stats_service import ErrorGroupOrder
-from .types.error_stats_service import TimedCountAlignment
-from .types.report_errors_service import ReportedErrorEvent
-from .types.report_errors_service import ReportErrorEventRequest
-from .types.report_errors_service import ReportErrorEventResponse
-
-__all__ = (
-    'ErrorGroupServiceAsyncClient',
-    'ErrorStatsServiceAsyncClient',
-    'ReportErrorsServiceAsyncClient',
-'DeleteEventsRequest',
-'DeleteEventsResponse',
-'ErrorContext',
-'ErrorEvent',
-'ErrorGroup',
-'ErrorGroupOrder',
-'ErrorGroupServiceClient',
-'ErrorGroupStats',
-'ErrorStatsServiceClient',
-'GetGroupRequest',
-'HttpRequestContext',
-'ListEventsRequest',
-'ListEventsResponse',
-'ListGroupStatsRequest',
-'ListGroupStatsResponse',
-'QueryTimeRange',
-'ReportErrorEventRequest',
-'ReportErrorEventResponse',
-'ReportErrorsServiceClient',
-'ReportedErrorEvent',
-'ResolutionStatus',
-'ServiceContext',
-'ServiceContextFilter',
-'SourceLocation',
-'TimedCount',
-'TimedCountAlignment',
-'TrackingIssue',
-'UpdateGroupRequest',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_metadata.json b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_metadata.json
deleted file mode 100644
index 825275e6..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_metadata.json
+++ /dev/null
@@ -1,156 +0,0 @@
- {
-  "comment": "This file maps proto services/RPCs to the corresponding library clients/methods",
-  "language": "python",
-  "libraryPackage": "google.cloud.errorreporting_v1beta1",
-  "protoPackage": "google.devtools.clouderrorreporting.v1beta1",
-  "schema": "1.0",
-  "services": {
-    "ErrorGroupService": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "ErrorGroupServiceClient",
-          "rpcs": {
-            "GetGroup": {
-              "methods": [
-                "get_group"
-              ]
-            },
-            "UpdateGroup": {
-              "methods": [
-                "update_group"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "ErrorGroupServiceAsyncClient",
-          "rpcs": {
-            "GetGroup": {
-              "methods": [
-                "get_group"
-              ]
-            },
-            "UpdateGroup": {
-              "methods": [
-                "update_group"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "ErrorGroupServiceClient",
-          "rpcs": {
-            "GetGroup": {
-              "methods": [
-                "get_group"
-              ]
-            },
-            "UpdateGroup": {
-              "methods": [
-                "update_group"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "ErrorStatsService": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "ErrorStatsServiceClient",
-          "rpcs": {
-            "DeleteEvents": {
-              "methods": [
-                "delete_events"
-              ]
-            },
-            "ListEvents": {
-              "methods": [
-                "list_events"
-              ]
-            },
-            "ListGroupStats": {
-              "methods": [
-                "list_group_stats"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "ErrorStatsServiceAsyncClient",
-          "rpcs": {
-            "DeleteEvents": {
-              "methods": [
-                "delete_events"
-              ]
-            },
-            "ListEvents": {
-              "methods": [
-                "list_events"
-              ]
-            },
-            "ListGroupStats": {
-              "methods": [
-                "list_group_stats"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "ErrorStatsServiceClient",
-          "rpcs": {
-            "DeleteEvents": {
-              "methods": [
-                "delete_events"
-              ]
-            },
-            "ListEvents": {
-              "methods": [
-                "list_events"
-              ]
-            },
-            "ListGroupStats": {
-              "methods": [
-                "list_group_stats"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "ReportErrorsService": {
-      "clients": {
-        "grpc": {
-          "libraryClient": "ReportErrorsServiceClient",
-          "rpcs": {
-            "ReportErrorEvent": {
-              "methods": [
-                "report_error_event"
-              ]
-            }
-          }
-        },
-        "grpc-async": {
-          "libraryClient": "ReportErrorsServiceAsyncClient",
-          "rpcs": {
-            "ReportErrorEvent": {
-              "methods": [
-                "report_error_event"
-              ]
-            }
-          }
-        },
-        "rest": {
-          "libraryClient": "ReportErrorsServiceClient",
-          "rpcs": {
-            "ReportErrorEvent": {
-              "methods": [
-                "report_error_event"
-              ]
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_version.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_version.py
deleted file mode 100644
index 360a0d13..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/gapic_version.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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/v1beta1/google/cloud/errorreporting_v1beta1/py.typed b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/py.typed
deleted file mode 100644
index 01870137..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/py.typed
+++ /dev/null
@@ -1,2 +0,0 @@
-# Marker file for PEP 561.
-# The google-cloud-error-reporting package uses inline types.
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/__init__.py
deleted file mode 100644
index 89a37dc9..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/__init__.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
deleted file mode 100644
index 9848dc98..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ErrorGroupServiceClient
-from .async_client import ErrorGroupServiceAsyncClient
-
-__all__ = (
-    'ErrorGroupServiceClient',
-    'ErrorGroupServiceAsyncClient',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
deleted file mode 100644
index 06e450c1..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/async_client.py
+++ /dev/null
@@ -1,404 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 functools
-import re
-from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.errorreporting_v1beta1 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 as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_group_service
-from .transports.base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import ErrorGroupServiceGrpcAsyncIOTransport
-from .client import ErrorGroupServiceClient
-
-
-class ErrorGroupServiceAsyncClient:
-    """Service for retrieving and updating individual error groups."""
-
-    _client: ErrorGroupServiceClient
-
-    DEFAULT_ENDPOINT = ErrorGroupServiceClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = ErrorGroupServiceClient.DEFAULT_MTLS_ENDPOINT
-
-    error_group_path = staticmethod(ErrorGroupServiceClient.error_group_path)
-    parse_error_group_path = staticmethod(ErrorGroupServiceClient.parse_error_group_path)
-    common_billing_account_path = staticmethod(ErrorGroupServiceClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(ErrorGroupServiceClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(ErrorGroupServiceClient.common_folder_path)
-    parse_common_folder_path = staticmethod(ErrorGroupServiceClient.parse_common_folder_path)
-    common_organization_path = staticmethod(ErrorGroupServiceClient.common_organization_path)
-    parse_common_organization_path = staticmethod(ErrorGroupServiceClient.parse_common_organization_path)
-    common_project_path = staticmethod(ErrorGroupServiceClient.common_project_path)
-    parse_common_project_path = staticmethod(ErrorGroupServiceClient.parse_common_project_path)
-    common_location_path = staticmethod(ErrorGroupServiceClient.common_location_path)
-    parse_common_location_path = staticmethod(ErrorGroupServiceClient.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:
-            ErrorGroupServiceAsyncClient: The constructed client.
-        """
-        return ErrorGroupServiceClient.from_service_account_info.__func__(ErrorGroupServiceAsyncClient, 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:
-            ErrorGroupServiceAsyncClient: The constructed client.
-        """
-        return ErrorGroupServiceClient.from_service_account_file.__func__(ErrorGroupServiceAsyncClient, 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 ErrorGroupServiceClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> ErrorGroupServiceTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ErrorGroupServiceTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    get_transport_class = functools.partial(type(ErrorGroupServiceClient).get_transport_class, type(ErrorGroupServiceClient))
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Union[str, ErrorGroupServiceTransport] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the error group service 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 (Union[str, ~.ErrorGroupServiceTransport]): The
-                transport to use. If set to None, a transport is chosen
-                automatically.
-            client_options (ClientOptions): Custom options for the client. It
-                won't take effect if a ``transport`` instance is provided.
-                (1) The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
-                environment variable can also be used to override the endpoint:
-                "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). However, the ``api_endpoint`` property takes
-                precedence if provided.
-                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide client certificate for mutual TLS 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.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = ErrorGroupServiceClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def get_group(self,
-            request: Optional[Union[error_group_service.GetGroupRequest, dict]] = None,
-            *,
-            group_name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> common.ErrorGroup:
-        r"""Get the specified group.
-
-        .. 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 errorreporting_v1beta1
-
-            async def sample_get_group():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorGroupServiceAsyncClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.GetGroupRequest(
-                    group_name="group_name_value",
-                )
-
-                # Make the request
-                response = await client.get_group(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.GetGroupRequest, dict]]):
-                The request object. A request to return an individual
-                group.
-            group_name (:class:`str`):
-                Required. The group resource name. Written as
-                ``projects/{projectID}/groups/{group_name}``. Call
-                ```groupStats.list`` <https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list>`__
-                to return a list of groups belonging to this project.
-
-                Example: ``projects/my-project-123/groups/my-group``
-
-                This corresponds to the ``group_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.errorreporting_v1beta1.types.ErrorGroup:
-                Description of a group of similar
-                error events.
-
-        """
-        # 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([group_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.")
-
-        request = error_group_service.GetGroupRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if group_name is not None:
-            request.group_name = group_name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = gapic_v1.method_async.wrap_method(
-            self._client._transport.get_group,
-            default_timeout=None,
-            client_info=DEFAULT_CLIENT_INFO,
-        )
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("group_name", request.group_name),
-            )),
-        )
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def update_group(self,
-            request: Optional[Union[error_group_service.UpdateGroupRequest, dict]] = None,
-            *,
-            group: Optional[common.ErrorGroup] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> common.ErrorGroup:
-        r"""Replace the data for the specified group.
-        Fails if the group does not exist.
-
-        .. 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 errorreporting_v1beta1
-
-            async def sample_update_group():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorGroupServiceAsyncClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.UpdateGroupRequest(
-                )
-
-                # Make the request
-                response = await client.update_group(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.UpdateGroupRequest, dict]]):
-                The request object. A request to replace the existing
-                data for the given group.
-            group (:class:`google.cloud.errorreporting_v1beta1.types.ErrorGroup`):
-                Required. The group which replaces
-                the resource on the server.
-
-                This corresponds to the ``group`` 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.errorreporting_v1beta1.types.ErrorGroup:
-                Description of a group of similar
-                error events.
-
-        """
-        # 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([group])
-        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.")
-
-        request = error_group_service.UpdateGroupRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if group is not None:
-            request.group = group
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = gapic_v1.method_async.wrap_method(
-            self._client._transport.update_group,
-            default_timeout=None,
-            client_info=DEFAULT_CLIENT_INFO,
-        )
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("group.name", request.group.name),
-            )),
-        )
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "ErrorGroupServiceAsyncClient":
-        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__ = (
-    "ErrorGroupServiceAsyncClient",
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
deleted file mode 100644
index 80f470b0..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/client.py
+++ /dev/null
@@ -1,608 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-
-from google.cloud.errorreporting_v1beta1 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]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_group_service
-from .transports.base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import ErrorGroupServiceGrpcTransport
-from .transports.grpc_asyncio import ErrorGroupServiceGrpcAsyncIOTransport
-from .transports.rest import ErrorGroupServiceRestTransport
-
-
-class ErrorGroupServiceClientMeta(type):
-    """Metaclass for the ErrorGroupService 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[ErrorGroupServiceTransport]]
-    _transport_registry["grpc"] = ErrorGroupServiceGrpcTransport
-    _transport_registry["grpc_asyncio"] = ErrorGroupServiceGrpcAsyncIOTransport
-    _transport_registry["rest"] = ErrorGroupServiceRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[ErrorGroupServiceTransport]:
-        """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 ErrorGroupServiceClient(metaclass=ErrorGroupServiceClientMeta):
-    """Service for retrieving and updating individual error groups."""
-
-    @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")
-
-    DEFAULT_ENDPOINT = "clouderrorreporting.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    @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:
-            ErrorGroupServiceClient: 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:
-            ErrorGroupServiceClient: 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) -> ErrorGroupServiceTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ErrorGroupServiceTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @staticmethod
-    def error_group_path(project: str,group: str,) -> str:
-        """Returns a fully-qualified error_group string."""
-        return "projects/{project}/groups/{group}".format(project=project, group=group, )
-
-    @staticmethod
-    def parse_error_group_path(path: str) -> Dict[str,str]:
-        """Parses a error_group path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/groups/(?P<group>.+?)$", 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):
-        """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.
-        """
-        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
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, ErrorGroupServiceTransport]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the error group service 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 (Union[str, ErrorGroupServiceTransport]): The
-                transport to use. 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. It won't take effect if a ``transport`` instance is provided.
-                (1) The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
-                environment variable can also be used to override the endpoint:
-                "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). However, the ``api_endpoint`` property takes
-                precedence if provided.
-                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide client certificate for mutual TLS 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.
-            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.
-        """
-        if isinstance(client_options, dict):
-            client_options = client_options_lib.from_dict(client_options)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        client_options = cast(client_options_lib.ClientOptions, client_options)
-
-        api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options)
-
-        api_key_value = getattr(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.
-        if isinstance(transport, ErrorGroupServiceTransport):
-            # transport is a ErrorGroupServiceTransport instance.
-            if credentials or client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = transport
-        else:
-            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 = type(self).get_transport_class(transport)
-            self._transport = Transport(
-                credentials=credentials,
-                credentials_file=client_options.credentials_file,
-                host=api_endpoint,
-                scopes=client_options.scopes,
-                client_cert_source_for_mtls=client_cert_source_func,
-                quota_project_id=client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=client_options.api_audience,
-            )
-
-    def get_group(self,
-            request: Optional[Union[error_group_service.GetGroupRequest, dict]] = None,
-            *,
-            group_name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> common.ErrorGroup:
-        r"""Get the specified group.
-
-        .. 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 errorreporting_v1beta1
-
-            def sample_get_group():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorGroupServiceClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.GetGroupRequest(
-                    group_name="group_name_value",
-                )
-
-                # Make the request
-                response = client.get_group(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.errorreporting_v1beta1.types.GetGroupRequest, dict]):
-                The request object. A request to return an individual
-                group.
-            group_name (str):
-                Required. The group resource name. Written as
-                ``projects/{projectID}/groups/{group_name}``. Call
-                ```groupStats.list`` <https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list>`__
-                to return a list of groups belonging to this project.
-
-                Example: ``projects/my-project-123/groups/my-group``
-
-                This corresponds to the ``group_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.errorreporting_v1beta1.types.ErrorGroup:
-                Description of a group of similar
-                error events.
-
-        """
-        # 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([group_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.')
-
-        # Minor optimization to avoid making a copy if the user passes
-        # in a error_group_service.GetGroupRequest.
-        # There's no risk of modifying the input as we've already verified
-        # there are no flattened fields.
-        if not isinstance(request, error_group_service.GetGroupRequest):
-            request = error_group_service.GetGroupRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if group_name is not None:
-                request.group_name = group_name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.get_group]
-
-         # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("group_name", request.group_name),
-            )),
-        )
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def update_group(self,
-            request: Optional[Union[error_group_service.UpdateGroupRequest, dict]] = None,
-            *,
-            group: Optional[common.ErrorGroup] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> common.ErrorGroup:
-        r"""Replace the data for the specified group.
-        Fails if the group does not exist.
-
-        .. 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 errorreporting_v1beta1
-
-            def sample_update_group():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorGroupServiceClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.UpdateGroupRequest(
-                )
-
-                # Make the request
-                response = client.update_group(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.errorreporting_v1beta1.types.UpdateGroupRequest, dict]):
-                The request object. A request to replace the existing
-                data for the given group.
-            group (google.cloud.errorreporting_v1beta1.types.ErrorGroup):
-                Required. The group which replaces
-                the resource on the server.
-
-                This corresponds to the ``group`` 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.errorreporting_v1beta1.types.ErrorGroup:
-                Description of a group of similar
-                error events.
-
-        """
-        # 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([group])
-        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.')
-
-        # Minor optimization to avoid making a copy if the user passes
-        # in a error_group_service.UpdateGroupRequest.
-        # There's no risk of modifying the input as we've already verified
-        # there are no flattened fields.
-        if not isinstance(request, error_group_service.UpdateGroupRequest):
-            request = error_group_service.UpdateGroupRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if group is not None:
-                request.group = group
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.update_group]
-
-         # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("group.name", request.group.name),
-            )),
-        )
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "ErrorGroupServiceClient":
-        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()
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "ErrorGroupServiceClient",
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
deleted file mode 100644
index 4f66ce5c..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ErrorGroupServiceTransport
-from .grpc import ErrorGroupServiceGrpcTransport
-from .grpc_asyncio import ErrorGroupServiceGrpcAsyncIOTransport
-from .rest import ErrorGroupServiceRestTransport
-from .rest import ErrorGroupServiceRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[ErrorGroupServiceTransport]]
-_transport_registry['grpc'] = ErrorGroupServiceGrpcTransport
-_transport_registry['grpc_asyncio'] = ErrorGroupServiceGrpcAsyncIOTransport
-_transport_registry['rest'] = ErrorGroupServiceRestTransport
-
-__all__ = (
-    'ErrorGroupServiceTransport',
-    'ErrorGroupServiceGrpcTransport',
-    'ErrorGroupServiceGrpcAsyncIOTransport',
-    'ErrorGroupServiceRestTransport',
-    'ErrorGroupServiceRestInterceptor',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
deleted file mode 100644
index e24becb3..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/base.py
+++ /dev/null
@@ -1,163 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1 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.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_group_service
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class ErrorGroupServiceTransport(abc.ABC):
-    """Abstract transport class for ErrorGroupService."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'clouderrorreporting.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.
-            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 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:
-            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
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.get_group: gapic_v1.method.wrap_method(
-                self.get_group,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.update_group: gapic_v1.method.wrap_method(
-                self.update_group,
-                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_group(self) -> Callable[
-            [error_group_service.GetGroupRequest],
-            Union[
-                common.ErrorGroup,
-                Awaitable[common.ErrorGroup]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def update_group(self) -> Callable[
-            [error_group_service.UpdateGroupRequest],
-            Union[
-                common.ErrorGroup,
-                Awaitable[common.ErrorGroup]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'ErrorGroupServiceTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
deleted file mode 100644
index 06b9806a..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc.py
+++ /dev/null
@@ -1,292 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_group_service
-from .base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO
-
-
-class ErrorGroupServiceGrpcTransport(ErrorGroupServiceTransport):
-    """gRPC backend transport for ErrorGroupService.
-
-    Service for retrieving and updating individual error groups.
-
-    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 = 'clouderrorreporting.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[grpc.Channel] = None,
-            api_mtls_endpoint: Optional[str] = None,
-            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
-            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            quota_project_id: Optional[str] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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 ``channel`` 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 ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            channel (Optional[grpc.Channel]): A ``Channel`` instance through
-                which to make calls.
-            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 ``channel`` 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 ``channel`` 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 channel:
-            # Ignore credentials if a channel was passed.
-            credentials = False
-            # 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:
-            self._grpc_channel = type(self).create_channel(
-                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 = 'clouderrorreporting.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_group(self) -> Callable[
-            [error_group_service.GetGroupRequest],
-            common.ErrorGroup]:
-        r"""Return a callable for the get group method over gRPC.
-
-        Get the specified group.
-
-        Returns:
-            Callable[[~.GetGroupRequest],
-                    ~.ErrorGroup]:
-                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_group' not in self._stubs:
-            self._stubs['get_group'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/GetGroup',
-                request_serializer=error_group_service.GetGroupRequest.serialize,
-                response_deserializer=common.ErrorGroup.deserialize,
-            )
-        return self._stubs['get_group']
-
-    @property
-    def update_group(self) -> Callable[
-            [error_group_service.UpdateGroupRequest],
-            common.ErrorGroup]:
-        r"""Return a callable for the update group method over gRPC.
-
-        Replace the data for the specified group.
-        Fails if the group does not exist.
-
-        Returns:
-            Callable[[~.UpdateGroupRequest],
-                    ~.ErrorGroup]:
-                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_group' not in self._stubs:
-            self._stubs['update_group'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/UpdateGroup',
-                request_serializer=error_group_service.UpdateGroupRequest.serialize,
-                response_deserializer=common.ErrorGroup.deserialize,
-            )
-        return self._stubs['update_group']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'ErrorGroupServiceGrpcTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
deleted file mode 100644
index 1d5e4e52..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,291 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-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.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_group_service
-from .base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO
-from .grpc import ErrorGroupServiceGrpcTransport
-
-
-class ErrorGroupServiceGrpcAsyncIOTransport(ErrorGroupServiceTransport):
-    """gRPC AsyncIO backend transport for ErrorGroupService.
-
-    Service for retrieving and updating individual error groups.
-
-    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 = 'clouderrorreporting.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`.
-                This argument is ignored if ``channel`` 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`.
-            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 = 'clouderrorreporting.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[aio.Channel] = None,
-            api_mtls_endpoint: Optional[str] = None,
-            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
-            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            quota_project_id: Optional[str] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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 ``channel`` 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 ``channel`` 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[aio.Channel]): A ``Channel`` instance through
-                which to make calls.
-            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 ``channel`` 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 ``channel`` 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 channel:
-            # Ignore credentials if a channel was passed.
-            credentials = False
-            # 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:
-            self._grpc_channel = type(self).create_channel(
-                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)
-
-    @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_group(self) -> Callable[
-            [error_group_service.GetGroupRequest],
-            Awaitable[common.ErrorGroup]]:
-        r"""Return a callable for the get group method over gRPC.
-
-        Get the specified group.
-
-        Returns:
-            Callable[[~.GetGroupRequest],
-                    Awaitable[~.ErrorGroup]]:
-                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_group' not in self._stubs:
-            self._stubs['get_group'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/GetGroup',
-                request_serializer=error_group_service.GetGroupRequest.serialize,
-                response_deserializer=common.ErrorGroup.deserialize,
-            )
-        return self._stubs['get_group']
-
-    @property
-    def update_group(self) -> Callable[
-            [error_group_service.UpdateGroupRequest],
-            Awaitable[common.ErrorGroup]]:
-        r"""Return a callable for the update group method over gRPC.
-
-        Replace the data for the specified group.
-        Fails if the group does not exist.
-
-        Returns:
-            Callable[[~.UpdateGroupRequest],
-                    Awaitable[~.ErrorGroup]]:
-                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_group' not in self._stubs:
-            self._stubs['update_group'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/UpdateGroup',
-                request_serializer=error_group_service.UpdateGroupRequest.serialize,
-                response_deserializer=common.ErrorGroup.deserialize,
-            )
-        return self._stubs['update_group']
-
-    def close(self):
-        return self.grpc_channel.close()
-
-
-__all__ = (
-    'ErrorGroupServiceGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
deleted file mode 100644
index e45b4ddb..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_group_service/transports/rest.py
+++ /dev/null
@@ -1,414 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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
-import grpc  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # 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 path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from requests import __version__ as requests_version
-import dataclasses
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_group_service
-
-from .base import ErrorGroupServiceTransport, DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=requests_version,
-)
-
-
-class ErrorGroupServiceRestInterceptor:
-    """Interceptor for ErrorGroupService.
-
-    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 ErrorGroupServiceRestTransport.
-
-    .. code-block:: python
-        class MyCustomErrorGroupServiceInterceptor(ErrorGroupServiceRestInterceptor):
-            def pre_get_group(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_get_group(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_update_group(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_update_group(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = ErrorGroupServiceRestTransport(interceptor=MyCustomErrorGroupServiceInterceptor())
-        client = ErrorGroupServiceClient(transport=transport)
-
-
-    """
-    def pre_get_group(self, request: error_group_service.GetGroupRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_group_service.GetGroupRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for get_group
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the ErrorGroupService server.
-        """
-        return request, metadata
-
-    def post_get_group(self, response: common.ErrorGroup) -> common.ErrorGroup:
-        """Post-rpc interceptor for get_group
-
-        Override in a subclass to manipulate the response
-        after it is returned by the ErrorGroupService server but before
-        it is returned to user code.
-        """
-        return response
-    def pre_update_group(self, request: error_group_service.UpdateGroupRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_group_service.UpdateGroupRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for update_group
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the ErrorGroupService server.
-        """
-        return request, metadata
-
-    def post_update_group(self, response: common.ErrorGroup) -> common.ErrorGroup:
-        """Post-rpc interceptor for update_group
-
-        Override in a subclass to manipulate the response
-        after it is returned by the ErrorGroupService server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class ErrorGroupServiceRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: ErrorGroupServiceRestInterceptor
-
-
-class ErrorGroupServiceRestTransport(ErrorGroupServiceTransport):
-    """REST backend transport for ErrorGroupService.
-
-    Service for retrieving and updating individual error groups.
-
-    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 = 'clouderrorreporting.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[ErrorGroupServiceRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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
-        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
-        )
-        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 ErrorGroupServiceRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    class _GetGroup(ErrorGroupServiceRestStub):
-        def __hash__(self):
-            return hash("GetGroup")
-
-        __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}
-
-        def __call__(self,
-                request: error_group_service.GetGroupRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> common.ErrorGroup:
-            r"""Call the get group method over HTTP.
-
-            Args:
-                request (~.error_group_service.GetGroupRequest):
-                    The request object. A request to return an individual
-                group.
-                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:
-                ~.common.ErrorGroup:
-                    Description of a group of similar
-                error events.
-
-            """
-
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v1beta1/{group_name=projects/*/groups/*}',
-            },
-            ]
-            request, metadata = self._interceptor.pre_get_group(request, metadata)
-            pb_request = error_group_service.GetGroupRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-
-            # Jsonify the query params
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                including_default_value_fields=False,
-                use_integers_for_enums=True,
-            ))
-            query_params.update(self._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-
-            # Send the request
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(self._session, method)(
-                "{host}{uri}".format(host=self._host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-
-            # 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 = common.ErrorGroup()
-            pb_resp = common.ErrorGroup.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_get_group(resp)
-            return resp
-
-    class _UpdateGroup(ErrorGroupServiceRestStub):
-        def __hash__(self):
-            return hash("UpdateGroup")
-
-        __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}
-
-        def __call__(self,
-                request: error_group_service.UpdateGroupRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> common.ErrorGroup:
-            r"""Call the update group method over HTTP.
-
-            Args:
-                request (~.error_group_service.UpdateGroupRequest):
-                    The request object. A request to replace the existing
-                data for the given group.
-                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:
-                ~.common.ErrorGroup:
-                    Description of a group of similar
-                error events.
-
-            """
-
-            http_options: List[Dict[str, str]] = [{
-                'method': 'put',
-                'uri': '/v1beta1/{group.name=projects/*/groups/*}',
-                'body': 'group',
-            },
-            ]
-            request, metadata = self._interceptor.pre_update_group(request, metadata)
-            pb_request = error_group_service.UpdateGroupRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                including_default_value_fields=False,
-                use_integers_for_enums=True
-            )
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-
-            # Jsonify the query params
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                including_default_value_fields=False,
-                use_integers_for_enums=True,
-            ))
-            query_params.update(self._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-
-            # Send the request
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(self._session, method)(
-                "{host}{uri}".format(host=self._host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=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 = common.ErrorGroup()
-            pb_resp = common.ErrorGroup.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_update_group(resp)
-            return resp
-
-    @property
-    def get_group(self) -> Callable[
-            [error_group_service.GetGroupRequest],
-            common.ErrorGroup]:
-        # 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._GetGroup(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def update_group(self) -> Callable[
-            [error_group_service.UpdateGroupRequest],
-            common.ErrorGroup]:
-        # 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._UpdateGroup(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'ErrorGroupServiceRestTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
deleted file mode 100644
index 5bad8b31..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ErrorStatsServiceClient
-from .async_client import ErrorStatsServiceAsyncClient
-
-__all__ = (
-    'ErrorStatsServiceClient',
-    'ErrorStatsServiceAsyncClient',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
deleted file mode 100644
index 85817610..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/async_client.py
+++ /dev/null
@@ -1,569 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 functools
-import re
-from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.errorreporting_v1beta1 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 as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-from google.cloud.errorreporting_v1beta1.services.error_stats_service import pagers
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_stats_service
-from .transports.base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import ErrorStatsServiceGrpcAsyncIOTransport
-from .client import ErrorStatsServiceClient
-
-
-class ErrorStatsServiceAsyncClient:
-    """An API for retrieving and managing error statistics as well
-    as data for individual events.
-    """
-
-    _client: ErrorStatsServiceClient
-
-    DEFAULT_ENDPOINT = ErrorStatsServiceClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = ErrorStatsServiceClient.DEFAULT_MTLS_ENDPOINT
-
-    error_group_path = staticmethod(ErrorStatsServiceClient.error_group_path)
-    parse_error_group_path = staticmethod(ErrorStatsServiceClient.parse_error_group_path)
-    common_billing_account_path = staticmethod(ErrorStatsServiceClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(ErrorStatsServiceClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(ErrorStatsServiceClient.common_folder_path)
-    parse_common_folder_path = staticmethod(ErrorStatsServiceClient.parse_common_folder_path)
-    common_organization_path = staticmethod(ErrorStatsServiceClient.common_organization_path)
-    parse_common_organization_path = staticmethod(ErrorStatsServiceClient.parse_common_organization_path)
-    common_project_path = staticmethod(ErrorStatsServiceClient.common_project_path)
-    parse_common_project_path = staticmethod(ErrorStatsServiceClient.parse_common_project_path)
-    common_location_path = staticmethod(ErrorStatsServiceClient.common_location_path)
-    parse_common_location_path = staticmethod(ErrorStatsServiceClient.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:
-            ErrorStatsServiceAsyncClient: The constructed client.
-        """
-        return ErrorStatsServiceClient.from_service_account_info.__func__(ErrorStatsServiceAsyncClient, 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:
-            ErrorStatsServiceAsyncClient: The constructed client.
-        """
-        return ErrorStatsServiceClient.from_service_account_file.__func__(ErrorStatsServiceAsyncClient, 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 ErrorStatsServiceClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> ErrorStatsServiceTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ErrorStatsServiceTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    get_transport_class = functools.partial(type(ErrorStatsServiceClient).get_transport_class, type(ErrorStatsServiceClient))
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Union[str, ErrorStatsServiceTransport] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the error stats service 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 (Union[str, ~.ErrorStatsServiceTransport]): The
-                transport to use. If set to None, a transport is chosen
-                automatically.
-            client_options (ClientOptions): Custom options for the client. It
-                won't take effect if a ``transport`` instance is provided.
-                (1) The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
-                environment variable can also be used to override the endpoint:
-                "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). However, the ``api_endpoint`` property takes
-                precedence if provided.
-                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide client certificate for mutual TLS 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.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = ErrorStatsServiceClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def list_group_stats(self,
-            request: Optional[Union[error_stats_service.ListGroupStatsRequest, dict]] = None,
-            *,
-            project_name: Optional[str] = None,
-            time_range: Optional[error_stats_service.QueryTimeRange] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListGroupStatsAsyncPager:
-        r"""Lists the specified groups.
-
-        .. 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 errorreporting_v1beta1
-
-            async def sample_list_group_stats():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.ListGroupStatsRequest(
-                    project_name="project_name_value",
-                )
-
-                # Make the request
-                page_result = client.list_group_stats(request=request)
-
-                # Handle the response
-                async for response in page_result:
-                    print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.ListGroupStatsRequest, dict]]):
-                The request object. Specifies a set of ``ErrorGroupStats`` to return.
-            project_name (:class:`str`):
-                Required. The resource name of the Google Cloud Platform
-                project. Written as ``projects/{projectID}`` or
-                ``projects/{projectNumber}``, where ``{projectID}`` and
-                ``{projectNumber}`` can be found in the `Google Cloud
-                Console <https://support.google.com/cloud/answer/6158840>`__.
-
-                Examples: ``projects/my-project-123``,
-                ``projects/5551234``.
-
-                This corresponds to the ``project_name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            time_range (:class:`google.cloud.errorreporting_v1beta1.types.QueryTimeRange`):
-                Optional. List data for the given time range. If not
-                set, a default time range is used. The field
-                time_range_begin in the response will specify the
-                beginning of this time range. Only ErrorGroupStats with
-                a non-zero count in the given time range are returned,
-                unless the request contains an explicit group_id list.
-                If a group_id list is given, also ErrorGroupStats with
-                zero occurrences are returned.
-
-                This corresponds to the ``time_range`` 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.errorreporting_v1beta1.services.error_stats_service.pagers.ListGroupStatsAsyncPager:
-                Contains a set of requested error
-                group stats.
-                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([project_name, time_range])
-        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.")
-
-        request = error_stats_service.ListGroupStatsRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if project_name is not None:
-            request.project_name = project_name
-        if time_range is not None:
-            request.time_range = time_range
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = gapic_v1.method_async.wrap_method(
-            self._client._transport.list_group_stats,
-            default_timeout=None,
-            client_info=DEFAULT_CLIENT_INFO,
-        )
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("project_name", request.project_name),
-            )),
-        )
-
-        # 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.ListGroupStatsAsyncPager(
-            method=rpc,
-            request=request,
-            response=response,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def list_events(self,
-            request: Optional[Union[error_stats_service.ListEventsRequest, dict]] = None,
-            *,
-            project_name: Optional[str] = None,
-            group_id: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListEventsAsyncPager:
-        r"""Lists the specified events.
-
-        .. 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 errorreporting_v1beta1
-
-            async def sample_list_events():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.ListEventsRequest(
-                    project_name="project_name_value",
-                    group_id="group_id_value",
-                )
-
-                # Make the request
-                page_result = client.list_events(request=request)
-
-                # Handle the response
-                async for response in page_result:
-                    print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.ListEventsRequest, dict]]):
-                The request object. Specifies a set of error events to
-                return.
-            project_name (:class:`str`):
-                Required. The resource name of the Google Cloud Platform
-                project. Written as ``projects/{projectID}``, where
-                ``{projectID}`` is the `Google Cloud Platform project
-                ID <https://support.google.com/cloud/answer/6158840>`__.
-
-                Example: ``projects/my-project-123``.
-
-                This corresponds to the ``project_name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            group_id (:class:`str`):
-                Required. The group for which events
-                shall be returned.
-
-                This corresponds to the ``group_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.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListEventsAsyncPager:
-                Contains a set of requested error
-                events.
-                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([project_name, group_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.")
-
-        request = error_stats_service.ListEventsRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if project_name is not None:
-            request.project_name = project_name
-        if group_id is not None:
-            request.group_id = group_id
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = gapic_v1.method_async.wrap_method(
-            self._client._transport.list_events,
-            default_timeout=None,
-            client_info=DEFAULT_CLIENT_INFO,
-        )
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("project_name", request.project_name),
-            )),
-        )
-
-        # 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.ListEventsAsyncPager(
-            method=rpc,
-            request=request,
-            response=response,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def delete_events(self,
-            request: Optional[Union[error_stats_service.DeleteEventsRequest, dict]] = None,
-            *,
-            project_name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> error_stats_service.DeleteEventsResponse:
-        r"""Deletes all error events of 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 errorreporting_v1beta1
-
-            async def sample_delete_events():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.DeleteEventsRequest(
-                    project_name="project_name_value",
-                )
-
-                # Make the request
-                response = await client.delete_events(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.DeleteEventsRequest, dict]]):
-                The request object. Deletes all events in the project.
-            project_name (:class:`str`):
-                Required. The resource name of the Google Cloud Platform
-                project. Written as ``projects/{projectID}``, where
-                ``{projectID}`` is the `Google Cloud Platform project
-                ID <https://support.google.com/cloud/answer/6158840>`__.
-
-                Example: ``projects/my-project-123``.
-
-                This corresponds to the ``project_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.errorreporting_v1beta1.types.DeleteEventsResponse:
-                Response message for deleting error
-                events.
-
-        """
-        # 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([project_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.")
-
-        request = error_stats_service.DeleteEventsRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if project_name is not None:
-            request.project_name = project_name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = gapic_v1.method_async.wrap_method(
-            self._client._transport.delete_events,
-            default_timeout=None,
-            client_info=DEFAULT_CLIENT_INFO,
-        )
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("project_name", request.project_name),
-            )),
-        )
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "ErrorStatsServiceAsyncClient":
-        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__ = (
-    "ErrorStatsServiceAsyncClient",
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
deleted file mode 100644
index ea6d6a14..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/client.py
+++ /dev/null
@@ -1,773 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-
-from google.cloud.errorreporting_v1beta1 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]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-from google.cloud.errorreporting_v1beta1.services.error_stats_service import pagers
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_stats_service
-from .transports.base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import ErrorStatsServiceGrpcTransport
-from .transports.grpc_asyncio import ErrorStatsServiceGrpcAsyncIOTransport
-from .transports.rest import ErrorStatsServiceRestTransport
-
-
-class ErrorStatsServiceClientMeta(type):
-    """Metaclass for the ErrorStatsService 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[ErrorStatsServiceTransport]]
-    _transport_registry["grpc"] = ErrorStatsServiceGrpcTransport
-    _transport_registry["grpc_asyncio"] = ErrorStatsServiceGrpcAsyncIOTransport
-    _transport_registry["rest"] = ErrorStatsServiceRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[ErrorStatsServiceTransport]:
-        """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 ErrorStatsServiceClient(metaclass=ErrorStatsServiceClientMeta):
-    """An API for retrieving and managing error statistics as well
-    as data for individual events.
-    """
-
-    @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")
-
-    DEFAULT_ENDPOINT = "clouderrorreporting.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    @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:
-            ErrorStatsServiceClient: 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:
-            ErrorStatsServiceClient: 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) -> ErrorStatsServiceTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ErrorStatsServiceTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @staticmethod
-    def error_group_path(project: str,group: str,) -> str:
-        """Returns a fully-qualified error_group string."""
-        return "projects/{project}/groups/{group}".format(project=project, group=group, )
-
-    @staticmethod
-    def parse_error_group_path(path: str) -> Dict[str,str]:
-        """Parses a error_group path into its component segments."""
-        m = re.match(r"^projects/(?P<project>.+?)/groups/(?P<group>.+?)$", 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):
-        """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.
-        """
-        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
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, ErrorStatsServiceTransport]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the error stats service 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 (Union[str, ErrorStatsServiceTransport]): The
-                transport to use. 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. It won't take effect if a ``transport`` instance is provided.
-                (1) The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
-                environment variable can also be used to override the endpoint:
-                "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). However, the ``api_endpoint`` property takes
-                precedence if provided.
-                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide client certificate for mutual TLS 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.
-            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.
-        """
-        if isinstance(client_options, dict):
-            client_options = client_options_lib.from_dict(client_options)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        client_options = cast(client_options_lib.ClientOptions, client_options)
-
-        api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options)
-
-        api_key_value = getattr(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.
-        if isinstance(transport, ErrorStatsServiceTransport):
-            # transport is a ErrorStatsServiceTransport instance.
-            if credentials or client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = transport
-        else:
-            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 = type(self).get_transport_class(transport)
-            self._transport = Transport(
-                credentials=credentials,
-                credentials_file=client_options.credentials_file,
-                host=api_endpoint,
-                scopes=client_options.scopes,
-                client_cert_source_for_mtls=client_cert_source_func,
-                quota_project_id=client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=client_options.api_audience,
-            )
-
-    def list_group_stats(self,
-            request: Optional[Union[error_stats_service.ListGroupStatsRequest, dict]] = None,
-            *,
-            project_name: Optional[str] = None,
-            time_range: Optional[error_stats_service.QueryTimeRange] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListGroupStatsPager:
-        r"""Lists the specified groups.
-
-        .. 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 errorreporting_v1beta1
-
-            def sample_list_group_stats():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorStatsServiceClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.ListGroupStatsRequest(
-                    project_name="project_name_value",
-                )
-
-                # Make the request
-                page_result = client.list_group_stats(request=request)
-
-                # Handle the response
-                for response in page_result:
-                    print(response)
-
-        Args:
-            request (Union[google.cloud.errorreporting_v1beta1.types.ListGroupStatsRequest, dict]):
-                The request object. Specifies a set of ``ErrorGroupStats`` to return.
-            project_name (str):
-                Required. The resource name of the Google Cloud Platform
-                project. Written as ``projects/{projectID}`` or
-                ``projects/{projectNumber}``, where ``{projectID}`` and
-                ``{projectNumber}`` can be found in the `Google Cloud
-                Console <https://support.google.com/cloud/answer/6158840>`__.
-
-                Examples: ``projects/my-project-123``,
-                ``projects/5551234``.
-
-                This corresponds to the ``project_name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            time_range (google.cloud.errorreporting_v1beta1.types.QueryTimeRange):
-                Optional. List data for the given time range. If not
-                set, a default time range is used. The field
-                time_range_begin in the response will specify the
-                beginning of this time range. Only ErrorGroupStats with
-                a non-zero count in the given time range are returned,
-                unless the request contains an explicit group_id list.
-                If a group_id list is given, also ErrorGroupStats with
-                zero occurrences are returned.
-
-                This corresponds to the ``time_range`` 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.errorreporting_v1beta1.services.error_stats_service.pagers.ListGroupStatsPager:
-                Contains a set of requested error
-                group stats.
-                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([project_name, time_range])
-        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.')
-
-        # Minor optimization to avoid making a copy if the user passes
-        # in a error_stats_service.ListGroupStatsRequest.
-        # There's no risk of modifying the input as we've already verified
-        # there are no flattened fields.
-        if not isinstance(request, error_stats_service.ListGroupStatsRequest):
-            request = error_stats_service.ListGroupStatsRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if project_name is not None:
-                request.project_name = project_name
-            if time_range is not None:
-                request.time_range = time_range
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_group_stats]
-
-         # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("project_name", request.project_name),
-            )),
-        )
-
-        # 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.ListGroupStatsPager(
-            method=rpc,
-            request=request,
-            response=response,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def list_events(self,
-            request: Optional[Union[error_stats_service.ListEventsRequest, dict]] = None,
-            *,
-            project_name: Optional[str] = None,
-            group_id: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> pagers.ListEventsPager:
-        r"""Lists the specified events.
-
-        .. 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 errorreporting_v1beta1
-
-            def sample_list_events():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorStatsServiceClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.ListEventsRequest(
-                    project_name="project_name_value",
-                    group_id="group_id_value",
-                )
-
-                # Make the request
-                page_result = client.list_events(request=request)
-
-                # Handle the response
-                for response in page_result:
-                    print(response)
-
-        Args:
-            request (Union[google.cloud.errorreporting_v1beta1.types.ListEventsRequest, dict]):
-                The request object. Specifies a set of error events to
-                return.
-            project_name (str):
-                Required. The resource name of the Google Cloud Platform
-                project. Written as ``projects/{projectID}``, where
-                ``{projectID}`` is the `Google Cloud Platform project
-                ID <https://support.google.com/cloud/answer/6158840>`__.
-
-                Example: ``projects/my-project-123``.
-
-                This corresponds to the ``project_name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            group_id (str):
-                Required. The group for which events
-                shall be returned.
-
-                This corresponds to the ``group_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.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListEventsPager:
-                Contains a set of requested error
-                events.
-                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([project_name, group_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.')
-
-        # Minor optimization to avoid making a copy if the user passes
-        # in a error_stats_service.ListEventsRequest.
-        # There's no risk of modifying the input as we've already verified
-        # there are no flattened fields.
-        if not isinstance(request, error_stats_service.ListEventsRequest):
-            request = error_stats_service.ListEventsRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if project_name is not None:
-                request.project_name = project_name
-            if group_id is not None:
-                request.group_id = group_id
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.list_events]
-
-         # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("project_name", request.project_name),
-            )),
-        )
-
-        # 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.ListEventsPager(
-            method=rpc,
-            request=request,
-            response=response,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def delete_events(self,
-            request: Optional[Union[error_stats_service.DeleteEventsRequest, dict]] = None,
-            *,
-            project_name: Optional[str] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> error_stats_service.DeleteEventsResponse:
-        r"""Deletes all error events of 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 errorreporting_v1beta1
-
-            def sample_delete_events():
-                # Create a client
-                client = errorreporting_v1beta1.ErrorStatsServiceClient()
-
-                # Initialize request argument(s)
-                request = errorreporting_v1beta1.DeleteEventsRequest(
-                    project_name="project_name_value",
-                )
-
-                # Make the request
-                response = client.delete_events(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.errorreporting_v1beta1.types.DeleteEventsRequest, dict]):
-                The request object. Deletes all events in the project.
-            project_name (str):
-                Required. The resource name of the Google Cloud Platform
-                project. Written as ``projects/{projectID}``, where
-                ``{projectID}`` is the `Google Cloud Platform project
-                ID <https://support.google.com/cloud/answer/6158840>`__.
-
-                Example: ``projects/my-project-123``.
-
-                This corresponds to the ``project_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.errorreporting_v1beta1.types.DeleteEventsResponse:
-                Response message for deleting error
-                events.
-
-        """
-        # 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([project_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.')
-
-        # Minor optimization to avoid making a copy if the user passes
-        # in a error_stats_service.DeleteEventsRequest.
-        # There's no risk of modifying the input as we've already verified
-        # there are no flattened fields.
-        if not isinstance(request, error_stats_service.DeleteEventsRequest):
-            request = error_stats_service.DeleteEventsRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if project_name is not None:
-                request.project_name = project_name
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.delete_events]
-
-         # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("project_name", request.project_name),
-            )),
-        )
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "ErrorStatsServiceClient":
-        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()
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "ErrorStatsServiceClient",
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
deleted file mode 100644
index 58762997..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/pagers.py
+++ /dev/null
@@ -1,261 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator
-
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_stats_service
-
-
-class ListGroupStatsPager:
-    """A pager for iterating through ``list_group_stats`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse` object, and
-    provides an ``__iter__`` method to iterate through its
-    ``error_group_stats`` field.
-
-    If there are more pages, the ``__iter__`` method will make additional
-    ``ListGroupStats`` requests and continue to iterate
-    through the ``error_group_stats`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse`
-    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[..., error_stats_service.ListGroupStatsResponse],
-            request: error_stats_service.ListGroupStatsRequest,
-            response: error_stats_service.ListGroupStatsResponse,
-            *,
-            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.errorreporting_v1beta1.types.ListGroupStatsRequest):
-                The initial request object.
-            response (google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse):
-                The initial response object.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = error_stats_service.ListGroupStatsRequest(request)
-        self._response = response
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    def pages(self) -> Iterator[error_stats_service.ListGroupStatsResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = self._method(self._request, metadata=self._metadata)
-            yield self._response
-
-    def __iter__(self) -> Iterator[error_stats_service.ErrorGroupStats]:
-        for page in self.pages:
-            yield from page.error_group_stats
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
-
-
-class ListGroupStatsAsyncPager:
-    """A pager for iterating through ``list_group_stats`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse` object, and
-    provides an ``__aiter__`` method to iterate through its
-    ``error_group_stats`` field.
-
-    If there are more pages, the ``__aiter__`` method will make additional
-    ``ListGroupStats`` requests and continue to iterate
-    through the ``error_group_stats`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse`
-    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[error_stats_service.ListGroupStatsResponse]],
-            request: error_stats_service.ListGroupStatsRequest,
-            response: error_stats_service.ListGroupStatsResponse,
-            *,
-            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.errorreporting_v1beta1.types.ListGroupStatsRequest):
-                The initial request object.
-            response (google.cloud.errorreporting_v1beta1.types.ListGroupStatsResponse):
-                The initial response object.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = error_stats_service.ListGroupStatsRequest(request)
-        self._response = response
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    async def pages(self) -> AsyncIterator[error_stats_service.ListGroupStatsResponse]:
-        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, metadata=self._metadata)
-            yield self._response
-    def __aiter__(self) -> AsyncIterator[error_stats_service.ErrorGroupStats]:
-        async def async_generator():
-            async for page in self.pages:
-                for response in page.error_group_stats:
-                    yield response
-
-        return async_generator()
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
-
-
-class ListEventsPager:
-    """A pager for iterating through ``list_events`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.errorreporting_v1beta1.types.ListEventsResponse` object, and
-    provides an ``__iter__`` method to iterate through its
-    ``error_events`` field.
-
-    If there are more pages, the ``__iter__`` method will make additional
-    ``ListEvents`` requests and continue to iterate
-    through the ``error_events`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.errorreporting_v1beta1.types.ListEventsResponse`
-    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[..., error_stats_service.ListEventsResponse],
-            request: error_stats_service.ListEventsRequest,
-            response: error_stats_service.ListEventsResponse,
-            *,
-            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.errorreporting_v1beta1.types.ListEventsRequest):
-                The initial request object.
-            response (google.cloud.errorreporting_v1beta1.types.ListEventsResponse):
-                The initial response object.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = error_stats_service.ListEventsRequest(request)
-        self._response = response
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    def pages(self) -> Iterator[error_stats_service.ListEventsResponse]:
-        yield self._response
-        while self._response.next_page_token:
-            self._request.page_token = self._response.next_page_token
-            self._response = self._method(self._request, metadata=self._metadata)
-            yield self._response
-
-    def __iter__(self) -> Iterator[common.ErrorEvent]:
-        for page in self.pages:
-            yield from page.error_events
-
-    def __repr__(self) -> str:
-        return '{0}<{1!r}>'.format(self.__class__.__name__, self._response)
-
-
-class ListEventsAsyncPager:
-    """A pager for iterating through ``list_events`` requests.
-
-    This class thinly wraps an initial
-    :class:`google.cloud.errorreporting_v1beta1.types.ListEventsResponse` object, and
-    provides an ``__aiter__`` method to iterate through its
-    ``error_events`` field.
-
-    If there are more pages, the ``__aiter__`` method will make additional
-    ``ListEvents`` requests and continue to iterate
-    through the ``error_events`` field on the
-    corresponding responses.
-
-    All the usual :class:`google.cloud.errorreporting_v1beta1.types.ListEventsResponse`
-    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[error_stats_service.ListEventsResponse]],
-            request: error_stats_service.ListEventsRequest,
-            response: error_stats_service.ListEventsResponse,
-            *,
-            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.errorreporting_v1beta1.types.ListEventsRequest):
-                The initial request object.
-            response (google.cloud.errorreporting_v1beta1.types.ListEventsResponse):
-                The initial response object.
-            metadata (Sequence[Tuple[str, str]]): Strings which should be
-                sent along with the request as metadata.
-        """
-        self._method = method
-        self._request = error_stats_service.ListEventsRequest(request)
-        self._response = response
-        self._metadata = metadata
-
-    def __getattr__(self, name: str) -> Any:
-        return getattr(self._response, name)
-
-    @property
-    async def pages(self) -> AsyncIterator[error_stats_service.ListEventsResponse]:
-        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, metadata=self._metadata)
-            yield self._response
-    def __aiter__(self) -> AsyncIterator[common.ErrorEvent]:
-        async def async_generator():
-            async for page in self.pages:
-                for response in page.error_events:
-                    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/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
deleted file mode 100644
index e09a9aad..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ErrorStatsServiceTransport
-from .grpc import ErrorStatsServiceGrpcTransport
-from .grpc_asyncio import ErrorStatsServiceGrpcAsyncIOTransport
-from .rest import ErrorStatsServiceRestTransport
-from .rest import ErrorStatsServiceRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[ErrorStatsServiceTransport]]
-_transport_registry['grpc'] = ErrorStatsServiceGrpcTransport
-_transport_registry['grpc_asyncio'] = ErrorStatsServiceGrpcAsyncIOTransport
-_transport_registry['rest'] = ErrorStatsServiceRestTransport
-
-__all__ = (
-    'ErrorStatsServiceTransport',
-    'ErrorStatsServiceGrpcTransport',
-    'ErrorStatsServiceGrpcAsyncIOTransport',
-    'ErrorStatsServiceRestTransport',
-    'ErrorStatsServiceRestInterceptor',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
deleted file mode 100644
index 1280f57e..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/base.py
+++ /dev/null
@@ -1,176 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1 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.errorreporting_v1beta1.types import error_stats_service
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class ErrorStatsServiceTransport(abc.ABC):
-    """Abstract transport class for ErrorStatsService."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'clouderrorreporting.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.
-            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 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:
-            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
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.list_group_stats: gapic_v1.method.wrap_method(
-                self.list_group_stats,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.list_events: gapic_v1.method.wrap_method(
-                self.list_events,
-                default_timeout=None,
-                client_info=client_info,
-            ),
-            self.delete_events: gapic_v1.method.wrap_method(
-                self.delete_events,
-                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 list_group_stats(self) -> Callable[
-            [error_stats_service.ListGroupStatsRequest],
-            Union[
-                error_stats_service.ListGroupStatsResponse,
-                Awaitable[error_stats_service.ListGroupStatsResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def list_events(self) -> Callable[
-            [error_stats_service.ListEventsRequest],
-            Union[
-                error_stats_service.ListEventsResponse,
-                Awaitable[error_stats_service.ListEventsResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def delete_events(self) -> Callable[
-            [error_stats_service.DeleteEventsRequest],
-            Union[
-                error_stats_service.DeleteEventsResponse,
-                Awaitable[error_stats_service.DeleteEventsResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'ErrorStatsServiceTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
deleted file mode 100644
index 44a52a1e..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc.py
+++ /dev/null
@@ -1,317 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1.types import error_stats_service
-from .base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO
-
-
-class ErrorStatsServiceGrpcTransport(ErrorStatsServiceTransport):
-    """gRPC backend transport for ErrorStatsService.
-
-    An API for retrieving and managing error statistics as well
-    as data for individual events.
-
-    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 = 'clouderrorreporting.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[grpc.Channel] = None,
-            api_mtls_endpoint: Optional[str] = None,
-            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
-            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            quota_project_id: Optional[str] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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 ``channel`` 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 ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            channel (Optional[grpc.Channel]): A ``Channel`` instance through
-                which to make calls.
-            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 ``channel`` 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 ``channel`` 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 channel:
-            # Ignore credentials if a channel was passed.
-            credentials = False
-            # 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:
-            self._grpc_channel = type(self).create_channel(
-                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 = 'clouderrorreporting.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 list_group_stats(self) -> Callable[
-            [error_stats_service.ListGroupStatsRequest],
-            error_stats_service.ListGroupStatsResponse]:
-        r"""Return a callable for the list group stats method over gRPC.
-
-        Lists the specified groups.
-
-        Returns:
-            Callable[[~.ListGroupStatsRequest],
-                    ~.ListGroupStatsResponse]:
-                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_group_stats' not in self._stubs:
-            self._stubs['list_group_stats'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListGroupStats',
-                request_serializer=error_stats_service.ListGroupStatsRequest.serialize,
-                response_deserializer=error_stats_service.ListGroupStatsResponse.deserialize,
-            )
-        return self._stubs['list_group_stats']
-
-    @property
-    def list_events(self) -> Callable[
-            [error_stats_service.ListEventsRequest],
-            error_stats_service.ListEventsResponse]:
-        r"""Return a callable for the list events method over gRPC.
-
-        Lists the specified events.
-
-        Returns:
-            Callable[[~.ListEventsRequest],
-                    ~.ListEventsResponse]:
-                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_events' not in self._stubs:
-            self._stubs['list_events'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListEvents',
-                request_serializer=error_stats_service.ListEventsRequest.serialize,
-                response_deserializer=error_stats_service.ListEventsResponse.deserialize,
-            )
-        return self._stubs['list_events']
-
-    @property
-    def delete_events(self) -> Callable[
-            [error_stats_service.DeleteEventsRequest],
-            error_stats_service.DeleteEventsResponse]:
-        r"""Return a callable for the delete events method over gRPC.
-
-        Deletes all error events of a given project.
-
-        Returns:
-            Callable[[~.DeleteEventsRequest],
-                    ~.DeleteEventsResponse]:
-                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_events' not in self._stubs:
-            self._stubs['delete_events'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/DeleteEvents',
-                request_serializer=error_stats_service.DeleteEventsRequest.serialize,
-                response_deserializer=error_stats_service.DeleteEventsResponse.deserialize,
-            )
-        return self._stubs['delete_events']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'ErrorStatsServiceGrpcTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
deleted file mode 100644
index 024003cb..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,316 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-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.errorreporting_v1beta1.types import error_stats_service
-from .base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO
-from .grpc import ErrorStatsServiceGrpcTransport
-
-
-class ErrorStatsServiceGrpcAsyncIOTransport(ErrorStatsServiceTransport):
-    """gRPC AsyncIO backend transport for ErrorStatsService.
-
-    An API for retrieving and managing error statistics as well
-    as data for individual events.
-
-    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 = 'clouderrorreporting.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`.
-                This argument is ignored if ``channel`` 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`.
-            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 = 'clouderrorreporting.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[aio.Channel] = None,
-            api_mtls_endpoint: Optional[str] = None,
-            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
-            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            quota_project_id: Optional[str] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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 ``channel`` 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 ``channel`` 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[aio.Channel]): A ``Channel`` instance through
-                which to make calls.
-            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 ``channel`` 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 ``channel`` 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 channel:
-            # Ignore credentials if a channel was passed.
-            credentials = False
-            # 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:
-            self._grpc_channel = type(self).create_channel(
-                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)
-
-    @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 list_group_stats(self) -> Callable[
-            [error_stats_service.ListGroupStatsRequest],
-            Awaitable[error_stats_service.ListGroupStatsResponse]]:
-        r"""Return a callable for the list group stats method over gRPC.
-
-        Lists the specified groups.
-
-        Returns:
-            Callable[[~.ListGroupStatsRequest],
-                    Awaitable[~.ListGroupStatsResponse]]:
-                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_group_stats' not in self._stubs:
-            self._stubs['list_group_stats'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListGroupStats',
-                request_serializer=error_stats_service.ListGroupStatsRequest.serialize,
-                response_deserializer=error_stats_service.ListGroupStatsResponse.deserialize,
-            )
-        return self._stubs['list_group_stats']
-
-    @property
-    def list_events(self) -> Callable[
-            [error_stats_service.ListEventsRequest],
-            Awaitable[error_stats_service.ListEventsResponse]]:
-        r"""Return a callable for the list events method over gRPC.
-
-        Lists the specified events.
-
-        Returns:
-            Callable[[~.ListEventsRequest],
-                    Awaitable[~.ListEventsResponse]]:
-                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_events' not in self._stubs:
-            self._stubs['list_events'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListEvents',
-                request_serializer=error_stats_service.ListEventsRequest.serialize,
-                response_deserializer=error_stats_service.ListEventsResponse.deserialize,
-            )
-        return self._stubs['list_events']
-
-    @property
-    def delete_events(self) -> Callable[
-            [error_stats_service.DeleteEventsRequest],
-            Awaitable[error_stats_service.DeleteEventsResponse]]:
-        r"""Return a callable for the delete events method over gRPC.
-
-        Deletes all error events of a given project.
-
-        Returns:
-            Callable[[~.DeleteEventsRequest],
-                    Awaitable[~.DeleteEventsResponse]]:
-                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_events' not in self._stubs:
-            self._stubs['delete_events'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/DeleteEvents',
-                request_serializer=error_stats_service.DeleteEventsRequest.serialize,
-                response_deserializer=error_stats_service.DeleteEventsResponse.deserialize,
-            )
-        return self._stubs['delete_events']
-
-    def close(self):
-        return self.grpc_channel.close()
-
-
-__all__ = (
-    'ErrorStatsServiceGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
deleted file mode 100644
index 9ba0be6f..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/error_stats_service/transports/rest.py
+++ /dev/null
@@ -1,516 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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
-import grpc  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # 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 path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from requests import __version__ as requests_version
-import dataclasses
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-
-from google.cloud.errorreporting_v1beta1.types import error_stats_service
-
-from .base import ErrorStatsServiceTransport, DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=requests_version,
-)
-
-
-class ErrorStatsServiceRestInterceptor:
-    """Interceptor for ErrorStatsService.
-
-    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 ErrorStatsServiceRestTransport.
-
-    .. code-block:: python
-        class MyCustomErrorStatsServiceInterceptor(ErrorStatsServiceRestInterceptor):
-            def pre_delete_events(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_delete_events(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_list_events(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_list_events(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-            def pre_list_group_stats(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_list_group_stats(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = ErrorStatsServiceRestTransport(interceptor=MyCustomErrorStatsServiceInterceptor())
-        client = ErrorStatsServiceClient(transport=transport)
-
-
-    """
-    def pre_delete_events(self, request: error_stats_service.DeleteEventsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_stats_service.DeleteEventsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for delete_events
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the ErrorStatsService server.
-        """
-        return request, metadata
-
-    def post_delete_events(self, response: error_stats_service.DeleteEventsResponse) -> error_stats_service.DeleteEventsResponse:
-        """Post-rpc interceptor for delete_events
-
-        Override in a subclass to manipulate the response
-        after it is returned by the ErrorStatsService server but before
-        it is returned to user code.
-        """
-        return response
-    def pre_list_events(self, request: error_stats_service.ListEventsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_stats_service.ListEventsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_events
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the ErrorStatsService server.
-        """
-        return request, metadata
-
-    def post_list_events(self, response: error_stats_service.ListEventsResponse) -> error_stats_service.ListEventsResponse:
-        """Post-rpc interceptor for list_events
-
-        Override in a subclass to manipulate the response
-        after it is returned by the ErrorStatsService server but before
-        it is returned to user code.
-        """
-        return response
-    def pre_list_group_stats(self, request: error_stats_service.ListGroupStatsRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[error_stats_service.ListGroupStatsRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for list_group_stats
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the ErrorStatsService server.
-        """
-        return request, metadata
-
-    def post_list_group_stats(self, response: error_stats_service.ListGroupStatsResponse) -> error_stats_service.ListGroupStatsResponse:
-        """Post-rpc interceptor for list_group_stats
-
-        Override in a subclass to manipulate the response
-        after it is returned by the ErrorStatsService server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class ErrorStatsServiceRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: ErrorStatsServiceRestInterceptor
-
-
-class ErrorStatsServiceRestTransport(ErrorStatsServiceTransport):
-    """REST backend transport for ErrorStatsService.
-
-    An API for retrieving and managing error statistics as well
-    as data for individual events.
-
-    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 = 'clouderrorreporting.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[ErrorStatsServiceRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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
-        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
-        )
-        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 ErrorStatsServiceRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    class _DeleteEvents(ErrorStatsServiceRestStub):
-        def __hash__(self):
-            return hash("DeleteEvents")
-
-        __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}
-
-        def __call__(self,
-                request: error_stats_service.DeleteEventsRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> error_stats_service.DeleteEventsResponse:
-            r"""Call the delete events method over HTTP.
-
-            Args:
-                request (~.error_stats_service.DeleteEventsRequest):
-                    The request object. Deletes all events in the project.
-                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:
-                ~.error_stats_service.DeleteEventsResponse:
-                    Response message for deleting error
-                events.
-
-            """
-
-            http_options: List[Dict[str, str]] = [{
-                'method': 'delete',
-                'uri': '/v1beta1/{project_name=projects/*}/events',
-            },
-            ]
-            request, metadata = self._interceptor.pre_delete_events(request, metadata)
-            pb_request = error_stats_service.DeleteEventsRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-
-            # Jsonify the query params
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                including_default_value_fields=False,
-                use_integers_for_enums=True,
-            ))
-            query_params.update(self._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-
-            # Send the request
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(self._session, method)(
-                "{host}{uri}".format(host=self._host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-
-            # 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 = error_stats_service.DeleteEventsResponse()
-            pb_resp = error_stats_service.DeleteEventsResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_delete_events(resp)
-            return resp
-
-    class _ListEvents(ErrorStatsServiceRestStub):
-        def __hash__(self):
-            return hash("ListEvents")
-
-        __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] =  {
-            "groupId" : "",        }
-
-        @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}
-
-        def __call__(self,
-                request: error_stats_service.ListEventsRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> error_stats_service.ListEventsResponse:
-            r"""Call the list events method over HTTP.
-
-            Args:
-                request (~.error_stats_service.ListEventsRequest):
-                    The request object. Specifies a set of error events to
-                return.
-                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:
-                ~.error_stats_service.ListEventsResponse:
-                    Contains a set of requested error
-                events.
-
-            """
-
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v1beta1/{project_name=projects/*}/events',
-            },
-            ]
-            request, metadata = self._interceptor.pre_list_events(request, metadata)
-            pb_request = error_stats_service.ListEventsRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-
-            # Jsonify the query params
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                including_default_value_fields=False,
-                use_integers_for_enums=True,
-            ))
-            query_params.update(self._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-
-            # Send the request
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(self._session, method)(
-                "{host}{uri}".format(host=self._host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-
-            # 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 = error_stats_service.ListEventsResponse()
-            pb_resp = error_stats_service.ListEventsResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_list_events(resp)
-            return resp
-
-    class _ListGroupStats(ErrorStatsServiceRestStub):
-        def __hash__(self):
-            return hash("ListGroupStats")
-
-        __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}
-
-        def __call__(self,
-                request: error_stats_service.ListGroupStatsRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> error_stats_service.ListGroupStatsResponse:
-            r"""Call the list group stats method over HTTP.
-
-            Args:
-                request (~.error_stats_service.ListGroupStatsRequest):
-                    The request object. Specifies a set of ``ErrorGroupStats`` to return.
-                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:
-                ~.error_stats_service.ListGroupStatsResponse:
-                    Contains a set of requested error
-                group stats.
-
-            """
-
-            http_options: List[Dict[str, str]] = [{
-                'method': 'get',
-                'uri': '/v1beta1/{project_name=projects/*}/groupStats',
-            },
-            ]
-            request, metadata = self._interceptor.pre_list_group_stats(request, metadata)
-            pb_request = error_stats_service.ListGroupStatsRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-
-            # Jsonify the query params
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                including_default_value_fields=False,
-                use_integers_for_enums=True,
-            ))
-            query_params.update(self._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-
-            # Send the request
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(self._session, method)(
-                "{host}{uri}".format(host=self._host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                )
-
-            # 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 = error_stats_service.ListGroupStatsResponse()
-            pb_resp = error_stats_service.ListGroupStatsResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_list_group_stats(resp)
-            return resp
-
-    @property
-    def delete_events(self) -> Callable[
-            [error_stats_service.DeleteEventsRequest],
-            error_stats_service.DeleteEventsResponse]:
-        # 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._DeleteEvents(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def list_events(self) -> Callable[
-            [error_stats_service.ListEventsRequest],
-            error_stats_service.ListEventsResponse]:
-        # 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._ListEvents(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def list_group_stats(self) -> Callable[
-            [error_stats_service.ListGroupStatsRequest],
-            error_stats_service.ListGroupStatsResponse]:
-        # 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._ListGroupStats(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'ErrorStatsServiceRestTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
deleted file mode 100644
index 96de16e3..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ReportErrorsServiceClient
-from .async_client import ReportErrorsServiceAsyncClient
-
-__all__ = (
-    'ReportErrorsServiceClient',
-    'ReportErrorsServiceAsyncClient',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
deleted file mode 100644
index eac248f7..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/async_client.py
+++ /dev/null
@@ -1,327 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 functools
-import re
-from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union
-
-from google.cloud.errorreporting_v1beta1 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 as retries
-from google.auth import credentials as ga_credentials   # type: ignore
-from google.oauth2 import service_account              # type: ignore
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-from google.cloud.errorreporting_v1beta1.types import report_errors_service
-from .transports.base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc_asyncio import ReportErrorsServiceGrpcAsyncIOTransport
-from .client import ReportErrorsServiceClient
-
-
-class ReportErrorsServiceAsyncClient:
-    """An API for reporting error events."""
-
-    _client: ReportErrorsServiceClient
-
-    DEFAULT_ENDPOINT = ReportErrorsServiceClient.DEFAULT_ENDPOINT
-    DEFAULT_MTLS_ENDPOINT = ReportErrorsServiceClient.DEFAULT_MTLS_ENDPOINT
-
-    common_billing_account_path = staticmethod(ReportErrorsServiceClient.common_billing_account_path)
-    parse_common_billing_account_path = staticmethod(ReportErrorsServiceClient.parse_common_billing_account_path)
-    common_folder_path = staticmethod(ReportErrorsServiceClient.common_folder_path)
-    parse_common_folder_path = staticmethod(ReportErrorsServiceClient.parse_common_folder_path)
-    common_organization_path = staticmethod(ReportErrorsServiceClient.common_organization_path)
-    parse_common_organization_path = staticmethod(ReportErrorsServiceClient.parse_common_organization_path)
-    common_project_path = staticmethod(ReportErrorsServiceClient.common_project_path)
-    parse_common_project_path = staticmethod(ReportErrorsServiceClient.parse_common_project_path)
-    common_location_path = staticmethod(ReportErrorsServiceClient.common_location_path)
-    parse_common_location_path = staticmethod(ReportErrorsServiceClient.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:
-            ReportErrorsServiceAsyncClient: The constructed client.
-        """
-        return ReportErrorsServiceClient.from_service_account_info.__func__(ReportErrorsServiceAsyncClient, 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:
-            ReportErrorsServiceAsyncClient: The constructed client.
-        """
-        return ReportErrorsServiceClient.from_service_account_file.__func__(ReportErrorsServiceAsyncClient, 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 ReportErrorsServiceClient.get_mtls_endpoint_and_cert_source(client_options)  # type: ignore
-
-    @property
-    def transport(self) -> ReportErrorsServiceTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ReportErrorsServiceTransport: The transport used by the client instance.
-        """
-        return self._client.transport
-
-    get_transport_class = functools.partial(type(ReportErrorsServiceClient).get_transport_class, type(ReportErrorsServiceClient))
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Union[str, ReportErrorsServiceTransport] = "grpc_asyncio",
-            client_options: Optional[ClientOptions] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the report errors service 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 (Union[str, ~.ReportErrorsServiceTransport]): The
-                transport to use. If set to None, a transport is chosen
-                automatically.
-            client_options (ClientOptions): Custom options for the client. It
-                won't take effect if a ``transport`` instance is provided.
-                (1) The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
-                environment variable can also be used to override the endpoint:
-                "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). However, the ``api_endpoint`` property takes
-                precedence if provided.
-                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide client certificate for mutual TLS 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.
-
-        Raises:
-            google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
-                creation failed for any reason.
-        """
-        self._client = ReportErrorsServiceClient(
-            credentials=credentials,
-            transport=transport,
-            client_options=client_options,
-            client_info=client_info,
-
-        )
-
-    async def report_error_event(self,
-            request: Optional[Union[report_errors_service.ReportErrorEventRequest, dict]] = None,
-            *,
-            project_name: Optional[str] = None,
-            event: Optional[report_errors_service.ReportedErrorEvent] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> report_errors_service.ReportErrorEventResponse:
-        r"""Report an individual error event and record the event to a log.
-
-        This endpoint accepts **either** an OAuth token, **or** an `API
-        key <https://support.google.com/cloud/answer/6158862>`__ for
-        authentication. To use an API key, append it to the URL as the
-        value of a ``key`` parameter. For example:
-
-        ``POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456``
-
-        **Note:** `Error Reporting </error-reporting>`__ is a global
-        service built on Cloud Logging and doesn't analyze logs stored
-        in regional log buckets or logs routed to other Google Cloud
-        projects.
-
-        .. 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 errorreporting_v1beta1
-
-            async def sample_report_error_event():
-                # Create a client
-                client = errorreporting_v1beta1.ReportErrorsServiceAsyncClient()
-
-                # Initialize request argument(s)
-                event = errorreporting_v1beta1.ReportedErrorEvent()
-                event.message = "message_value"
-
-                request = errorreporting_v1beta1.ReportErrorEventRequest(
-                    project_name="project_name_value",
-                    event=event,
-                )
-
-                # Make the request
-                response = await client.report_error_event(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Optional[Union[google.cloud.errorreporting_v1beta1.types.ReportErrorEventRequest, dict]]):
-                The request object. A request for reporting an individual
-                error event.
-            project_name (:class:`str`):
-                Required. The resource name of the Google Cloud Platform
-                project. Written as ``projects/{projectId}``, where
-                ``{projectId}`` is the `Google Cloud Platform project
-                ID <https://support.google.com/cloud/answer/6158840>`__.
-
-                Example: // ``projects/my-project-123``.
-
-                This corresponds to the ``project_name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            event (:class:`google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent`):
-                Required. The error event to be
-                reported.
-
-                This corresponds to the ``event`` 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.errorreporting_v1beta1.types.ReportErrorEventResponse:
-                Response for reporting an individual
-                error event. Data may be added to this
-                message in the future.
-
-        """
-        # 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([project_name, event])
-        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.")
-
-        request = report_errors_service.ReportErrorEventRequest(request)
-
-        # If we have keyword arguments corresponding to fields on the
-        # request, apply these.
-        if project_name is not None:
-            request.project_name = project_name
-        if event is not None:
-            request.event = event
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = gapic_v1.method_async.wrap_method(
-            self._client._transport.report_error_event,
-            default_timeout=None,
-            client_info=DEFAULT_CLIENT_INFO,
-        )
-
-        # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("project_name", request.project_name),
-            )),
-        )
-
-        # Send the request.
-        response = await rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    async def __aenter__(self) -> "ReportErrorsServiceAsyncClient":
-        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__ = (
-    "ReportErrorsServiceAsyncClient",
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
deleted file mode 100644
index eb1157dc..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/client.py
+++ /dev/null
@@ -1,522 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast
-
-from google.cloud.errorreporting_v1beta1 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]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-from google.cloud.errorreporting_v1beta1.types import report_errors_service
-from .transports.base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO
-from .transports.grpc import ReportErrorsServiceGrpcTransport
-from .transports.grpc_asyncio import ReportErrorsServiceGrpcAsyncIOTransport
-from .transports.rest import ReportErrorsServiceRestTransport
-
-
-class ReportErrorsServiceClientMeta(type):
-    """Metaclass for the ReportErrorsService 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[ReportErrorsServiceTransport]]
-    _transport_registry["grpc"] = ReportErrorsServiceGrpcTransport
-    _transport_registry["grpc_asyncio"] = ReportErrorsServiceGrpcAsyncIOTransport
-    _transport_registry["rest"] = ReportErrorsServiceRestTransport
-
-    def get_transport_class(cls,
-            label: Optional[str] = None,
-        ) -> Type[ReportErrorsServiceTransport]:
-        """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 ReportErrorsServiceClient(metaclass=ReportErrorsServiceClientMeta):
-    """An API for reporting error events."""
-
-    @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")
-
-    DEFAULT_ENDPOINT = "clouderrorreporting.googleapis.com"
-    DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__(  # type: ignore
-        DEFAULT_ENDPOINT
-    )
-
-    @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:
-            ReportErrorsServiceClient: 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:
-            ReportErrorsServiceClient: 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) -> ReportErrorsServiceTransport:
-        """Returns the transport used by the client instance.
-
-        Returns:
-            ReportErrorsServiceTransport: The transport used by the client
-                instance.
-        """
-        return self._transport
-
-    @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):
-        """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.
-        """
-        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
-
-    def __init__(self, *,
-            credentials: Optional[ga_credentials.Credentials] = None,
-            transport: Optional[Union[str, ReportErrorsServiceTransport]] = None,
-            client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            ) -> None:
-        """Instantiates the report errors service 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 (Union[str, ReportErrorsServiceTransport]): The
-                transport to use. 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. It won't take effect if a ``transport`` instance is provided.
-                (1) The ``api_endpoint`` property can be used to override the
-                default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
-                environment variable can also be used to override the endpoint:
-                "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). However, the ``api_endpoint`` property takes
-                precedence if provided.
-                (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
-                is "true", then the ``client_cert_source`` property can be used
-                to provide client certificate for mutual TLS 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.
-            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.
-        """
-        if isinstance(client_options, dict):
-            client_options = client_options_lib.from_dict(client_options)
-        if client_options is None:
-            client_options = client_options_lib.ClientOptions()
-        client_options = cast(client_options_lib.ClientOptions, client_options)
-
-        api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options)
-
-        api_key_value = getattr(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.
-        if isinstance(transport, ReportErrorsServiceTransport):
-            # transport is a ReportErrorsServiceTransport instance.
-            if credentials or client_options.credentials_file or api_key_value:
-                raise ValueError("When providing a transport instance, "
-                                 "provide its credentials directly.")
-            if client_options.scopes:
-                raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
-                )
-            self._transport = transport
-        else:
-            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 = type(self).get_transport_class(transport)
-            self._transport = Transport(
-                credentials=credentials,
-                credentials_file=client_options.credentials_file,
-                host=api_endpoint,
-                scopes=client_options.scopes,
-                client_cert_source_for_mtls=client_cert_source_func,
-                quota_project_id=client_options.quota_project_id,
-                client_info=client_info,
-                always_use_jwt_access=True,
-                api_audience=client_options.api_audience,
-            )
-
-    def report_error_event(self,
-            request: Optional[Union[report_errors_service.ReportErrorEventRequest, dict]] = None,
-            *,
-            project_name: Optional[str] = None,
-            event: Optional[report_errors_service.ReportedErrorEvent] = None,
-            retry: OptionalRetry = gapic_v1.method.DEFAULT,
-            timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-            metadata: Sequence[Tuple[str, str]] = (),
-            ) -> report_errors_service.ReportErrorEventResponse:
-        r"""Report an individual error event and record the event to a log.
-
-        This endpoint accepts **either** an OAuth token, **or** an `API
-        key <https://support.google.com/cloud/answer/6158862>`__ for
-        authentication. To use an API key, append it to the URL as the
-        value of a ``key`` parameter. For example:
-
-        ``POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456``
-
-        **Note:** `Error Reporting </error-reporting>`__ is a global
-        service built on Cloud Logging and doesn't analyze logs stored
-        in regional log buckets or logs routed to other Google Cloud
-        projects.
-
-        .. 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 errorreporting_v1beta1
-
-            def sample_report_error_event():
-                # Create a client
-                client = errorreporting_v1beta1.ReportErrorsServiceClient()
-
-                # Initialize request argument(s)
-                event = errorreporting_v1beta1.ReportedErrorEvent()
-                event.message = "message_value"
-
-                request = errorreporting_v1beta1.ReportErrorEventRequest(
-                    project_name="project_name_value",
-                    event=event,
-                )
-
-                # Make the request
-                response = client.report_error_event(request=request)
-
-                # Handle the response
-                print(response)
-
-        Args:
-            request (Union[google.cloud.errorreporting_v1beta1.types.ReportErrorEventRequest, dict]):
-                The request object. A request for reporting an individual
-                error event.
-            project_name (str):
-                Required. The resource name of the Google Cloud Platform
-                project. Written as ``projects/{projectId}``, where
-                ``{projectId}`` is the `Google Cloud Platform project
-                ID <https://support.google.com/cloud/answer/6158840>`__.
-
-                Example: // ``projects/my-project-123``.
-
-                This corresponds to the ``project_name`` field
-                on the ``request`` instance; if ``request`` is provided, this
-                should not be set.
-            event (google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent):
-                Required. The error event to be
-                reported.
-
-                This corresponds to the ``event`` 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.errorreporting_v1beta1.types.ReportErrorEventResponse:
-                Response for reporting an individual
-                error event. Data may be added to this
-                message in the future.
-
-        """
-        # 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([project_name, event])
-        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.')
-
-        # Minor optimization to avoid making a copy if the user passes
-        # in a report_errors_service.ReportErrorEventRequest.
-        # There's no risk of modifying the input as we've already verified
-        # there are no flattened fields.
-        if not isinstance(request, report_errors_service.ReportErrorEventRequest):
-            request = report_errors_service.ReportErrorEventRequest(request)
-            # If we have keyword arguments corresponding to fields on the
-            # request, apply these.
-            if project_name is not None:
-                request.project_name = project_name
-            if event is not None:
-                request.event = event
-
-        # Wrap the RPC method; this adds retry and timeout information,
-        # and friendly error handling.
-        rpc = self._transport._wrapped_methods[self._transport.report_error_event]
-
-         # Certain fields should be provided within the metadata header;
-        # add these here.
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ("project_name", request.project_name),
-            )),
-        )
-
-        # Send the request.
-        response = rpc(
-            request,
-            retry=retry,
-            timeout=timeout,
-            metadata=metadata,
-        )
-
-        # Done; return the response.
-        return response
-
-    def __enter__(self) -> "ReportErrorsServiceClient":
-        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()
-
-
-
-
-
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-__all__ = (
-    "ReportErrorsServiceClient",
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
deleted file mode 100644
index ec1a6fc1..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/__init__.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ReportErrorsServiceTransport
-from .grpc import ReportErrorsServiceGrpcTransport
-from .grpc_asyncio import ReportErrorsServiceGrpcAsyncIOTransport
-from .rest import ReportErrorsServiceRestTransport
-from .rest import ReportErrorsServiceRestInterceptor
-
-
-# Compile a registry of transports.
-_transport_registry = OrderedDict()  # type: Dict[str, Type[ReportErrorsServiceTransport]]
-_transport_registry['grpc'] = ReportErrorsServiceGrpcTransport
-_transport_registry['grpc_asyncio'] = ReportErrorsServiceGrpcAsyncIOTransport
-_transport_registry['rest'] = ReportErrorsServiceRestTransport
-
-__all__ = (
-    'ReportErrorsServiceTransport',
-    'ReportErrorsServiceGrpcTransport',
-    'ReportErrorsServiceGrpcAsyncIOTransport',
-    'ReportErrorsServiceRestTransport',
-    'ReportErrorsServiceRestInterceptor',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
deleted file mode 100644
index a24c38dc..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/base.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1 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.errorreporting_v1beta1.types import report_errors_service
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__)
-
-
-class ReportErrorsServiceTransport(abc.ABC):
-    """Abstract transport class for ReportErrorsService."""
-
-    AUTH_SCOPES = (
-        'https://www.googleapis.com/auth/cloud-platform',
-    )
-
-    DEFAULT_HOST: str = 'clouderrorreporting.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.
-            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 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:
-            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
-
-    def _prep_wrapped_messages(self, client_info):
-        # Precompute the wrapped methods.
-        self._wrapped_methods = {
-            self.report_error_event: gapic_v1.method.wrap_method(
-                self.report_error_event,
-                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 report_error_event(self) -> Callable[
-            [report_errors_service.ReportErrorEventRequest],
-            Union[
-                report_errors_service.ReportErrorEventResponse,
-                Awaitable[report_errors_service.ReportErrorEventResponse]
-            ]]:
-        raise NotImplementedError()
-
-    @property
-    def kind(self) -> str:
-        raise NotImplementedError()
-
-
-__all__ = (
-    'ReportErrorsServiceTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
deleted file mode 100644
index a18df43e..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc.py
+++ /dev/null
@@ -1,276 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1.types import report_errors_service
-from .base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO
-
-
-class ReportErrorsServiceGrpcTransport(ReportErrorsServiceTransport):
-    """gRPC backend transport for ReportErrorsService.
-
-    An API for reporting error events.
-
-    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 = 'clouderrorreporting.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[grpc.Channel] = None,
-            api_mtls_endpoint: Optional[str] = None,
-            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
-            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            quota_project_id: Optional[str] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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 ``channel`` 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 ``channel`` is provided.
-            scopes (Optional(Sequence[str])): A list of scopes. This argument is
-                ignored if ``channel`` is provided.
-            channel (Optional[grpc.Channel]): A ``Channel`` instance through
-                which to make calls.
-            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 ``channel`` 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 ``channel`` 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 channel:
-            # Ignore credentials if a channel was passed.
-            credentials = False
-            # 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:
-            self._grpc_channel = type(self).create_channel(
-                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 = 'clouderrorreporting.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 report_error_event(self) -> Callable[
-            [report_errors_service.ReportErrorEventRequest],
-            report_errors_service.ReportErrorEventResponse]:
-        r"""Return a callable for the report error event method over gRPC.
-
-        Report an individual error event and record the event to a log.
-
-        This endpoint accepts **either** an OAuth token, **or** an `API
-        key <https://support.google.com/cloud/answer/6158862>`__ for
-        authentication. To use an API key, append it to the URL as the
-        value of a ``key`` parameter. For example:
-
-        ``POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456``
-
-        **Note:** `Error Reporting </error-reporting>`__ is a global
-        service built on Cloud Logging and doesn't analyze logs stored
-        in regional log buckets or logs routed to other Google Cloud
-        projects.
-
-        Returns:
-            Callable[[~.ReportErrorEventRequest],
-                    ~.ReportErrorEventResponse]:
-                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 'report_error_event' not in self._stubs:
-            self._stubs['report_error_event'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ReportErrorsService/ReportErrorEvent',
-                request_serializer=report_errors_service.ReportErrorEventRequest.serialize,
-                response_deserializer=report_errors_service.ReportErrorEventResponse.deserialize,
-            )
-        return self._stubs['report_error_event']
-
-    def close(self):
-        self.grpc_channel.close()
-
-    @property
-    def kind(self) -> str:
-        return "grpc"
-
-
-__all__ = (
-    'ReportErrorsServiceGrpcTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
deleted file mode 100644
index 0533f915..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/grpc_asyncio.py
+++ /dev/null
@@ -1,275 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
-
-from google.api_core import gapic_v1
-from google.api_core import grpc_helpers_async
-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.errorreporting_v1beta1.types import report_errors_service
-from .base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO
-from .grpc import ReportErrorsServiceGrpcTransport
-
-
-class ReportErrorsServiceGrpcAsyncIOTransport(ReportErrorsServiceTransport):
-    """gRPC AsyncIO backend transport for ReportErrorsService.
-
-    An API for reporting error events.
-
-    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 = 'clouderrorreporting.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`.
-                This argument is ignored if ``channel`` 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`.
-            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 = 'clouderrorreporting.googleapis.com',
-            credentials: Optional[ga_credentials.Credentials] = None,
-            credentials_file: Optional[str] = None,
-            scopes: Optional[Sequence[str]] = None,
-            channel: Optional[aio.Channel] = None,
-            api_mtls_endpoint: Optional[str] = None,
-            client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
-            client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
-            quota_project_id: Optional[str] = None,
-            client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
-            always_use_jwt_access: Optional[bool] = False,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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 ``channel`` 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 ``channel`` 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[aio.Channel]): A ``Channel`` instance through
-                which to make calls.
-            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 ``channel`` 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 ``channel`` 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 channel:
-            # Ignore credentials if a channel was passed.
-            credentials = False
-            # 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:
-            self._grpc_channel = type(self).create_channel(
-                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)
-
-    @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 report_error_event(self) -> Callable[
-            [report_errors_service.ReportErrorEventRequest],
-            Awaitable[report_errors_service.ReportErrorEventResponse]]:
-        r"""Return a callable for the report error event method over gRPC.
-
-        Report an individual error event and record the event to a log.
-
-        This endpoint accepts **either** an OAuth token, **or** an `API
-        key <https://support.google.com/cloud/answer/6158862>`__ for
-        authentication. To use an API key, append it to the URL as the
-        value of a ``key`` parameter. For example:
-
-        ``POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456``
-
-        **Note:** `Error Reporting </error-reporting>`__ is a global
-        service built on Cloud Logging and doesn't analyze logs stored
-        in regional log buckets or logs routed to other Google Cloud
-        projects.
-
-        Returns:
-            Callable[[~.ReportErrorEventRequest],
-                    Awaitable[~.ReportErrorEventResponse]]:
-                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 'report_error_event' not in self._stubs:
-            self._stubs['report_error_event'] = self.grpc_channel.unary_unary(
-                '/google.devtools.clouderrorreporting.v1beta1.ReportErrorsService/ReportErrorEvent',
-                request_serializer=report_errors_service.ReportErrorEventRequest.serialize,
-                response_deserializer=report_errors_service.ReportErrorEventResponse.deserialize,
-            )
-        return self._stubs['report_error_event']
-
-    def close(self):
-        return self.grpc_channel.close()
-
-
-__all__ = (
-    'ReportErrorsServiceGrpcAsyncIOTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
deleted file mode 100644
index 2f16c8bd..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/services/report_errors_service/transports/rest.py
+++ /dev/null
@@ -1,301 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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
-import grpc  # type: ignore
-from google.auth.transport.grpc import SslCredentials  # 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 path_template
-from google.api_core import gapic_v1
-
-from google.protobuf import json_format
-from requests import __version__ as requests_version
-import dataclasses
-import re
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
-import warnings
-
-try:
-    OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
-except AttributeError:  # pragma: NO COVER
-    OptionalRetry = Union[retries.Retry, object]  # type: ignore
-
-
-from google.cloud.errorreporting_v1beta1.types import report_errors_service
-
-from .base import ReportErrorsServiceTransport, DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
-
-
-DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
-    gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
-    grpc_version=None,
-    rest_version=requests_version,
-)
-
-
-class ReportErrorsServiceRestInterceptor:
-    """Interceptor for ReportErrorsService.
-
-    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 ReportErrorsServiceRestTransport.
-
-    .. code-block:: python
-        class MyCustomReportErrorsServiceInterceptor(ReportErrorsServiceRestInterceptor):
-            def pre_report_error_event(self, request, metadata):
-                logging.log(f"Received request: {request}")
-                return request, metadata
-
-            def post_report_error_event(self, response):
-                logging.log(f"Received response: {response}")
-                return response
-
-        transport = ReportErrorsServiceRestTransport(interceptor=MyCustomReportErrorsServiceInterceptor())
-        client = ReportErrorsServiceClient(transport=transport)
-
-
-    """
-    def pre_report_error_event(self, request: report_errors_service.ReportErrorEventRequest, metadata: Sequence[Tuple[str, str]]) -> Tuple[report_errors_service.ReportErrorEventRequest, Sequence[Tuple[str, str]]]:
-        """Pre-rpc interceptor for report_error_event
-
-        Override in a subclass to manipulate the request or metadata
-        before they are sent to the ReportErrorsService server.
-        """
-        return request, metadata
-
-    def post_report_error_event(self, response: report_errors_service.ReportErrorEventResponse) -> report_errors_service.ReportErrorEventResponse:
-        """Post-rpc interceptor for report_error_event
-
-        Override in a subclass to manipulate the response
-        after it is returned by the ReportErrorsService server but before
-        it is returned to user code.
-        """
-        return response
-
-
-@dataclasses.dataclass
-class ReportErrorsServiceRestStub:
-    _session: AuthorizedSession
-    _host: str
-    _interceptor: ReportErrorsServiceRestInterceptor
-
-
-class ReportErrorsServiceRestTransport(ReportErrorsServiceTransport):
-    """REST backend transport for ReportErrorsService.
-
-    An API for reporting error events.
-
-    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 = 'clouderrorreporting.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[ReportErrorsServiceRestInterceptor] = None,
-            api_audience: Optional[str] = None,
-            ) -> None:
-        """Instantiate the transport.
-
-        Args:
-            host (Optional[str]):
-                 The hostname to connect to.
-            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
-        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
-        )
-        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 ReportErrorsServiceRestInterceptor()
-        self._prep_wrapped_messages(client_info)
-
-    class _ReportErrorEvent(ReportErrorsServiceRestStub):
-        def __hash__(self):
-            return hash("ReportErrorEvent")
-
-        __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}
-
-        def __call__(self,
-                request: report_errors_service.ReportErrorEventRequest, *,
-                retry: OptionalRetry=gapic_v1.method.DEFAULT,
-                timeout: Optional[float]=None,
-                metadata: Sequence[Tuple[str, str]]=(),
-                ) -> report_errors_service.ReportErrorEventResponse:
-            r"""Call the report error event method over HTTP.
-
-            Args:
-                request (~.report_errors_service.ReportErrorEventRequest):
-                    The request object. A request for reporting an individual
-                error event.
-                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:
-                ~.report_errors_service.ReportErrorEventResponse:
-                    Response for reporting an individual
-                error event. Data may be added to this
-                message in the future.
-
-            """
-
-            http_options: List[Dict[str, str]] = [{
-                'method': 'post',
-                'uri': '/v1beta1/{project_name=projects/*}/events:report',
-                'body': 'event',
-            },
-            ]
-            request, metadata = self._interceptor.pre_report_error_event(request, metadata)
-            pb_request = report_errors_service.ReportErrorEventRequest.pb(request)
-            transcoded_request = path_template.transcode(http_options, pb_request)
-
-            # Jsonify the request body
-
-            body = json_format.MessageToJson(
-                transcoded_request['body'],
-                including_default_value_fields=False,
-                use_integers_for_enums=True
-            )
-            uri = transcoded_request['uri']
-            method = transcoded_request['method']
-
-            # Jsonify the query params
-            query_params = json.loads(json_format.MessageToJson(
-                transcoded_request['query_params'],
-                including_default_value_fields=False,
-                use_integers_for_enums=True,
-            ))
-            query_params.update(self._get_unset_required_fields(query_params))
-
-            query_params["$alt"] = "json;enum-encoding=int"
-
-            # Send the request
-            headers = dict(metadata)
-            headers['Content-Type'] = 'application/json'
-            response = getattr(self._session, method)(
-                "{host}{uri}".format(host=self._host, uri=uri),
-                timeout=timeout,
-                headers=headers,
-                params=rest_helpers.flatten_query_params(query_params, strict=True),
-                data=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 = report_errors_service.ReportErrorEventResponse()
-            pb_resp = report_errors_service.ReportErrorEventResponse.pb(resp)
-
-            json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
-            resp = self._interceptor.post_report_error_event(resp)
-            return resp
-
-    @property
-    def report_error_event(self) -> Callable[
-            [report_errors_service.ReportErrorEventRequest],
-            report_errors_service.ReportErrorEventResponse]:
-        # 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._ReportErrorEvent(self._session, self._host, self._interceptor) # type: ignore
-
-    @property
-    def kind(self) -> str:
-        return "rest"
-
-    def close(self):
-        self._session.close()
-
-
-__all__=(
-    'ReportErrorsServiceRestTransport',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/__init__.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/__init__.py
deleted file mode 100644
index 3734d301..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/__init__.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 .common import (
-    ErrorContext,
-    ErrorEvent,
-    ErrorGroup,
-    HttpRequestContext,
-    ServiceContext,
-    SourceLocation,
-    TrackingIssue,
-    ResolutionStatus,
-)
-from .error_group_service import (
-    GetGroupRequest,
-    UpdateGroupRequest,
-)
-from .error_stats_service import (
-    DeleteEventsRequest,
-    DeleteEventsResponse,
-    ErrorGroupStats,
-    ListEventsRequest,
-    ListEventsResponse,
-    ListGroupStatsRequest,
-    ListGroupStatsResponse,
-    QueryTimeRange,
-    ServiceContextFilter,
-    TimedCount,
-    ErrorGroupOrder,
-    TimedCountAlignment,
-)
-from .report_errors_service import (
-    ReportedErrorEvent,
-    ReportErrorEventRequest,
-    ReportErrorEventResponse,
-)
-
-__all__ = (
-    'ErrorContext',
-    'ErrorEvent',
-    'ErrorGroup',
-    'HttpRequestContext',
-    'ServiceContext',
-    'SourceLocation',
-    'TrackingIssue',
-    'ResolutionStatus',
-    'GetGroupRequest',
-    'UpdateGroupRequest',
-    'DeleteEventsRequest',
-    'DeleteEventsResponse',
-    'ErrorGroupStats',
-    'ListEventsRequest',
-    'ListEventsResponse',
-    'ListGroupStatsRequest',
-    'ListGroupStatsResponse',
-    'QueryTimeRange',
-    'ServiceContextFilter',
-    'TimedCount',
-    'ErrorGroupOrder',
-    'TimedCountAlignment',
-    'ReportedErrorEvent',
-    'ReportErrorEventRequest',
-    'ReportErrorEventResponse',
-)
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/common.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/common.py
deleted file mode 100644
index 4bce97ba..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/common.py
+++ /dev/null
@@ -1,345 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.devtools.clouderrorreporting.v1beta1',
-    manifest={
-        'ResolutionStatus',
-        'ErrorGroup',
-        'TrackingIssue',
-        'ErrorEvent',
-        'ServiceContext',
-        'ErrorContext',
-        'HttpRequestContext',
-        'SourceLocation',
-    },
-)
-
-
-class ResolutionStatus(proto.Enum):
-    r"""Resolution status of an error group.
-
-    Values:
-        RESOLUTION_STATUS_UNSPECIFIED (0):
-            Status is unknown. When left unspecified in
-            requests, it is treated like OPEN.
-        OPEN (1):
-            The error group is not being addressed. This
-            is the default for new groups. It is also used
-            for errors re-occurring after marked RESOLVED.
-        ACKNOWLEDGED (2):
-            Error Group manually acknowledged, it can
-            have an issue link attached.
-        RESOLVED (3):
-            Error Group manually resolved, more events
-            for this group are not expected to occur.
-        MUTED (4):
-            The error group is muted and excluded by
-            default on group stats requests.
-    """
-    RESOLUTION_STATUS_UNSPECIFIED = 0
-    OPEN = 1
-    ACKNOWLEDGED = 2
-    RESOLVED = 3
-    MUTED = 4
-
-
-class ErrorGroup(proto.Message):
-    r"""Description of a group of similar error events.
-
-    Attributes:
-        name (str):
-            The group resource name.
-            Example:
-            <code>projects/my-project-123/groups/CNSgkpnppqKCUw</code>
-        group_id (str):
-            Group IDs are unique for a given project. If
-            the same kind of error occurs in different
-            service contexts, it will receive the same group
-            ID.
-        tracking_issues (MutableSequence[google.cloud.errorreporting_v1beta1.types.TrackingIssue]):
-            Associated tracking issues.
-        resolution_status (google.cloud.errorreporting_v1beta1.types.ResolutionStatus):
-            Error group's resolution status.
-            An unspecified resolution status will be
-            interpreted as OPEN
-    """
-
-    name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    group_id: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    tracking_issues: MutableSequence['TrackingIssue'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=3,
-        message='TrackingIssue',
-    )
-    resolution_status: 'ResolutionStatus' = proto.Field(
-        proto.ENUM,
-        number=5,
-        enum='ResolutionStatus',
-    )
-
-
-class TrackingIssue(proto.Message):
-    r"""Information related to tracking the progress on resolving the
-    error.
-
-    Attributes:
-        url (str):
-            A URL pointing to a related entry in an issue tracking
-            system. Example:
-            ``https://github.com/user/project/issues/4``
-    """
-
-    url: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class ErrorEvent(proto.Message):
-    r"""An error event which is returned by the Error Reporting
-    system.
-
-    Attributes:
-        event_time (google.protobuf.timestamp_pb2.Timestamp):
-            Time when the event occurred as provided in
-            the error report. If the report did not contain
-            a timestamp, the time the error was received by
-            the Error Reporting system is used.
-        service_context (google.cloud.errorreporting_v1beta1.types.ServiceContext):
-            The ``ServiceContext`` for which this error was reported.
-        message (str):
-            The stack trace that was reported or logged
-            by the service.
-        context (google.cloud.errorreporting_v1beta1.types.ErrorContext):
-            Data about the context in which the error
-            occurred.
-    """
-
-    event_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message=timestamp_pb2.Timestamp,
-    )
-    service_context: 'ServiceContext' = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        message='ServiceContext',
-    )
-    message: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    context: 'ErrorContext' = proto.Field(
-        proto.MESSAGE,
-        number=5,
-        message='ErrorContext',
-    )
-
-
-class ServiceContext(proto.Message):
-    r"""Describes a running service that sends errors.
-    Its version changes over time and multiple versions can run in
-    parallel.
-
-    Attributes:
-        service (str):
-            An identifier of the service, such as the name of the
-            executable, job, or Google App Engine service name. This
-            field is expected to have a low number of values that are
-            relatively stable over time, as opposed to ``version``,
-            which can be changed whenever new code is deployed.
-
-            Contains the service name for error reports extracted from
-            Google App Engine logs or ``default`` if the App Engine
-            default service is used.
-        version (str):
-            Represents the source code version that the
-            developer provided, which could represent a
-            version label or a Git SHA-1 hash, for example.
-            For App Engine standard environment, the version
-            is set to the version of the app.
-        resource_type (str):
-            Type of the MonitoredResource. List of
-            possible values:
-            https://cloud.google.com/monitoring/api/resources
-            Value is set automatically for incoming errors
-            and must not be set when reporting errors.
-    """
-
-    service: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    version: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    resource_type: str = proto.Field(
-        proto.STRING,
-        number=4,
-    )
-
-
-class ErrorContext(proto.Message):
-    r"""A description of the context in which an error occurred.
-    This data should be provided by the application when reporting
-    an error, unless the
-    error report has been generated automatically from Google App
-    Engine logs.
-
-    Attributes:
-        http_request (google.cloud.errorreporting_v1beta1.types.HttpRequestContext):
-            The HTTP request which was processed when the
-            error was triggered.
-        user (str):
-            The user who caused or was affected by the crash. This can
-            be a user ID, an email address, or an arbitrary token that
-            uniquely identifies the user. When sending an error report,
-            leave this field empty if the user was not logged in. In
-            this case the Error Reporting system will use other data,
-            such as remote IP address, to distinguish affected users.
-            See ``affected_users_count`` in ``ErrorGroupStats``.
-        report_location (google.cloud.errorreporting_v1beta1.types.SourceLocation):
-            The location in the source code where the
-            decision was made to report the error, usually
-            the place where it was logged. For a logged
-            exception this would be the source line where
-            the exception is logged, usually close to the
-            place where it was caught.
-    """
-
-    http_request: 'HttpRequestContext' = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message='HttpRequestContext',
-    )
-    user: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    report_location: 'SourceLocation' = proto.Field(
-        proto.MESSAGE,
-        number=3,
-        message='SourceLocation',
-    )
-
-
-class HttpRequestContext(proto.Message):
-    r"""HTTP request data that is related to a reported error.
-    This data should be provided by the application when reporting
-    an error, unless the
-    error report has been generated automatically from Google App
-    Engine logs.
-
-    Attributes:
-        method (str):
-            The type of HTTP request, such as ``GET``, ``POST``, etc.
-        url (str):
-            The URL of the request.
-        user_agent (str):
-            The user agent information that is provided
-            with the request.
-        referrer (str):
-            The referrer information that is provided
-            with the request.
-        response_status_code (int):
-            The HTTP response status code for the
-            request.
-        remote_ip (str):
-            The IP address from which the request
-            originated. This can be IPv4, IPv6, or a token
-            which is derived from the IP address, depending
-            on the data that has been provided in the error
-            report.
-    """
-
-    method: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    url: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    user_agent: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    referrer: str = proto.Field(
-        proto.STRING,
-        number=4,
-    )
-    response_status_code: int = proto.Field(
-        proto.INT32,
-        number=5,
-    )
-    remote_ip: str = proto.Field(
-        proto.STRING,
-        number=6,
-    )
-
-
-class SourceLocation(proto.Message):
-    r"""Indicates a location in the source code of the service for which
-    errors are reported. ``functionName`` must be provided by the
-    application when reporting an error, unless the error report
-    contains a ``message`` with a supported exception stack trace. All
-    fields are optional for the later case.
-
-    Attributes:
-        file_path (str):
-            The source code filename, which can include a
-            truncated relative path, or a full path from a
-            production machine.
-        line_number (int):
-            1-based. 0 indicates that the line number is
-            unknown.
-        function_name (str):
-            Human-readable name of a function or method. The value can
-            include optional context like the class or package name. For
-            example, ``my.package.MyClass.method`` in case of Java.
-    """
-
-    file_path: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    line_number: int = proto.Field(
-        proto.INT32,
-        number=2,
-    )
-    function_name: str = proto.Field(
-        proto.STRING,
-        number=4,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_group_service.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_group_service.py
deleted file mode 100644
index fc4c68ba..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_group_service.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1.types import common
-
-
-__protobuf__ = proto.module(
-    package='google.devtools.clouderrorreporting.v1beta1',
-    manifest={
-        'GetGroupRequest',
-        'UpdateGroupRequest',
-    },
-)
-
-
-class GetGroupRequest(proto.Message):
-    r"""A request to return an individual group.
-
-    Attributes:
-        group_name (str):
-            Required. The group resource name. Written as
-            ``projects/{projectID}/groups/{group_name}``. Call
-            ```groupStats.list`` <https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list>`__
-            to return a list of groups belonging to this project.
-
-            Example: ``projects/my-project-123/groups/my-group``
-    """
-
-    group_name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class UpdateGroupRequest(proto.Message):
-    r"""A request to replace the existing data for the given group.
-
-    Attributes:
-        group (google.cloud.errorreporting_v1beta1.types.ErrorGroup):
-            Required. The group which replaces the
-            resource on the server.
-    """
-
-    group: common.ErrorGroup = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message=common.ErrorGroup,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_stats_service.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
deleted file mode 100644
index 8c354c37..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/error_stats_service.py
+++ /dev/null
@@ -1,574 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1.types import common
-from google.protobuf import duration_pb2  # type: ignore
-from google.protobuf import timestamp_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.devtools.clouderrorreporting.v1beta1',
-    manifest={
-        'TimedCountAlignment',
-        'ErrorGroupOrder',
-        'ListGroupStatsRequest',
-        'ListGroupStatsResponse',
-        'ErrorGroupStats',
-        'TimedCount',
-        'ListEventsRequest',
-        'ListEventsResponse',
-        'QueryTimeRange',
-        'ServiceContextFilter',
-        'DeleteEventsRequest',
-        'DeleteEventsResponse',
-    },
-)
-
-
-class TimedCountAlignment(proto.Enum):
-    r"""Specifies how the time periods of error group counts are
-    aligned.
-
-    Values:
-        ERROR_COUNT_ALIGNMENT_UNSPECIFIED (0):
-            No alignment specified.
-        ALIGNMENT_EQUAL_ROUNDED (1):
-            The time periods shall be consecutive, have width equal to
-            the requested duration, and be aligned at the
-            ``alignment_time`` provided in the request. The
-            ``alignment_time`` does not have to be inside the query
-            period but even if it is outside, only time periods are
-            returned which overlap with the query period. A rounded
-            alignment will typically result in a different size of the
-            first or the last time period.
-        ALIGNMENT_EQUAL_AT_END (2):
-            The time periods shall be consecutive, have
-            width equal to the requested duration, and be
-            aligned at the end of the requested time period.
-            This can result in a different size of the first
-            time period.
-    """
-    ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0
-    ALIGNMENT_EQUAL_ROUNDED = 1
-    ALIGNMENT_EQUAL_AT_END = 2
-
-
-class ErrorGroupOrder(proto.Enum):
-    r"""A sorting order of error groups.
-
-    Values:
-        GROUP_ORDER_UNSPECIFIED (0):
-            No group order specified.
-        COUNT_DESC (1):
-            Total count of errors in the given time
-            window in descending order.
-        LAST_SEEN_DESC (2):
-            Timestamp when the group was last seen in the
-            given time window in descending order.
-        CREATED_DESC (3):
-            Timestamp when the group was created in
-            descending order.
-        AFFECTED_USERS_DESC (4):
-            Number of affected users in the given time
-            window in descending order.
-    """
-    GROUP_ORDER_UNSPECIFIED = 0
-    COUNT_DESC = 1
-    LAST_SEEN_DESC = 2
-    CREATED_DESC = 3
-    AFFECTED_USERS_DESC = 4
-
-
-class ListGroupStatsRequest(proto.Message):
-    r"""Specifies a set of ``ErrorGroupStats`` to return.
-
-    Attributes:
-        project_name (str):
-            Required. The resource name of the Google Cloud Platform
-            project. Written as ``projects/{projectID}`` or
-            ``projects/{projectNumber}``, where ``{projectID}`` and
-            ``{projectNumber}`` can be found in the `Google Cloud
-            Console <https://support.google.com/cloud/answer/6158840>`__.
-
-            Examples: ``projects/my-project-123``, ``projects/5551234``.
-        group_id (MutableSequence[str]):
-            Optional. List all
-            <code>ErrorGroupStats</code> with these IDs.
-        service_filter (google.cloud.errorreporting_v1beta1.types.ServiceContextFilter):
-            Optional. List only
-            <code>ErrorGroupStats</code> which belong to a
-            service context that matches the filter. Data
-            for all service contexts is returned if this
-            field is not specified.
-        time_range (google.cloud.errorreporting_v1beta1.types.QueryTimeRange):
-            Optional. List data for the given time range. If not set, a
-            default time range is used. The field time_range_begin in
-            the response will specify the beginning of this time range.
-            Only ErrorGroupStats with a non-zero count in the given time
-            range are returned, unless the request contains an explicit
-            group_id list. If a group_id list is given, also
-            ErrorGroupStats with zero occurrences are returned.
-        timed_count_duration (google.protobuf.duration_pb2.Duration):
-            Optional. The preferred duration for a single returned
-            ``TimedCount``. If not set, no timed counts are returned.
-        alignment (google.cloud.errorreporting_v1beta1.types.TimedCountAlignment):
-            Optional. The alignment of the timed counts to be returned.
-            Default is ``ALIGNMENT_EQUAL_AT_END``.
-        alignment_time (google.protobuf.timestamp_pb2.Timestamp):
-            Optional. Time where the timed counts shall
-            be aligned if rounded alignment is chosen.
-            Default is 00:00 UTC.
-        order (google.cloud.errorreporting_v1beta1.types.ErrorGroupOrder):
-            Optional. The sort order in which the results are returned.
-            Default is ``COUNT_DESC``.
-        page_size (int):
-            Optional. The maximum number of results to
-            return per response. Default is 20.
-        page_token (str):
-            Optional. A ``next_page_token`` provided by a previous
-            response. To view additional results, pass this token along
-            with the identical query parameters as the first request.
-    """
-
-    project_name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    group_id: MutableSequence[str] = proto.RepeatedField(
-        proto.STRING,
-        number=2,
-    )
-    service_filter: 'ServiceContextFilter' = proto.Field(
-        proto.MESSAGE,
-        number=3,
-        message='ServiceContextFilter',
-    )
-    time_range: 'QueryTimeRange' = proto.Field(
-        proto.MESSAGE,
-        number=5,
-        message='QueryTimeRange',
-    )
-    timed_count_duration: duration_pb2.Duration = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        message=duration_pb2.Duration,
-    )
-    alignment: 'TimedCountAlignment' = proto.Field(
-        proto.ENUM,
-        number=7,
-        enum='TimedCountAlignment',
-    )
-    alignment_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=8,
-        message=timestamp_pb2.Timestamp,
-    )
-    order: 'ErrorGroupOrder' = proto.Field(
-        proto.ENUM,
-        number=9,
-        enum='ErrorGroupOrder',
-    )
-    page_size: int = proto.Field(
-        proto.INT32,
-        number=11,
-    )
-    page_token: str = proto.Field(
-        proto.STRING,
-        number=12,
-    )
-
-
-class ListGroupStatsResponse(proto.Message):
-    r"""Contains a set of requested error group stats.
-
-    Attributes:
-        error_group_stats (MutableSequence[google.cloud.errorreporting_v1beta1.types.ErrorGroupStats]):
-            The error group stats which match the given
-            request.
-        next_page_token (str):
-            If non-empty, more results are available.
-            Pass this token, along with the same query
-            parameters as the first request, to view the
-            next page of results.
-        time_range_begin (google.protobuf.timestamp_pb2.Timestamp):
-            The timestamp specifies the start time to
-            which the request was restricted. The start time
-            is set based on the requested time range. It may
-            be adjusted to a later time if a project has
-            exceeded the storage quota and older data has
-            been deleted.
-    """
-
-    @property
-    def raw_page(self):
-        return self
-
-    error_group_stats: MutableSequence['ErrorGroupStats'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=1,
-        message='ErrorGroupStats',
-    )
-    next_page_token: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    time_range_begin: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        message=timestamp_pb2.Timestamp,
-    )
-
-
-class ErrorGroupStats(proto.Message):
-    r"""Data extracted for a specific group based on certain filter
-    criteria, such as a given time period and/or service filter.
-
-    Attributes:
-        group (google.cloud.errorreporting_v1beta1.types.ErrorGroup):
-            Group data that is independent of the filter
-            criteria.
-        count (int):
-            Approximate total number of events in the
-            given group that match the filter criteria.
-        affected_users_count (int):
-            Approximate number of affected users in the given group that
-            match the filter criteria. Users are distinguished by data
-            in the ``ErrorContext`` of the individual error events, such
-            as their login name or their remote IP address in case of
-            HTTP requests. The number of affected users can be zero even
-            if the number of errors is non-zero if no data was provided
-            from which the affected user could be deduced. Users are
-            counted based on data in the request context that was
-            provided in the error report. If more users are implicitly
-            affected, such as due to a crash of the whole service, this
-            is not reflected here.
-        timed_counts (MutableSequence[google.cloud.errorreporting_v1beta1.types.TimedCount]):
-            Approximate number of occurrences over time.
-            Timed counts returned by ListGroups are
-            guaranteed to be:
-            - Inside the requested time interval
-            - Non-overlapping, and
-            - Ordered by ascending time.
-        first_seen_time (google.protobuf.timestamp_pb2.Timestamp):
-            Approximate first occurrence that was ever seen for this
-            group and which matches the given filter criteria, ignoring
-            the time_range that was specified in the request.
-        last_seen_time (google.protobuf.timestamp_pb2.Timestamp):
-            Approximate last occurrence that was ever seen for this
-            group and which matches the given filter criteria, ignoring
-            the time_range that was specified in the request.
-        affected_services (MutableSequence[google.cloud.errorreporting_v1beta1.types.ServiceContext]):
-            Service contexts with a non-zero error count for the given
-            filter criteria. This list can be truncated if multiple
-            services are affected. Refer to ``num_affected_services``
-            for the total count.
-        num_affected_services (int):
-            The total number of services with a non-zero
-            error count for the given filter criteria.
-        representative (google.cloud.errorreporting_v1beta1.types.ErrorEvent):
-            An arbitrary event that is chosen as
-            representative for the whole group. The
-            representative event is intended to be used as a
-            quick preview for the whole group. Events in the
-            group are usually sufficiently similar to each
-            other such that showing an arbitrary
-            representative provides insight into the
-            characteristics of the group as a whole.
-    """
-
-    group: common.ErrorGroup = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message=common.ErrorGroup,
-    )
-    count: int = proto.Field(
-        proto.INT64,
-        number=2,
-    )
-    affected_users_count: int = proto.Field(
-        proto.INT64,
-        number=3,
-    )
-    timed_counts: MutableSequence['TimedCount'] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=4,
-        message='TimedCount',
-    )
-    first_seen_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=5,
-        message=timestamp_pb2.Timestamp,
-    )
-    last_seen_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=6,
-        message=timestamp_pb2.Timestamp,
-    )
-    affected_services: MutableSequence[common.ServiceContext] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=7,
-        message=common.ServiceContext,
-    )
-    num_affected_services: int = proto.Field(
-        proto.INT32,
-        number=8,
-    )
-    representative: common.ErrorEvent = proto.Field(
-        proto.MESSAGE,
-        number=9,
-        message=common.ErrorEvent,
-    )
-
-
-class TimedCount(proto.Message):
-    r"""The number of errors in a given time period.
-    All numbers are approximate since the error events are sampled
-    before counting them.
-
-    Attributes:
-        count (int):
-            Approximate number of occurrences in the
-            given time period.
-        start_time (google.protobuf.timestamp_pb2.Timestamp):
-            Start of the time period to which ``count`` refers
-            (included).
-        end_time (google.protobuf.timestamp_pb2.Timestamp):
-            End of the time period to which ``count`` refers (excluded).
-    """
-
-    count: int = proto.Field(
-        proto.INT64,
-        number=1,
-    )
-    start_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        message=timestamp_pb2.Timestamp,
-    )
-    end_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=3,
-        message=timestamp_pb2.Timestamp,
-    )
-
-
-class ListEventsRequest(proto.Message):
-    r"""Specifies a set of error events to return.
-
-    Attributes:
-        project_name (str):
-            Required. The resource name of the Google Cloud Platform
-            project. Written as ``projects/{projectID}``, where
-            ``{projectID}`` is the `Google Cloud Platform project
-            ID <https://support.google.com/cloud/answer/6158840>`__.
-
-            Example: ``projects/my-project-123``.
-        group_id (str):
-            Required. The group for which events shall be
-            returned.
-        service_filter (google.cloud.errorreporting_v1beta1.types.ServiceContextFilter):
-            Optional. List only ErrorGroups which belong
-            to a service context that matches the filter.
-            Data for all service contexts is returned if
-            this field is not specified.
-        time_range (google.cloud.errorreporting_v1beta1.types.QueryTimeRange):
-            Optional. List only data for the given time range. If not
-            set a default time range is used. The field time_range_begin
-            in the response will specify the beginning of this time
-            range.
-        page_size (int):
-            Optional. The maximum number of results to
-            return per response.
-        page_token (str):
-            Optional. A ``next_page_token`` provided by a previous
-            response.
-    """
-
-    project_name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    group_id: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    service_filter: 'ServiceContextFilter' = proto.Field(
-        proto.MESSAGE,
-        number=3,
-        message='ServiceContextFilter',
-    )
-    time_range: 'QueryTimeRange' = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        message='QueryTimeRange',
-    )
-    page_size: int = proto.Field(
-        proto.INT32,
-        number=6,
-    )
-    page_token: str = proto.Field(
-        proto.STRING,
-        number=7,
-    )
-
-
-class ListEventsResponse(proto.Message):
-    r"""Contains a set of requested error events.
-
-    Attributes:
-        error_events (MutableSequence[google.cloud.errorreporting_v1beta1.types.ErrorEvent]):
-            The error events which match the given
-            request.
-        next_page_token (str):
-            If non-empty, more results are available.
-            Pass this token, along with the same query
-            parameters as the first request, to view the
-            next page of results.
-        time_range_begin (google.protobuf.timestamp_pb2.Timestamp):
-            The timestamp specifies the start time to
-            which the request was restricted.
-    """
-
-    @property
-    def raw_page(self):
-        return self
-
-    error_events: MutableSequence[common.ErrorEvent] = proto.RepeatedField(
-        proto.MESSAGE,
-        number=1,
-        message=common.ErrorEvent,
-    )
-    next_page_token: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    time_range_begin: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        message=timestamp_pb2.Timestamp,
-    )
-
-
-class QueryTimeRange(proto.Message):
-    r"""Requests might be rejected or the resulting timed count
-    durations might be adjusted for lower durations.
-
-    Attributes:
-        period (google.cloud.errorreporting_v1beta1.types.QueryTimeRange.Period):
-            Restricts the query to the specified time
-            range.
-    """
-    class Period(proto.Enum):
-        r"""The supported time ranges.
-
-        Values:
-            PERIOD_UNSPECIFIED (0):
-                Do not use.
-            PERIOD_1_HOUR (1):
-                Retrieve data for the last hour.
-                Recommended minimum timed count duration: 1 min.
-            PERIOD_6_HOURS (2):
-                Retrieve data for the last 6 hours.
-                Recommended minimum timed count duration: 10
-                min.
-            PERIOD_1_DAY (3):
-                Retrieve data for the last day.
-                Recommended minimum timed count duration: 1
-                hour.
-            PERIOD_1_WEEK (4):
-                Retrieve data for the last week.
-                Recommended minimum timed count duration: 6
-                hours.
-            PERIOD_30_DAYS (5):
-                Retrieve data for the last 30 days.
-                Recommended minimum timed count duration: 1 day.
-        """
-        PERIOD_UNSPECIFIED = 0
-        PERIOD_1_HOUR = 1
-        PERIOD_6_HOURS = 2
-        PERIOD_1_DAY = 3
-        PERIOD_1_WEEK = 4
-        PERIOD_30_DAYS = 5
-
-    period: Period = proto.Field(
-        proto.ENUM,
-        number=1,
-        enum=Period,
-    )
-
-
-class ServiceContextFilter(proto.Message):
-    r"""Specifies criteria for filtering a subset of service contexts. The
-    fields in the filter correspond to the fields in ``ServiceContext``.
-    Only exact, case-sensitive matches are supported. If a field is
-    unset or empty, it matches arbitrary values.
-
-    Attributes:
-        service (str):
-            Optional. The exact value to match against
-            ```ServiceContext.service`` </error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service>`__.
-        version (str):
-            Optional. The exact value to match against
-            ```ServiceContext.version`` </error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version>`__.
-        resource_type (str):
-            Optional. The exact value to match against
-            ```ServiceContext.resource_type`` </error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type>`__.
-    """
-
-    service: str = proto.Field(
-        proto.STRING,
-        number=2,
-    )
-    version: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    resource_type: str = proto.Field(
-        proto.STRING,
-        number=4,
-    )
-
-
-class DeleteEventsRequest(proto.Message):
-    r"""Deletes all events in the project.
-
-    Attributes:
-        project_name (str):
-            Required. The resource name of the Google Cloud Platform
-            project. Written as ``projects/{projectID}``, where
-            ``{projectID}`` is the `Google Cloud Platform project
-            ID <https://support.google.com/cloud/answer/6158840>`__.
-
-            Example: ``projects/my-project-123``.
-    """
-
-    project_name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-
-
-class DeleteEventsResponse(proto.Message):
-    r"""Response message for deleting error events.
-    """
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/report_errors_service.py b/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
deleted file mode 100644
index 0bacd45a..00000000
--- a/owl-bot-staging/v1beta1/google/cloud/errorreporting_v1beta1/types/report_errors_service.py
+++ /dev/null
@@ -1,134 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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.errorreporting_v1beta1.types import common
-from google.protobuf import timestamp_pb2  # type: ignore
-
-
-__protobuf__ = proto.module(
-    package='google.devtools.clouderrorreporting.v1beta1',
-    manifest={
-        'ReportErrorEventRequest',
-        'ReportErrorEventResponse',
-        'ReportedErrorEvent',
-    },
-)
-
-
-class ReportErrorEventRequest(proto.Message):
-    r"""A request for reporting an individual error event.
-
-    Attributes:
-        project_name (str):
-            Required. The resource name of the Google Cloud Platform
-            project. Written as ``projects/{projectId}``, where
-            ``{projectId}`` is the `Google Cloud Platform project
-            ID <https://support.google.com/cloud/answer/6158840>`__.
-
-            Example: // ``projects/my-project-123``.
-        event (google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent):
-            Required. The error event to be reported.
-    """
-
-    project_name: str = proto.Field(
-        proto.STRING,
-        number=1,
-    )
-    event: 'ReportedErrorEvent' = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        message='ReportedErrorEvent',
-    )
-
-
-class ReportErrorEventResponse(proto.Message):
-    r"""Response for reporting an individual error event.
-    Data may be added to this message in the future.
-
-    """
-
-
-class ReportedErrorEvent(proto.Message):
-    r"""An error event which is reported to the Error Reporting
-    system.
-
-    Attributes:
-        event_time (google.protobuf.timestamp_pb2.Timestamp):
-            Optional. Time when the event occurred.
-            If not provided, the time when the event was
-            received by the Error Reporting system will be
-            used.
-        service_context (google.cloud.errorreporting_v1beta1.types.ServiceContext):
-            Required. The service context in which this
-            error has occurred.
-        message (str):
-            Required. The error message. If no
-            ``context.reportLocation`` is provided, the message must
-            contain a header (typically consisting of the exception type
-            name and an error message) and an exception stack trace in
-            one of the supported programming languages and formats.
-            Supported languages are Java, Python, JavaScript, Ruby, C#,
-            PHP, and Go. Supported stack trace formats are:
-
-            -  **Java**: Must be the return value of
-               ```Throwable.printStackTrace()`` <https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29>`__.
-            -  **Python**: Must be the return value of
-               ```traceback.format_exc()`` <https://docs.python.org/2/library/traceback.html#traceback.format_exc>`__.
-            -  **JavaScript**: Must be the value of
-               ```error.stack`` <https://github.com/v8/v8/wiki/Stack-Trace-API>`__
-               as returned by V8.
-            -  **Ruby**: Must contain frames returned by
-               ```Exception.backtrace`` <https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace>`__.
-            -  **C#**: Must be the return value of
-               ```Exception.ToString()`` <https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx>`__.
-            -  **PHP**: Must start with
-               ``PHP (Notice|Parse error|Fatal error|Warning)`` and
-               contain the result of
-               ```(string)$exception`` <http://php.net/manual/en/exception.tostring.php>`__.
-            -  **Go**: Must be the return value of
-               ```runtime.Stack()`` <https://golang.org/pkg/runtime/debug/#Stack>`__.
-        context (google.cloud.errorreporting_v1beta1.types.ErrorContext):
-            Optional. A description of the context in
-            which the error occurred.
-    """
-
-    event_time: timestamp_pb2.Timestamp = proto.Field(
-        proto.MESSAGE,
-        number=1,
-        message=timestamp_pb2.Timestamp,
-    )
-    service_context: common.ServiceContext = proto.Field(
-        proto.MESSAGE,
-        number=2,
-        message=common.ServiceContext,
-    )
-    message: str = proto.Field(
-        proto.STRING,
-        number=3,
-    )
-    context: common.ErrorContext = proto.Field(
-        proto.MESSAGE,
-        number=4,
-        message=common.ErrorContext,
-    )
-
-
-__all__ = tuple(sorted(__protobuf__.manifest))
diff --git a/owl-bot-staging/v1beta1/mypy.ini b/owl-bot-staging/v1beta1/mypy.ini
deleted file mode 100644
index 574c5aed..00000000
--- a/owl-bot-staging/v1beta1/mypy.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[mypy]
-python_version = 3.7
-namespace_packages = True
diff --git a/owl-bot-staging/v1beta1/noxfile.py b/owl-bot-staging/v1beta1/noxfile.py
deleted file mode 100644
index 359a1f2e..00000000
--- a/owl-bot-staging/v1beta1/noxfile.py
+++ /dev/null
@@ -1,184 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 shutil
-import subprocess
-import sys
-
-
-import nox  # type: ignore
-
-ALL_PYTHON = [
-    "3.7",
-    "3.8",
-    "3.9",
-    "3.10",
-    "3.11",
-]
-
-CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()
-
-LOWER_BOUND_CONSTRAINTS_FILE = CURRENT_DIRECTORY / "constraints.txt"
-PACKAGE_NAME = subprocess.check_output([sys.executable, "setup.py", "--name"], encoding="utf-8")
-
-BLACK_VERSION = "black==22.3.0"
-BLACK_PATHS = ["docs", "google", "tests", "samples", "noxfile.py", "setup.py"]
-DEFAULT_PYTHON_VERSION = "3.11"
-
-nox.sessions = [
-    "unit",
-    "cover",
-    "mypy",
-    "check_lower_bounds"
-    # exclude update_lower_bounds from default
-    "docs",
-    "blacken",
-    "lint",
-    "lint_setup_py",
-]
-
-@nox.session(python=ALL_PYTHON)
-def unit(session):
-    """Run the unit test suite."""
-
-    session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"')
-    session.install('-e', '.')
-
-    session.run(
-        'py.test',
-        '--quiet',
-        '--cov=google/cloud/errorreporting_v1beta1/',
-        '--cov=tests/',
-        '--cov-config=.coveragerc',
-        '--cov-report=term',
-        '--cov-report=html',
-        os.path.join('tests', 'unit', ''.join(session.posargs))
-    )
-
-
-@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',
-        '--explicit-package-bases',
-        '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==4.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,
-    )
-
-
-@nox.session(python=DEFAULT_PYTHON_VERSION)
-def lint_setup_py(session):
-    """Verify that setup.py is valid (including RST check)."""
-    session.install("docutils", "pygments")
-    session.run("python", "setup.py", "check", "--restructuredtext", "--strict")
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
deleted file mode 100644
index 702f5cda..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 GetGroup
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_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 errorreporting_v1beta1
-
-
-async def sample_get_group():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorGroupServiceAsyncClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.GetGroupRequest(
-        group_name="group_name_value",
-    )
-
-    # Make the request
-    response = await client.get_group(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
deleted file mode 100644
index 074978d9..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 GetGroup
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_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 errorreporting_v1beta1
-
-
-def sample_get_group():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorGroupServiceClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.GetGroupRequest(
-        group_name="group_name_value",
-    )
-
-    # Make the request
-    response = client.get_group(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
deleted file mode 100644
index 8b345298..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 UpdateGroup
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_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 errorreporting_v1beta1
-
-
-async def sample_update_group():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorGroupServiceAsyncClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.UpdateGroupRequest(
-    )
-
-    # Make the request
-    response = await client.update_group(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
deleted file mode 100644
index 7c38b173..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 UpdateGroup
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_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 errorreporting_v1beta1
-
-
-def sample_update_group():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorGroupServiceClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.UpdateGroupRequest(
-    )
-
-    # Make the request
-    response = client.update_group(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
deleted file mode 100644
index a1cd90bf..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 DeleteEvents
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_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 errorreporting_v1beta1
-
-
-async def sample_delete_events():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.DeleteEventsRequest(
-        project_name="project_name_value",
-    )
-
-    # Make the request
-    response = await client.delete_events(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
deleted file mode 100644
index f8c08c1b..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 DeleteEvents
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_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 errorreporting_v1beta1
-
-
-def sample_delete_events():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorStatsServiceClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.DeleteEventsRequest(
-        project_name="project_name_value",
-    )
-
-    # Make the request
-    response = client.delete_events(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
deleted file mode 100644
index 1ec25ba7..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ListEvents
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_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 errorreporting_v1beta1
-
-
-async def sample_list_events():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.ListEventsRequest(
-        project_name="project_name_value",
-        group_id="group_id_value",
-    )
-
-    # Make the request
-    page_result = client.list_events(request=request)
-
-    # Handle the response
-    async for response in page_result:
-        print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
deleted file mode 100644
index 81c7cc4c..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ListEvents
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_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 errorreporting_v1beta1
-
-
-def sample_list_events():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorStatsServiceClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.ListEventsRequest(
-        project_name="project_name_value",
-        group_id="group_id_value",
-    )
-
-    # Make the request
-    page_result = client.list_events(request=request)
-
-    # Handle the response
-    for response in page_result:
-        print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
deleted file mode 100644
index 60e47686..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ListGroupStats
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_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 errorreporting_v1beta1
-
-
-async def sample_list_group_stats():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorStatsServiceAsyncClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.ListGroupStatsRequest(
-        project_name="project_name_value",
-    )
-
-    # Make the request
-    page_result = client.list_group_stats(request=request)
-
-    # Handle the response
-    async for response in page_result:
-        print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
deleted file mode 100644
index 16d09dc4..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ListGroupStats
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_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 errorreporting_v1beta1
-
-
-def sample_list_group_stats():
-    # Create a client
-    client = errorreporting_v1beta1.ErrorStatsServiceClient()
-
-    # Initialize request argument(s)
-    request = errorreporting_v1beta1.ListGroupStatsRequest(
-        project_name="project_name_value",
-    )
-
-    # Make the request
-    page_result = client.list_group_stats(request=request)
-
-    # Handle the response
-    for response in page_result:
-        print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
deleted file mode 100644
index ba590771..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ReportErrorEvent
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_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 errorreporting_v1beta1
-
-
-async def sample_report_error_event():
-    # Create a client
-    client = errorreporting_v1beta1.ReportErrorsServiceAsyncClient()
-
-    # Initialize request argument(s)
-    event = errorreporting_v1beta1.ReportedErrorEvent()
-    event.message = "message_value"
-
-    request = errorreporting_v1beta1.ReportErrorEventRequest(
-        project_name="project_name_value",
-        event=event,
-    )
-
-    # Make the request
-    response = await client.report_error_event(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_async]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py b/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
deleted file mode 100644
index c1fb7124..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 ReportErrorEvent
-# 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-error-reporting
-
-
-# [START clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_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 errorreporting_v1beta1
-
-
-def sample_report_error_event():
-    # Create a client
-    client = errorreporting_v1beta1.ReportErrorsServiceClient()
-
-    # Initialize request argument(s)
-    event = errorreporting_v1beta1.ReportedErrorEvent()
-    event.message = "message_value"
-
-    request = errorreporting_v1beta1.ReportErrorEventRequest(
-        project_name="project_name_value",
-        event=event,
-    )
-
-    # Make the request
-    response = client.report_error_event(request=request)
-
-    # Handle the response
-    print(response)
-
-# [END clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_sync]
diff --git a/owl-bot-staging/v1beta1/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json b/owl-bot-staging/v1beta1/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
deleted file mode 100644
index fedd655c..00000000
--- a/owl-bot-staging/v1beta1/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
+++ /dev/null
@@ -1,1005 +0,0 @@
-{
-  "clientLibrary": {
-    "apis": [
-      {
-        "id": "google.devtools.clouderrorreporting.v1beta1",
-        "version": "v1beta1"
-      }
-    ],
-    "language": "PYTHON",
-    "name": "google-cloud-error-reporting",
-    "version": "0.1.0"
-  },
-  "snippets": [
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceAsyncClient",
-          "shortName": "ErrorGroupServiceAsyncClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceAsyncClient.get_group",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.GetGroup",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService",
-            "shortName": "ErrorGroupService"
-          },
-          "shortName": "GetGroup"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.GetGroupRequest"
-          },
-          {
-            "name": "group_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.errorreporting_v1beta1.types.ErrorGroup",
-        "shortName": "get_group"
-      },
-      "description": "Sample for GetGroup",
-      "file": "clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_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": "clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceClient",
-          "shortName": "ErrorGroupServiceClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceClient.get_group",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.GetGroup",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService",
-            "shortName": "ErrorGroupService"
-          },
-          "shortName": "GetGroup"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.GetGroupRequest"
-          },
-          {
-            "name": "group_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.errorreporting_v1beta1.types.ErrorGroup",
-        "shortName": "get_group"
-      },
-      "description": "Sample for GetGroup",
-      "file": "clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_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": "clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceAsyncClient",
-          "shortName": "ErrorGroupServiceAsyncClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceAsyncClient.update_group",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.UpdateGroup",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService",
-            "shortName": "ErrorGroupService"
-          },
-          "shortName": "UpdateGroup"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.UpdateGroupRequest"
-          },
-          {
-            "name": "group",
-            "type": "google.cloud.errorreporting_v1beta1.types.ErrorGroup"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.errorreporting_v1beta1.types.ErrorGroup",
-        "shortName": "update_group"
-      },
-      "description": "Sample for UpdateGroup",
-      "file": "clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_async",
-      "segments": [
-        {
-          "end": 50,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 50,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 44,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 47,
-          "start": 45,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 51,
-          "start": 48,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceClient",
-          "shortName": "ErrorGroupServiceClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorGroupServiceClient.update_group",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.UpdateGroup",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService",
-            "shortName": "ErrorGroupService"
-          },
-          "shortName": "UpdateGroup"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.UpdateGroupRequest"
-          },
-          {
-            "name": "group",
-            "type": "google.cloud.errorreporting_v1beta1.types.ErrorGroup"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.errorreporting_v1beta1.types.ErrorGroup",
-        "shortName": "update_group"
-      },
-      "description": "Sample for UpdateGroup",
-      "file": "clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_sync",
-      "segments": [
-        {
-          "end": 50,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 50,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 44,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 47,
-          "start": 45,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 51,
-          "start": 48,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient",
-          "shortName": "ErrorStatsServiceAsyncClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient.delete_events",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.DeleteEvents",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
-            "shortName": "ErrorStatsService"
-          },
-          "shortName": "DeleteEvents"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.DeleteEventsRequest"
-          },
-          {
-            "name": "project_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.errorreporting_v1beta1.types.DeleteEventsResponse",
-        "shortName": "delete_events"
-      },
-      "description": "Sample for DeleteEvents",
-      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_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": "clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient",
-          "shortName": "ErrorStatsServiceClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient.delete_events",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.DeleteEvents",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
-            "shortName": "ErrorStatsService"
-          },
-          "shortName": "DeleteEvents"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.DeleteEventsRequest"
-          },
-          {
-            "name": "project_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.errorreporting_v1beta1.types.DeleteEventsResponse",
-        "shortName": "delete_events"
-      },
-      "description": "Sample for DeleteEvents",
-      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_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": "clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient",
-          "shortName": "ErrorStatsServiceAsyncClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient.list_events",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListEvents",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
-            "shortName": "ErrorStatsService"
-          },
-          "shortName": "ListEvents"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.ListEventsRequest"
-          },
-          {
-            "name": "project_name",
-            "type": "str"
-          },
-          {
-            "name": "group_id",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListEventsAsyncPager",
-        "shortName": "list_events"
-      },
-      "description": "Sample for ListEvents",
-      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_async",
-      "segments": [
-        {
-          "end": 53,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 53,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 54,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient",
-          "shortName": "ErrorStatsServiceClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient.list_events",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListEvents",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
-            "shortName": "ErrorStatsService"
-          },
-          "shortName": "ListEvents"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.ListEventsRequest"
-          },
-          {
-            "name": "project_name",
-            "type": "str"
-          },
-          {
-            "name": "group_id",
-            "type": "str"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListEventsPager",
-        "shortName": "list_events"
-      },
-      "description": "Sample for ListEvents",
-      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_sync",
-      "segments": [
-        {
-          "end": 53,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 53,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 46,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 47,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 54,
-          "start": 50,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient",
-          "shortName": "ErrorStatsServiceAsyncClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceAsyncClient.list_group_stats",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListGroupStats",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
-            "shortName": "ErrorStatsService"
-          },
-          "shortName": "ListGroupStats"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.ListGroupStatsRequest"
-          },
-          {
-            "name": "project_name",
-            "type": "str"
-          },
-          {
-            "name": "time_range",
-            "type": "google.cloud.errorreporting_v1beta1.types.QueryTimeRange"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListGroupStatsAsyncPager",
-        "shortName": "list_group_stats"
-      },
-      "description": "Sample for ListGroupStats",
-      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_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": "clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient",
-          "shortName": "ErrorStatsServiceClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ErrorStatsServiceClient.list_group_stats",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListGroupStats",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService",
-            "shortName": "ErrorStatsService"
-          },
-          "shortName": "ListGroupStats"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.ListGroupStatsRequest"
-          },
-          {
-            "name": "project_name",
-            "type": "str"
-          },
-          {
-            "name": "time_range",
-            "type": "google.cloud.errorreporting_v1beta1.types.QueryTimeRange"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.errorreporting_v1beta1.services.error_stats_service.pagers.ListGroupStatsPager",
-        "shortName": "list_group_stats"
-      },
-      "description": "Sample for ListGroupStats",
-      "file": "clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_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": "clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "async": true,
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ReportErrorsServiceAsyncClient",
-          "shortName": "ReportErrorsServiceAsyncClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ReportErrorsServiceAsyncClient.report_error_event",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService.ReportErrorEvent",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService",
-            "shortName": "ReportErrorsService"
-          },
-          "shortName": "ReportErrorEvent"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.ReportErrorEventRequest"
-          },
-          {
-            "name": "project_name",
-            "type": "str"
-          },
-          {
-            "name": "event",
-            "type": "google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.errorreporting_v1beta1.types.ReportErrorEventResponse",
-        "shortName": "report_error_event"
-      },
-      "description": "Sample for ReportErrorEvent",
-      "file": "clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_async",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 50,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py"
-    },
-    {
-      "canonical": true,
-      "clientMethod": {
-        "client": {
-          "fullName": "google.cloud.errorreporting_v1beta1.ReportErrorsServiceClient",
-          "shortName": "ReportErrorsServiceClient"
-        },
-        "fullName": "google.cloud.errorreporting_v1beta1.ReportErrorsServiceClient.report_error_event",
-        "method": {
-          "fullName": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService.ReportErrorEvent",
-          "service": {
-            "fullName": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService",
-            "shortName": "ReportErrorsService"
-          },
-          "shortName": "ReportErrorEvent"
-        },
-        "parameters": [
-          {
-            "name": "request",
-            "type": "google.cloud.errorreporting_v1beta1.types.ReportErrorEventRequest"
-          },
-          {
-            "name": "project_name",
-            "type": "str"
-          },
-          {
-            "name": "event",
-            "type": "google.cloud.errorreporting_v1beta1.types.ReportedErrorEvent"
-          },
-          {
-            "name": "retry",
-            "type": "google.api_core.retry.Retry"
-          },
-          {
-            "name": "timeout",
-            "type": "float"
-          },
-          {
-            "name": "metadata",
-            "type": "Sequence[Tuple[str, str]"
-          }
-        ],
-        "resultType": "google.cloud.errorreporting_v1beta1.types.ReportErrorEventResponse",
-        "shortName": "report_error_event"
-      },
-      "description": "Sample for ReportErrorEvent",
-      "file": "clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py",
-      "language": "PYTHON",
-      "origin": "API_DEFINITION",
-      "regionTag": "clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_sync",
-      "segments": [
-        {
-          "end": 55,
-          "start": 27,
-          "type": "FULL"
-        },
-        {
-          "end": 55,
-          "start": 27,
-          "type": "SHORT"
-        },
-        {
-          "end": 40,
-          "start": 38,
-          "type": "CLIENT_INITIALIZATION"
-        },
-        {
-          "end": 49,
-          "start": 41,
-          "type": "REQUEST_INITIALIZATION"
-        },
-        {
-          "end": 52,
-          "start": 50,
-          "type": "REQUEST_EXECUTION"
-        },
-        {
-          "end": 56,
-          "start": 53,
-          "type": "RESPONSE_HANDLING"
-        }
-      ],
-      "title": "clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py"
-    }
-  ]
-}
diff --git a/owl-bot-staging/v1beta1/scripts/fixup_errorreporting_v1beta1_keywords.py b/owl-bot-staging/v1beta1/scripts/fixup_errorreporting_v1beta1_keywords.py
deleted file mode 100644
index 813f0be6..00000000
--- a/owl-bot-staging/v1beta1/scripts/fixup_errorreporting_v1beta1_keywords.py
+++ /dev/null
@@ -1,181 +0,0 @@
-#! /usr/bin/env python3
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 errorreportingCallTransformer(cst.CSTTransformer):
-    CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata')
-    METHOD_TO_PARAMS: Dict[str, Tuple[str]] = {
-        'delete_events': ('project_name', ),
-        'get_group': ('group_name', ),
-        'list_events': ('project_name', 'group_id', 'service_filter', 'time_range', 'page_size', 'page_token', ),
-        'list_group_stats': ('project_name', 'group_id', 'service_filter', 'time_range', 'timed_count_duration', 'alignment', 'alignment_time', 'order', 'page_size', 'page_token', ),
-        'report_error_event': ('project_name', 'event', ),
-        'update_group': ('group', ),
-    }
-
-    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=errorreportingCallTransformer(),
-):
-    """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 errorreporting 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/v1beta1/setup.py b/owl-bot-staging/v1beta1/setup.py
deleted file mode 100644
index 5eec54f7..00000000
--- a/owl-bot-staging/v1beta1/setup.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 setuptools # type: ignore
-
-package_root = os.path.abspath(os.path.dirname(__file__))
-
-name = 'google-cloud-error-reporting'
-
-
-description = "Google Cloud Error Reporting API client library"
-
-version = {}
-with open(os.path.join(package_root, 'google/cloud/errorreporting/gapic_version.py')) as fp:
-    exec(fp.read(), version)
-version = version["__version__"]
-
-if version[0] == "0":
-    release_status = "Development Status :: 4 - Beta"
-else:
-    release_status = "Development Status :: 5 - Production/Stable"
-
-dependencies = [
-    "google-api-core[grpc] >= 1.34.0, <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.*",
-    "proto-plus >= 1.22.0, <2.0.0dev",
-    "proto-plus >= 1.22.2, <2.0.0dev; python_version>='3.11'",
-    "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
-]
-url = "https://github.com/googleapis/python-error-reporting"
-
-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.PEP420PackageFinder.find()
-    if package.startswith("google")
-]
-
-namespaces = ["google", "google.cloud"]
-
-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",
-        "Operating System :: OS Independent",
-        "Topic :: Internet",
-    ],
-    platforms="Posix; MacOS X; Windows",
-    packages=packages,
-    python_requires=">=3.7",
-    namespace_packages=namespaces,
-    install_requires=dependencies,
-    include_package_data=True,
-    zip_safe=False,
-)
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.10.txt b/owl-bot-staging/v1beta1/testing/constraints-3.10.txt
deleted file mode 100644
index ed7f9aed..00000000
--- a/owl-bot-staging/v1beta1/testing/constraints-3.10.txt
+++ /dev/null
@@ -1,6 +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
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.11.txt b/owl-bot-staging/v1beta1/testing/constraints-3.11.txt
deleted file mode 100644
index ed7f9aed..00000000
--- a/owl-bot-staging/v1beta1/testing/constraints-3.11.txt
+++ /dev/null
@@ -1,6 +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
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.12.txt b/owl-bot-staging/v1beta1/testing/constraints-3.12.txt
deleted file mode 100644
index ed7f9aed..00000000
--- a/owl-bot-staging/v1beta1/testing/constraints-3.12.txt
+++ /dev/null
@@ -1,6 +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
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.7.txt b/owl-bot-staging/v1beta1/testing/constraints-3.7.txt
deleted file mode 100644
index 6c44adfe..00000000
--- a/owl-bot-staging/v1beta1/testing/constraints-3.7.txt
+++ /dev/null
@@ -1,9 +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.0
-proto-plus==1.22.0
-protobuf==3.19.5
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.8.txt b/owl-bot-staging/v1beta1/testing/constraints-3.8.txt
deleted file mode 100644
index ed7f9aed..00000000
--- a/owl-bot-staging/v1beta1/testing/constraints-3.8.txt
+++ /dev/null
@@ -1,6 +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
diff --git a/owl-bot-staging/v1beta1/testing/constraints-3.9.txt b/owl-bot-staging/v1beta1/testing/constraints-3.9.txt
deleted file mode 100644
index ed7f9aed..00000000
--- a/owl-bot-staging/v1beta1/testing/constraints-3.9.txt
+++ /dev/null
@@ -1,6 +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
diff --git a/owl-bot-staging/v1beta1/tests/__init__.py b/owl-bot-staging/v1beta1/tests/__init__.py
deleted file mode 100644
index 1b4db446..00000000
--- a/owl-bot-staging/v1beta1/tests/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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/v1beta1/tests/unit/__init__.py b/owl-bot-staging/v1beta1/tests/unit/__init__.py
deleted file mode 100644
index 1b4db446..00000000
--- a/owl-bot-staging/v1beta1/tests/unit/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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/v1beta1/tests/unit/gapic/__init__.py b/owl-bot-staging/v1beta1/tests/unit/gapic/__init__.py
deleted file mode 100644
index 1b4db446..00000000
--- a/owl-bot-staging/v1beta1/tests/unit/gapic/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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/v1beta1/tests/unit/gapic/errorreporting_v1beta1/__init__.py b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/__init__.py
deleted file mode 100644
index 1b4db446..00000000
--- a/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
deleted file mode 100644
index 7eac8dd2..00000000
--- a/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
+++ /dev/null
@@ -1,2172 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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
-from google.protobuf import json_format
-import json
-import math
-import pytest
-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
-
-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.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.errorreporting_v1beta1.services.error_group_service import ErrorGroupServiceAsyncClient
-from google.cloud.errorreporting_v1beta1.services.error_group_service import ErrorGroupServiceClient
-from google.cloud.errorreporting_v1beta1.services.error_group_service import transports
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_group_service
-from google.oauth2 import service_account
-import google.auth
-
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-
-# 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
-
-
-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 ErrorGroupServiceClient._get_default_mtls_endpoint(None) is None
-    assert ErrorGroupServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert ErrorGroupServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert ErrorGroupServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert ErrorGroupServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert ErrorGroupServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (ErrorGroupServiceClient, "grpc"),
-    (ErrorGroupServiceAsyncClient, "grpc_asyncio"),
-    (ErrorGroupServiceClient, "rest"),
-])
-def test_error_group_service_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 == (
-            'clouderrorreporting.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://clouderrorreporting.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.ErrorGroupServiceGrpcTransport, "grpc"),
-    (transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.ErrorGroupServiceRestTransport, "rest"),
-])
-def test_error_group_service_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", [
-    (ErrorGroupServiceClient, "grpc"),
-    (ErrorGroupServiceAsyncClient, "grpc_asyncio"),
-    (ErrorGroupServiceClient, "rest"),
-])
-def test_error_group_service_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 == (
-            'clouderrorreporting.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://clouderrorreporting.googleapis.com'
-        )
-
-
-def test_error_group_service_client_get_transport_class():
-    transport = ErrorGroupServiceClient.get_transport_class()
-    available_transports = [
-        transports.ErrorGroupServiceGrpcTransport,
-        transports.ErrorGroupServiceRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = ErrorGroupServiceClient.get_transport_class("grpc")
-    assert transport == transports.ErrorGroupServiceGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc"),
-    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest"),
-])
-@mock.patch.object(ErrorGroupServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceClient))
-@mock.patch.object(ErrorGroupServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceAsyncClient))
-def test_error_group_service_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(ErrorGroupServiceClient, '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(ErrorGroupServiceClient, '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,
-                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):
-            client = client_class(transport=transport_name)
-
-    # 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):
-            client = client_class(transport=transport_name)
-
-    # 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,
-            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,
-            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", [
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc", "true"),
-    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc", "false"),
-    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest", "true"),
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest", "false"),
-])
-@mock.patch.object(ErrorGroupServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceClient))
-@mock.patch.object(ErrorGroupServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_error_group_service_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
-            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
-                        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,
-                    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", [
-    ErrorGroupServiceClient, ErrorGroupServiceAsyncClient
-])
-@mock.patch.object(ErrorGroupServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceClient))
-@mock.patch.object(ErrorGroupServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorGroupServiceAsyncClient))
-def test_error_group_service_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
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc"),
-    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest"),
-])
-def test_error_group_service_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,
-            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", [
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc", grpc_helpers),
-    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceRestTransport, "rest", None),
-])
-def test_error_group_service_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,
-            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_error_group_service_client_client_options_from_dict():
-    with mock.patch('google.cloud.errorreporting_v1beta1.services.error_group_service.transports.ErrorGroupServiceGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = ErrorGroupServiceClient(
-            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", [
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport, "grpc", grpc_helpers),
-    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_error_group_service_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,
-            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(
-            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  error_group_service.GetGroupRequest,
-  dict,
-])
-def test_get_group(request_type, transport: str = 'grpc'):
-    client = ErrorGroupServiceClient(
-        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_group),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = common.ErrorGroup(
-            name='name_value',
-            group_id='group_id_value',
-            resolution_status=common.ResolutionStatus.OPEN,
-        )
-        response = client.get_group(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_group_service.GetGroupRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, common.ErrorGroup)
-    assert response.name == 'name_value'
-    assert response.group_id == 'group_id_value'
-    assert response.resolution_status == common.ResolutionStatus.OPEN
-
-
-def test_get_group_empty_call():
-    # This test is a coverage failsafe to make sure that totally empty calls,
-    # i.e. request == None and no flattened fields passed, work.
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_group),
-            '__call__') as call:
-        client.get_group()
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_group_service.GetGroupRequest()
-
-@pytest.mark.asyncio
-async def test_get_group_async(transport: str = 'grpc_asyncio', request_type=error_group_service.GetGroupRequest):
-    client = ErrorGroupServiceAsyncClient(
-        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_group),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup(
-            name='name_value',
-            group_id='group_id_value',
-            resolution_status=common.ResolutionStatus.OPEN,
-        ))
-        response = await client.get_group(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_group_service.GetGroupRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, common.ErrorGroup)
-    assert response.name == 'name_value'
-    assert response.group_id == 'group_id_value'
-    assert response.resolution_status == common.ResolutionStatus.OPEN
-
-
-@pytest.mark.asyncio
-async def test_get_group_async_from_dict():
-    await test_get_group_async(request_type=dict)
-
-
-def test_get_group_field_headers():
-    client = ErrorGroupServiceClient(
-        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 = error_group_service.GetGroupRequest()
-
-    request.group_name = 'group_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_group),
-            '__call__') as call:
-        call.return_value = common.ErrorGroup()
-        client.get_group(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',
-        'group_name=group_name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_get_group_field_headers_async():
-    client = ErrorGroupServiceAsyncClient(
-        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 = error_group_service.GetGroupRequest()
-
-    request.group_name = 'group_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_group),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup())
-        await client.get_group(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',
-        'group_name=group_name_value',
-    ) in kw['metadata']
-
-
-def test_get_group_flattened():
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_group),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = common.ErrorGroup()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.get_group(
-            group_name='group_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].group_name
-        mock_val = 'group_name_value'
-        assert arg == mock_val
-
-
-def test_get_group_flattened_error():
-    client = ErrorGroupServiceClient(
-        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_group(
-            error_group_service.GetGroupRequest(),
-            group_name='group_name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_get_group_flattened_async():
-    client = ErrorGroupServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.get_group),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = common.ErrorGroup()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.get_group(
-            group_name='group_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].group_name
-        mock_val = 'group_name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_get_group_flattened_error_async():
-    client = ErrorGroupServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.get_group(
-            error_group_service.GetGroupRequest(),
-            group_name='group_name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  error_group_service.UpdateGroupRequest,
-  dict,
-])
-def test_update_group(request_type, transport: str = 'grpc'):
-    client = ErrorGroupServiceClient(
-        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_group),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = common.ErrorGroup(
-            name='name_value',
-            group_id='group_id_value',
-            resolution_status=common.ResolutionStatus.OPEN,
-        )
-        response = client.update_group(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_group_service.UpdateGroupRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, common.ErrorGroup)
-    assert response.name == 'name_value'
-    assert response.group_id == 'group_id_value'
-    assert response.resolution_status == common.ResolutionStatus.OPEN
-
-
-def test_update_group_empty_call():
-    # This test is a coverage failsafe to make sure that totally empty calls,
-    # i.e. request == None and no flattened fields passed, work.
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_group),
-            '__call__') as call:
-        client.update_group()
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_group_service.UpdateGroupRequest()
-
-@pytest.mark.asyncio
-async def test_update_group_async(transport: str = 'grpc_asyncio', request_type=error_group_service.UpdateGroupRequest):
-    client = ErrorGroupServiceAsyncClient(
-        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_group),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup(
-            name='name_value',
-            group_id='group_id_value',
-            resolution_status=common.ResolutionStatus.OPEN,
-        ))
-        response = await client.update_group(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_group_service.UpdateGroupRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, common.ErrorGroup)
-    assert response.name == 'name_value'
-    assert response.group_id == 'group_id_value'
-    assert response.resolution_status == common.ResolutionStatus.OPEN
-
-
-@pytest.mark.asyncio
-async def test_update_group_async_from_dict():
-    await test_update_group_async(request_type=dict)
-
-
-def test_update_group_field_headers():
-    client = ErrorGroupServiceClient(
-        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 = error_group_service.UpdateGroupRequest()
-
-    request.group.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_group),
-            '__call__') as call:
-        call.return_value = common.ErrorGroup()
-        client.update_group(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',
-        'group.name=name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_update_group_field_headers_async():
-    client = ErrorGroupServiceAsyncClient(
-        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 = error_group_service.UpdateGroupRequest()
-
-    request.group.name = 'name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_group),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup())
-        await client.update_group(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',
-        'group.name=name_value',
-    ) in kw['metadata']
-
-
-def test_update_group_flattened():
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_group),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = common.ErrorGroup()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.update_group(
-            group=common.ErrorGroup(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].group
-        mock_val = common.ErrorGroup(name='name_value')
-        assert arg == mock_val
-
-
-def test_update_group_flattened_error():
-    client = ErrorGroupServiceClient(
-        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_group(
-            error_group_service.UpdateGroupRequest(),
-            group=common.ErrorGroup(name='name_value'),
-        )
-
-@pytest.mark.asyncio
-async def test_update_group_flattened_async():
-    client = ErrorGroupServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.update_group),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = common.ErrorGroup()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(common.ErrorGroup())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.update_group(
-            group=common.ErrorGroup(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].group
-        mock_val = common.ErrorGroup(name='name_value')
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_update_group_flattened_error_async():
-    client = ErrorGroupServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.update_group(
-            error_group_service.UpdateGroupRequest(),
-            group=common.ErrorGroup(name='name_value'),
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-    error_group_service.GetGroupRequest,
-    dict,
-])
-def test_get_group_rest(request_type):
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'group_name': 'projects/sample1/groups/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 = common.ErrorGroup(
-              name='name_value',
-              group_id='group_id_value',
-              resolution_status=common.ResolutionStatus.OPEN,
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = common.ErrorGroup.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.get_group(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, common.ErrorGroup)
-    assert response.name == 'name_value'
-    assert response.group_id == 'group_id_value'
-    assert response.resolution_status == common.ResolutionStatus.OPEN
-
-
-def test_get_group_rest_required_fields(request_type=error_group_service.GetGroupRequest):
-    transport_class = transports.ErrorGroupServiceRestTransport
-
-    request_init = {}
-    request_init["group_name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        including_default_value_fields=False,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_group._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["groupName"] = 'group_name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).get_group._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "groupName" in jsonified_request
-    assert jsonified_request["groupName"] == 'group_name_value'
-
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = common.ErrorGroup()
-    # 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
-
-            pb_return_value = common.ErrorGroup.pb(return_value)
-            json_return_value = json_format.MessageToJson(pb_return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.get_group(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_get_group_rest_unset_required_fields():
-    transport = transports.ErrorGroupServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.get_group._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("groupName", )))
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_get_group_rest_interceptors(null_interceptor):
-    transport = transports.ErrorGroupServiceRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ErrorGroupServiceRestInterceptor(),
-        )
-    client = ErrorGroupServiceClient(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.ErrorGroupServiceRestInterceptor, "post_get_group") as post, \
-         mock.patch.object(transports.ErrorGroupServiceRestInterceptor, "pre_get_group") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = error_group_service.GetGroupRequest.pb(error_group_service.GetGroupRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = Response()
-        req.return_value.status_code = 200
-        req.return_value.request = PreparedRequest()
-        req.return_value._content = common.ErrorGroup.to_json(common.ErrorGroup())
-
-        request = error_group_service.GetGroupRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = common.ErrorGroup()
-
-        client.get_group(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_get_group_rest_bad_request(transport: str = 'rest', request_type=error_group_service.GetGroupRequest):
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'group_name': 'projects/sample1/groups/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 = Response()
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.get_group(request)
-
-
-def test_get_group_rest_flattened():
-    client = ErrorGroupServiceClient(
-        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 = common.ErrorGroup()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'group_name': 'projects/sample1/groups/sample2'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            group_name='group_name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = common.ErrorGroup.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.get_group(**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/v1beta1/{group_name=projects/*/groups/*}" % client.transport._host, args[1])
-
-
-def test_get_group_rest_flattened_error(transport: str = 'rest'):
-    client = ErrorGroupServiceClient(
-        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_group(
-            error_group_service.GetGroupRequest(),
-            group_name='group_name_value',
-        )
-
-
-def test_get_group_rest_error():
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest'
-    )
-
-
-@pytest.mark.parametrize("request_type", [
-    error_group_service.UpdateGroupRequest,
-    dict,
-])
-def test_update_group_rest(request_type):
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'group': {'name': 'projects/sample1/groups/sample2'}}
-    request_init["group"] = {'name': 'projects/sample1/groups/sample2', 'group_id': 'group_id_value', 'tracking_issues': [{'url': 'url_value'}], 'resolution_status': 1}
-    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 = common.ErrorGroup(
-              name='name_value',
-              group_id='group_id_value',
-              resolution_status=common.ResolutionStatus.OPEN,
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = common.ErrorGroup.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.update_group(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, common.ErrorGroup)
-    assert response.name == 'name_value'
-    assert response.group_id == 'group_id_value'
-    assert response.resolution_status == common.ResolutionStatus.OPEN
-
-
-def test_update_group_rest_required_fields(request_type=error_group_service.UpdateGroupRequest):
-    transport_class = transports.ErrorGroupServiceRestTransport
-
-    request_init = {}
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        including_default_value_fields=False,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).update_group._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_group._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = common.ErrorGroup()
-    # 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': "put",
-                'query_params': pb_request,
-            }
-            transcode_result['body'] = pb_request
-            transcode.return_value = transcode_result
-
-            response_value = Response()
-            response_value.status_code = 200
-
-            pb_return_value = common.ErrorGroup.pb(return_value)
-            json_return_value = json_format.MessageToJson(pb_return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.update_group(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_update_group_rest_unset_required_fields():
-    transport = transports.ErrorGroupServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.update_group._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("group", )))
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_update_group_rest_interceptors(null_interceptor):
-    transport = transports.ErrorGroupServiceRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ErrorGroupServiceRestInterceptor(),
-        )
-    client = ErrorGroupServiceClient(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.ErrorGroupServiceRestInterceptor, "post_update_group") as post, \
-         mock.patch.object(transports.ErrorGroupServiceRestInterceptor, "pre_update_group") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = error_group_service.UpdateGroupRequest.pb(error_group_service.UpdateGroupRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = Response()
-        req.return_value.status_code = 200
-        req.return_value.request = PreparedRequest()
-        req.return_value._content = common.ErrorGroup.to_json(common.ErrorGroup())
-
-        request = error_group_service.UpdateGroupRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = common.ErrorGroup()
-
-        client.update_group(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_update_group_rest_bad_request(transport: str = 'rest', request_type=error_group_service.UpdateGroupRequest):
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'group': {'name': 'projects/sample1/groups/sample2'}}
-    request_init["group"] = {'name': 'projects/sample1/groups/sample2', 'group_id': 'group_id_value', 'tracking_issues': [{'url': 'url_value'}], 'resolution_status': 1}
-    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 = Response()
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.update_group(request)
-
-
-def test_update_group_rest_flattened():
-    client = ErrorGroupServiceClient(
-        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 = common.ErrorGroup()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'group': {'name': 'projects/sample1/groups/sample2'}}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            group=common.ErrorGroup(name='name_value'),
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = common.ErrorGroup.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.update_group(**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/v1beta1/{group.name=projects/*/groups/*}" % client.transport._host, args[1])
-
-
-def test_update_group_rest_flattened_error(transport: str = 'rest'):
-    client = ErrorGroupServiceClient(
-        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_group(
-            error_group_service.UpdateGroupRequest(),
-            group=common.ErrorGroup(name='name_value'),
-        )
-
-
-def test_update_group_rest_error():
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest'
-    )
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.ErrorGroupServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ErrorGroupServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.ErrorGroupServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ErrorGroupServiceClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.ErrorGroupServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ErrorGroupServiceClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = mock.Mock()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ErrorGroupServiceClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.ErrorGroupServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ErrorGroupServiceClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ErrorGroupServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = ErrorGroupServiceClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ErrorGroupServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.ErrorGroupServiceGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.ErrorGroupServiceGrpcTransport,
-    transports.ErrorGroupServiceGrpcAsyncIOTransport,
-    transports.ErrorGroupServiceRestTransport,
-])
-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()
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "rest",
-])
-def test_transport_kind(transport_name):
-    transport = ErrorGroupServiceClient.get_transport_class(transport_name)(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert transport.kind == transport_name
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.ErrorGroupServiceGrpcTransport,
-    )
-
-def test_error_group_service_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.ErrorGroupServiceTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_error_group_service_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.errorreporting_v1beta1.services.error_group_service.transports.ErrorGroupServiceTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.ErrorGroupServiceTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'get_group',
-        'update_group',
-    )
-    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_error_group_service_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.errorreporting_v1beta1.services.error_group_service.transports.ErrorGroupServiceTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ErrorGroupServiceTransport(
-            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_error_group_service_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.errorreporting_v1beta1.services.error_group_service.transports.ErrorGroupServiceTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ErrorGroupServiceTransport()
-        adc.assert_called_once()
-
-
-def test_error_group_service_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)
-        ErrorGroupServiceClient()
-        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.ErrorGroupServiceGrpcTransport,
-        transports.ErrorGroupServiceGrpcAsyncIOTransport,
-    ],
-)
-def test_error_group_service_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.ErrorGroupServiceGrpcTransport,
-        transports.ErrorGroupServiceGrpcAsyncIOTransport,
-        transports.ErrorGroupServiceRestTransport,
-    ],
-)
-def test_error_group_service_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.ErrorGroupServiceGrpcTransport, grpc_helpers),
-        (transports.ErrorGroupServiceGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_error_group_service_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.ErrorGroupServiceGrpcTransport, transports.ErrorGroupServiceGrpcAsyncIOTransport])
-def test_error_group_service_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_error_group_service_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.ErrorGroupServiceRestTransport (
-            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_error_group_service_host_no_port(transport_name):
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'clouderrorreporting.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://clouderrorreporting.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_error_group_service_host_with_port(transport_name):
-    client = ErrorGroupServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'clouderrorreporting.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://clouderrorreporting.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_error_group_service_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = ErrorGroupServiceClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = ErrorGroupServiceClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.get_group._session
-    session2 = client2.transport.get_group._session
-    assert session1 != session2
-    session1 = client1.transport.update_group._session
-    session2 = client2.transport.update_group._session
-    assert session1 != session2
-def test_error_group_service_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ErrorGroupServiceGrpcTransport(
-        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_error_group_service_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ErrorGroupServiceGrpcAsyncIOTransport(
-        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.ErrorGroupServiceGrpcTransport, transports.ErrorGroupServiceGrpcAsyncIOTransport])
-def test_error_group_service_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.ErrorGroupServiceGrpcTransport, transports.ErrorGroupServiceGrpcAsyncIOTransport])
-def test_error_group_service_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_error_group_path():
-    project = "squid"
-    group = "clam"
-    expected = "projects/{project}/groups/{group}".format(project=project, group=group, )
-    actual = ErrorGroupServiceClient.error_group_path(project, group)
-    assert expected == actual
-
-
-def test_parse_error_group_path():
-    expected = {
-        "project": "whelk",
-        "group": "octopus",
-    }
-    path = ErrorGroupServiceClient.error_group_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorGroupServiceClient.parse_error_group_path(path)
-    assert expected == actual
-
-def test_common_billing_account_path():
-    billing_account = "oyster"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = ErrorGroupServiceClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "nudibranch",
-    }
-    path = ErrorGroupServiceClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorGroupServiceClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "cuttlefish"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = ErrorGroupServiceClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "mussel",
-    }
-    path = ErrorGroupServiceClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorGroupServiceClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "winkle"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = ErrorGroupServiceClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "nautilus",
-    }
-    path = ErrorGroupServiceClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorGroupServiceClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "scallop"
-    expected = "projects/{project}".format(project=project, )
-    actual = ErrorGroupServiceClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "abalone",
-    }
-    path = ErrorGroupServiceClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorGroupServiceClient.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 = ErrorGroupServiceClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "whelk",
-        "location": "octopus",
-    }
-    path = ErrorGroupServiceClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorGroupServiceClient.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.ErrorGroupServiceTransport, '_prep_wrapped_messages') as prep:
-        client = ErrorGroupServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.ErrorGroupServiceTransport, '_prep_wrapped_messages') as prep:
-        transport_class = ErrorGroupServiceClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-@pytest.mark.asyncio
-async def test_transport_close_async():
-    client = ErrorGroupServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        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():
-    transports = {
-        "rest": "_session",
-        "grpc": "_grpc_channel",
-    }
-
-    for transport, close_name in transports.items():
-        client = ErrorGroupServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        with mock.patch.object(type(getattr(client.transport, close_name)), "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 = ErrorGroupServiceClient(
-            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", [
-    (ErrorGroupServiceClient, transports.ErrorGroupServiceGrpcTransport),
-    (ErrorGroupServiceAsyncClient, transports.ErrorGroupServiceGrpcAsyncIOTransport),
-])
-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,
-                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/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
deleted file mode 100644
index 62bd7eaf..00000000
--- a/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
+++ /dev/null
@@ -1,3149 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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
-from google.protobuf import json_format
-import json
-import math
-import pytest
-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
-
-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.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.errorreporting_v1beta1.services.error_stats_service import ErrorStatsServiceAsyncClient
-from google.cloud.errorreporting_v1beta1.services.error_stats_service import ErrorStatsServiceClient
-from google.cloud.errorreporting_v1beta1.services.error_stats_service import pagers
-from google.cloud.errorreporting_v1beta1.services.error_stats_service import transports
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import error_stats_service
-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
-
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-
-# 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
-
-
-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 ErrorStatsServiceClient._get_default_mtls_endpoint(None) is None
-    assert ErrorStatsServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert ErrorStatsServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert ErrorStatsServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert ErrorStatsServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert ErrorStatsServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (ErrorStatsServiceClient, "grpc"),
-    (ErrorStatsServiceAsyncClient, "grpc_asyncio"),
-    (ErrorStatsServiceClient, "rest"),
-])
-def test_error_stats_service_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 == (
-            'clouderrorreporting.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://clouderrorreporting.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.ErrorStatsServiceGrpcTransport, "grpc"),
-    (transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.ErrorStatsServiceRestTransport, "rest"),
-])
-def test_error_stats_service_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", [
-    (ErrorStatsServiceClient, "grpc"),
-    (ErrorStatsServiceAsyncClient, "grpc_asyncio"),
-    (ErrorStatsServiceClient, "rest"),
-])
-def test_error_stats_service_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 == (
-            'clouderrorreporting.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://clouderrorreporting.googleapis.com'
-        )
-
-
-def test_error_stats_service_client_get_transport_class():
-    transport = ErrorStatsServiceClient.get_transport_class()
-    available_transports = [
-        transports.ErrorStatsServiceGrpcTransport,
-        transports.ErrorStatsServiceRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = ErrorStatsServiceClient.get_transport_class("grpc")
-    assert transport == transports.ErrorStatsServiceGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc"),
-    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest"),
-])
-@mock.patch.object(ErrorStatsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceClient))
-@mock.patch.object(ErrorStatsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceAsyncClient))
-def test_error_stats_service_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(ErrorStatsServiceClient, '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(ErrorStatsServiceClient, '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,
-                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):
-            client = client_class(transport=transport_name)
-
-    # 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):
-            client = client_class(transport=transport_name)
-
-    # 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,
-            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,
-            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", [
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc", "true"),
-    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc", "false"),
-    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest", "true"),
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest", "false"),
-])
-@mock.patch.object(ErrorStatsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceClient))
-@mock.patch.object(ErrorStatsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_error_stats_service_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
-            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
-                        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,
-                    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", [
-    ErrorStatsServiceClient, ErrorStatsServiceAsyncClient
-])
-@mock.patch.object(ErrorStatsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceClient))
-@mock.patch.object(ErrorStatsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ErrorStatsServiceAsyncClient))
-def test_error_stats_service_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
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc"),
-    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest"),
-])
-def test_error_stats_service_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,
-            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", [
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc", grpc_helpers),
-    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceRestTransport, "rest", None),
-])
-def test_error_stats_service_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,
-            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_error_stats_service_client_client_options_from_dict():
-    with mock.patch('google.cloud.errorreporting_v1beta1.services.error_stats_service.transports.ErrorStatsServiceGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = ErrorStatsServiceClient(
-            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", [
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport, "grpc", grpc_helpers),
-    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_error_stats_service_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,
-            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(
-            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  error_stats_service.ListGroupStatsRequest,
-  dict,
-])
-def test_list_group_stats(request_type, transport: str = 'grpc'):
-    client = ErrorStatsServiceClient(
-        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_group_stats),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.ListGroupStatsResponse(
-            next_page_token='next_page_token_value',
-        )
-        response = client.list_group_stats(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.ListGroupStatsRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListGroupStatsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_group_stats_empty_call():
-    # This test is a coverage failsafe to make sure that totally empty calls,
-    # i.e. request == None and no flattened fields passed, work.
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_group_stats),
-            '__call__') as call:
-        client.list_group_stats()
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.ListGroupStatsRequest()
-
-@pytest.mark.asyncio
-async def test_list_group_stats_async(transport: str = 'grpc_asyncio', request_type=error_stats_service.ListGroupStatsRequest):
-    client = ErrorStatsServiceAsyncClient(
-        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_group_stats),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListGroupStatsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        response = await client.list_group_stats(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.ListGroupStatsRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListGroupStatsAsyncPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.asyncio
-async def test_list_group_stats_async_from_dict():
-    await test_list_group_stats_async(request_type=dict)
-
-
-def test_list_group_stats_field_headers():
-    client = ErrorStatsServiceClient(
-        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 = error_stats_service.ListGroupStatsRequest()
-
-    request.project_name = 'project_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_group_stats),
-            '__call__') as call:
-        call.return_value = error_stats_service.ListGroupStatsResponse()
-        client.list_group_stats(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',
-        'project_name=project_name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_list_group_stats_field_headers_async():
-    client = ErrorStatsServiceAsyncClient(
-        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 = error_stats_service.ListGroupStatsRequest()
-
-    request.project_name = 'project_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_group_stats),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListGroupStatsResponse())
-        await client.list_group_stats(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',
-        'project_name=project_name_value',
-    ) in kw['metadata']
-
-
-def test_list_group_stats_flattened():
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_group_stats),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.ListGroupStatsResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.list_group_stats(
-            project_name='project_name_value',
-            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
-        )
-
-        # 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].project_name
-        mock_val = 'project_name_value'
-        assert arg == mock_val
-        arg = args[0].time_range
-        mock_val = error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR)
-        assert arg == mock_val
-
-
-def test_list_group_stats_flattened_error():
-    client = ErrorStatsServiceClient(
-        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_group_stats(
-            error_stats_service.ListGroupStatsRequest(),
-            project_name='project_name_value',
-            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
-        )
-
-@pytest.mark.asyncio
-async def test_list_group_stats_flattened_async():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_group_stats),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.ListGroupStatsResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListGroupStatsResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.list_group_stats(
-            project_name='project_name_value',
-            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
-        )
-
-        # 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].project_name
-        mock_val = 'project_name_value'
-        assert arg == mock_val
-        arg = args[0].time_range
-        mock_val = error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR)
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_list_group_stats_flattened_error_async():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.list_group_stats(
-            error_stats_service.ListGroupStatsRequest(),
-            project_name='project_name_value',
-            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
-        )
-
-
-def test_list_group_stats_pager(transport_name: str = "grpc"):
-    client = ErrorStatsServiceClient(
-        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_group_stats),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-            ),
-            RuntimeError,
-        )
-
-        metadata = ()
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ('project_name', ''),
-            )),
-        )
-        pager = client.list_group_stats(request={})
-
-        assert pager._metadata == metadata
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, error_stats_service.ErrorGroupStats)
-                   for i in results)
-def test_list_group_stats_pages(transport_name: str = "grpc"):
-    client = ErrorStatsServiceClient(
-        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_group_stats),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = list(client.list_group_stats(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_group_stats_async_pager():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_group_stats),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-            ),
-            RuntimeError,
-        )
-        async_pager = await client.list_group_stats(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, error_stats_service.ErrorGroupStats)
-                for i in responses)
-
-
-@pytest.mark.asyncio
-async def test_list_group_stats_async_pages():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_group_stats),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-            ),
-            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_group_stats(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", [
-  error_stats_service.ListEventsRequest,
-  dict,
-])
-def test_list_events(request_type, transport: str = 'grpc'):
-    client = ErrorStatsServiceClient(
-        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_events),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.ListEventsResponse(
-            next_page_token='next_page_token_value',
-        )
-        response = client.list_events(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.ListEventsRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListEventsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_events_empty_call():
-    # This test is a coverage failsafe to make sure that totally empty calls,
-    # i.e. request == None and no flattened fields passed, work.
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_events),
-            '__call__') as call:
-        client.list_events()
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.ListEventsRequest()
-
-@pytest.mark.asyncio
-async def test_list_events_async(transport: str = 'grpc_asyncio', request_type=error_stats_service.ListEventsRequest):
-    client = ErrorStatsServiceAsyncClient(
-        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_events),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListEventsResponse(
-            next_page_token='next_page_token_value',
-        ))
-        response = await client.list_events(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.ListEventsRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListEventsAsyncPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-@pytest.mark.asyncio
-async def test_list_events_async_from_dict():
-    await test_list_events_async(request_type=dict)
-
-
-def test_list_events_field_headers():
-    client = ErrorStatsServiceClient(
-        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 = error_stats_service.ListEventsRequest()
-
-    request.project_name = 'project_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_events),
-            '__call__') as call:
-        call.return_value = error_stats_service.ListEventsResponse()
-        client.list_events(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',
-        'project_name=project_name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_list_events_field_headers_async():
-    client = ErrorStatsServiceAsyncClient(
-        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 = error_stats_service.ListEventsRequest()
-
-    request.project_name = 'project_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_events),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListEventsResponse())
-        await client.list_events(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',
-        'project_name=project_name_value',
-    ) in kw['metadata']
-
-
-def test_list_events_flattened():
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_events),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.ListEventsResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.list_events(
-            project_name='project_name_value',
-            group_id='group_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].project_name
-        mock_val = 'project_name_value'
-        assert arg == mock_val
-        arg = args[0].group_id
-        mock_val = 'group_id_value'
-        assert arg == mock_val
-
-
-def test_list_events_flattened_error():
-    client = ErrorStatsServiceClient(
-        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_events(
-            error_stats_service.ListEventsRequest(),
-            project_name='project_name_value',
-            group_id='group_id_value',
-        )
-
-@pytest.mark.asyncio
-async def test_list_events_flattened_async():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_events),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.ListEventsResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.ListEventsResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.list_events(
-            project_name='project_name_value',
-            group_id='group_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].project_name
-        mock_val = 'project_name_value'
-        assert arg == mock_val
-        arg = args[0].group_id
-        mock_val = 'group_id_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_list_events_flattened_error_async():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.list_events(
-            error_stats_service.ListEventsRequest(),
-            project_name='project_name_value',
-            group_id='group_id_value',
-        )
-
-
-def test_list_events_pager(transport_name: str = "grpc"):
-    client = ErrorStatsServiceClient(
-        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_events),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-            ),
-            RuntimeError,
-        )
-
-        metadata = ()
-        metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((
-                ('project_name', ''),
-            )),
-        )
-        pager = client.list_events(request={})
-
-        assert pager._metadata == metadata
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, common.ErrorEvent)
-                   for i in results)
-def test_list_events_pages(transport_name: str = "grpc"):
-    client = ErrorStatsServiceClient(
-        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_events),
-            '__call__') as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-            ),
-            RuntimeError,
-        )
-        pages = list(client.list_events(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_events_async_pager():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_events),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-            ),
-            RuntimeError,
-        )
-        async_pager = await client.list_events(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, common.ErrorEvent)
-                for i in responses)
-
-
-@pytest.mark.asyncio
-async def test_list_events_async_pages():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials,
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.list_events),
-            '__call__', new_callable=mock.AsyncMock) as call:
-        # Set the response to a series of pages.
-        call.side_effect = (
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-            ),
-            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_events(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", [
-  error_stats_service.DeleteEventsRequest,
-  dict,
-])
-def test_delete_events(request_type, transport: str = 'grpc'):
-    client = ErrorStatsServiceClient(
-        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_events),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.DeleteEventsResponse(
-        )
-        response = client.delete_events(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.DeleteEventsRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, error_stats_service.DeleteEventsResponse)
-
-
-def test_delete_events_empty_call():
-    # This test is a coverage failsafe to make sure that totally empty calls,
-    # i.e. request == None and no flattened fields passed, work.
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_events),
-            '__call__') as call:
-        client.delete_events()
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.DeleteEventsRequest()
-
-@pytest.mark.asyncio
-async def test_delete_events_async(transport: str = 'grpc_asyncio', request_type=error_stats_service.DeleteEventsRequest):
-    client = ErrorStatsServiceAsyncClient(
-        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_events),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.DeleteEventsResponse(
-        ))
-        response = await client.delete_events(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == error_stats_service.DeleteEventsRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, error_stats_service.DeleteEventsResponse)
-
-
-@pytest.mark.asyncio
-async def test_delete_events_async_from_dict():
-    await test_delete_events_async(request_type=dict)
-
-
-def test_delete_events_field_headers():
-    client = ErrorStatsServiceClient(
-        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 = error_stats_service.DeleteEventsRequest()
-
-    request.project_name = 'project_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_events),
-            '__call__') as call:
-        call.return_value = error_stats_service.DeleteEventsResponse()
-        client.delete_events(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',
-        'project_name=project_name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_delete_events_field_headers_async():
-    client = ErrorStatsServiceAsyncClient(
-        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 = error_stats_service.DeleteEventsRequest()
-
-    request.project_name = 'project_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_events),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.DeleteEventsResponse())
-        await client.delete_events(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',
-        'project_name=project_name_value',
-    ) in kw['metadata']
-
-
-def test_delete_events_flattened():
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_events),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.DeleteEventsResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.delete_events(
-            project_name='project_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].project_name
-        mock_val = 'project_name_value'
-        assert arg == mock_val
-
-
-def test_delete_events_flattened_error():
-    client = ErrorStatsServiceClient(
-        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_events(
-            error_stats_service.DeleteEventsRequest(),
-            project_name='project_name_value',
-        )
-
-@pytest.mark.asyncio
-async def test_delete_events_flattened_async():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.delete_events),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = error_stats_service.DeleteEventsResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(error_stats_service.DeleteEventsResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.delete_events(
-            project_name='project_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].project_name
-        mock_val = 'project_name_value'
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_delete_events_flattened_error_async():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.delete_events(
-            error_stats_service.DeleteEventsRequest(),
-            project_name='project_name_value',
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-    error_stats_service.ListGroupStatsRequest,
-    dict,
-])
-def test_list_group_stats_rest(request_type):
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'project_name': 'projects/sample1'}
-    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 = error_stats_service.ListGroupStatsResponse(
-              next_page_token='next_page_token_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = error_stats_service.ListGroupStatsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.list_group_stats(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListGroupStatsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_group_stats_rest_required_fields(request_type=error_stats_service.ListGroupStatsRequest):
-    transport_class = transports.ErrorStatsServiceRestTransport
-
-    request_init = {}
-    request_init["project_name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        including_default_value_fields=False,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_group_stats._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["projectName"] = 'project_name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_group_stats._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("alignment", "alignment_time", "group_id", "order", "page_size", "page_token", "service_filter", "time_range", "timed_count_duration", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "projectName" in jsonified_request
-    assert jsonified_request["projectName"] == 'project_name_value'
-
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = error_stats_service.ListGroupStatsResponse()
-    # 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
-
-            pb_return_value = error_stats_service.ListGroupStatsResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(pb_return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.list_group_stats(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_list_group_stats_rest_unset_required_fields():
-    transport = transports.ErrorStatsServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.list_group_stats._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("alignment", "alignmentTime", "groupId", "order", "pageSize", "pageToken", "serviceFilter", "timeRange", "timedCountDuration", )) & set(("projectName", )))
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_list_group_stats_rest_interceptors(null_interceptor):
-    transport = transports.ErrorStatsServiceRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ErrorStatsServiceRestInterceptor(),
-        )
-    client = ErrorStatsServiceClient(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.ErrorStatsServiceRestInterceptor, "post_list_group_stats") as post, \
-         mock.patch.object(transports.ErrorStatsServiceRestInterceptor, "pre_list_group_stats") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = error_stats_service.ListGroupStatsRequest.pb(error_stats_service.ListGroupStatsRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = Response()
-        req.return_value.status_code = 200
-        req.return_value.request = PreparedRequest()
-        req.return_value._content = error_stats_service.ListGroupStatsResponse.to_json(error_stats_service.ListGroupStatsResponse())
-
-        request = error_stats_service.ListGroupStatsRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = error_stats_service.ListGroupStatsResponse()
-
-        client.list_group_stats(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_list_group_stats_rest_bad_request(transport: str = 'rest', request_type=error_stats_service.ListGroupStatsRequest):
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'project_name': 'projects/sample1'}
-    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 = Response()
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.list_group_stats(request)
-
-
-def test_list_group_stats_rest_flattened():
-    client = ErrorStatsServiceClient(
-        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 = error_stats_service.ListGroupStatsResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'project_name': 'projects/sample1'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            project_name='project_name_value',
-            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = error_stats_service.ListGroupStatsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.list_group_stats(**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/v1beta1/{project_name=projects/*}/groupStats" % client.transport._host, args[1])
-
-
-def test_list_group_stats_rest_flattened_error(transport: str = 'rest'):
-    client = ErrorStatsServiceClient(
-        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_group_stats(
-            error_stats_service.ListGroupStatsRequest(),
-            project_name='project_name_value',
-            time_range=error_stats_service.QueryTimeRange(period=error_stats_service.QueryTimeRange.Period.PERIOD_1_HOUR),
-        )
-
-
-def test_list_group_stats_rest_pager(transport: str = 'rest'):
-    client = ErrorStatsServiceClient(
-        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 = (
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListGroupStatsResponse(
-                error_group_stats=[
-                    error_stats_service.ErrorGroupStats(),
-                    error_stats_service.ErrorGroupStats(),
-                ],
-            ),
-        )
-        # Two responses for two calls
-        response = response + response
-
-        # Wrap the values into proper Response objs
-        response = tuple(error_stats_service.ListGroupStatsResponse.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 = {'project_name': 'projects/sample1'}
-
-        pager = client.list_group_stats(request=sample_request)
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, error_stats_service.ErrorGroupStats)
-                for i in results)
-
-        pages = list(client.list_group_stats(request=sample_request).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-
-@pytest.mark.parametrize("request_type", [
-    error_stats_service.ListEventsRequest,
-    dict,
-])
-def test_list_events_rest(request_type):
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'project_name': 'projects/sample1'}
-    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 = error_stats_service.ListEventsResponse(
-              next_page_token='next_page_token_value',
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = error_stats_service.ListEventsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.list_events(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, pagers.ListEventsPager)
-    assert response.next_page_token == 'next_page_token_value'
-
-
-def test_list_events_rest_required_fields(request_type=error_stats_service.ListEventsRequest):
-    transport_class = transports.ErrorStatsServiceRestTransport
-
-    request_init = {}
-    request_init["project_name"] = ""
-    request_init["group_id"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        including_default_value_fields=False,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-    assert "groupId" not in jsonified_request
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_events._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-    assert "groupId" in jsonified_request
-    assert jsonified_request["groupId"] == request_init["group_id"]
-
-    jsonified_request["projectName"] = 'project_name_value'
-    jsonified_request["groupId"] = 'group_id_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).list_events._get_unset_required_fields(jsonified_request)
-    # Check that path parameters and body parameters are not mixing in.
-    assert not set(unset_fields) - set(("group_id", "page_size", "page_token", "service_filter", "time_range", ))
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "projectName" in jsonified_request
-    assert jsonified_request["projectName"] == 'project_name_value'
-    assert "groupId" in jsonified_request
-    assert jsonified_request["groupId"] == 'group_id_value'
-
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = error_stats_service.ListEventsResponse()
-    # 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
-
-            pb_return_value = error_stats_service.ListEventsResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(pb_return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.list_events(request)
-
-            expected_params = [
-                (
-                    "groupId",
-                    "",
-                ),
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_list_events_rest_unset_required_fields():
-    transport = transports.ErrorStatsServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.list_events._get_unset_required_fields({})
-    assert set(unset_fields) == (set(("groupId", "pageSize", "pageToken", "serviceFilter", "timeRange", )) & set(("projectName", "groupId", )))
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_list_events_rest_interceptors(null_interceptor):
-    transport = transports.ErrorStatsServiceRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ErrorStatsServiceRestInterceptor(),
-        )
-    client = ErrorStatsServiceClient(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.ErrorStatsServiceRestInterceptor, "post_list_events") as post, \
-         mock.patch.object(transports.ErrorStatsServiceRestInterceptor, "pre_list_events") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = error_stats_service.ListEventsRequest.pb(error_stats_service.ListEventsRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = Response()
-        req.return_value.status_code = 200
-        req.return_value.request = PreparedRequest()
-        req.return_value._content = error_stats_service.ListEventsResponse.to_json(error_stats_service.ListEventsResponse())
-
-        request = error_stats_service.ListEventsRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = error_stats_service.ListEventsResponse()
-
-        client.list_events(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_list_events_rest_bad_request(transport: str = 'rest', request_type=error_stats_service.ListEventsRequest):
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'project_name': 'projects/sample1'}
-    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 = Response()
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.list_events(request)
-
-
-def test_list_events_rest_flattened():
-    client = ErrorStatsServiceClient(
-        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 = error_stats_service.ListEventsResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'project_name': 'projects/sample1'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            project_name='project_name_value',
-            group_id='group_id_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = error_stats_service.ListEventsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.list_events(**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/v1beta1/{project_name=projects/*}/events" % client.transport._host, args[1])
-
-
-def test_list_events_rest_flattened_error(transport: str = 'rest'):
-    client = ErrorStatsServiceClient(
-        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_events(
-            error_stats_service.ListEventsRequest(),
-            project_name='project_name_value',
-            group_id='group_id_value',
-        )
-
-
-def test_list_events_rest_pager(transport: str = 'rest'):
-    client = ErrorStatsServiceClient(
-        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 = (
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-                next_page_token='abc',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[],
-                next_page_token='def',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                ],
-                next_page_token='ghi',
-            ),
-            error_stats_service.ListEventsResponse(
-                error_events=[
-                    common.ErrorEvent(),
-                    common.ErrorEvent(),
-                ],
-            ),
-        )
-        # Two responses for two calls
-        response = response + response
-
-        # Wrap the values into proper Response objs
-        response = tuple(error_stats_service.ListEventsResponse.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 = {'project_name': 'projects/sample1'}
-
-        pager = client.list_events(request=sample_request)
-
-        results = list(pager)
-        assert len(results) == 6
-        assert all(isinstance(i, common.ErrorEvent)
-                for i in results)
-
-        pages = list(client.list_events(request=sample_request).pages)
-        for page_, token in zip(pages, ['abc','def','ghi', '']):
-            assert page_.raw_page.next_page_token == token
-
-
-@pytest.mark.parametrize("request_type", [
-    error_stats_service.DeleteEventsRequest,
-    dict,
-])
-def test_delete_events_rest(request_type):
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'project_name': 'projects/sample1'}
-    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 = error_stats_service.DeleteEventsResponse(
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = error_stats_service.DeleteEventsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.delete_events(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, error_stats_service.DeleteEventsResponse)
-
-
-def test_delete_events_rest_required_fields(request_type=error_stats_service.DeleteEventsRequest):
-    transport_class = transports.ErrorStatsServiceRestTransport
-
-    request_init = {}
-    request_init["project_name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        including_default_value_fields=False,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_events._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["projectName"] = 'project_name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).delete_events._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "projectName" in jsonified_request
-    assert jsonified_request["projectName"] == 'project_name_value'
-
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = error_stats_service.DeleteEventsResponse()
-    # 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
-
-            pb_return_value = error_stats_service.DeleteEventsResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(pb_return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.delete_events(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_delete_events_rest_unset_required_fields():
-    transport = transports.ErrorStatsServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.delete_events._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("projectName", )))
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_delete_events_rest_interceptors(null_interceptor):
-    transport = transports.ErrorStatsServiceRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ErrorStatsServiceRestInterceptor(),
-        )
-    client = ErrorStatsServiceClient(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.ErrorStatsServiceRestInterceptor, "post_delete_events") as post, \
-         mock.patch.object(transports.ErrorStatsServiceRestInterceptor, "pre_delete_events") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = error_stats_service.DeleteEventsRequest.pb(error_stats_service.DeleteEventsRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = Response()
-        req.return_value.status_code = 200
-        req.return_value.request = PreparedRequest()
-        req.return_value._content = error_stats_service.DeleteEventsResponse.to_json(error_stats_service.DeleteEventsResponse())
-
-        request = error_stats_service.DeleteEventsRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = error_stats_service.DeleteEventsResponse()
-
-        client.delete_events(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_delete_events_rest_bad_request(transport: str = 'rest', request_type=error_stats_service.DeleteEventsRequest):
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'project_name': 'projects/sample1'}
-    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 = Response()
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.delete_events(request)
-
-
-def test_delete_events_rest_flattened():
-    client = ErrorStatsServiceClient(
-        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 = error_stats_service.DeleteEventsResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'project_name': 'projects/sample1'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            project_name='project_name_value',
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = error_stats_service.DeleteEventsResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.delete_events(**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/v1beta1/{project_name=projects/*}/events" % client.transport._host, args[1])
-
-
-def test_delete_events_rest_flattened_error(transport: str = 'rest'):
-    client = ErrorStatsServiceClient(
-        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_events(
-            error_stats_service.DeleteEventsRequest(),
-            project_name='project_name_value',
-        )
-
-
-def test_delete_events_rest_error():
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest'
-    )
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.ErrorStatsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ErrorStatsServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.ErrorStatsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ErrorStatsServiceClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.ErrorStatsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ErrorStatsServiceClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = mock.Mock()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ErrorStatsServiceClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.ErrorStatsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ErrorStatsServiceClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ErrorStatsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = ErrorStatsServiceClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ErrorStatsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.ErrorStatsServiceGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.ErrorStatsServiceGrpcTransport,
-    transports.ErrorStatsServiceGrpcAsyncIOTransport,
-    transports.ErrorStatsServiceRestTransport,
-])
-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()
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "rest",
-])
-def test_transport_kind(transport_name):
-    transport = ErrorStatsServiceClient.get_transport_class(transport_name)(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert transport.kind == transport_name
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.ErrorStatsServiceGrpcTransport,
-    )
-
-def test_error_stats_service_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.ErrorStatsServiceTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_error_stats_service_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.errorreporting_v1beta1.services.error_stats_service.transports.ErrorStatsServiceTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.ErrorStatsServiceTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'list_group_stats',
-        'list_events',
-        'delete_events',
-    )
-    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_error_stats_service_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.errorreporting_v1beta1.services.error_stats_service.transports.ErrorStatsServiceTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ErrorStatsServiceTransport(
-            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_error_stats_service_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.errorreporting_v1beta1.services.error_stats_service.transports.ErrorStatsServiceTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ErrorStatsServiceTransport()
-        adc.assert_called_once()
-
-
-def test_error_stats_service_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)
-        ErrorStatsServiceClient()
-        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.ErrorStatsServiceGrpcTransport,
-        transports.ErrorStatsServiceGrpcAsyncIOTransport,
-    ],
-)
-def test_error_stats_service_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.ErrorStatsServiceGrpcTransport,
-        transports.ErrorStatsServiceGrpcAsyncIOTransport,
-        transports.ErrorStatsServiceRestTransport,
-    ],
-)
-def test_error_stats_service_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.ErrorStatsServiceGrpcTransport, grpc_helpers),
-        (transports.ErrorStatsServiceGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_error_stats_service_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.ErrorStatsServiceGrpcTransport, transports.ErrorStatsServiceGrpcAsyncIOTransport])
-def test_error_stats_service_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_error_stats_service_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.ErrorStatsServiceRestTransport (
-            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_error_stats_service_host_no_port(transport_name):
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'clouderrorreporting.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://clouderrorreporting.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_error_stats_service_host_with_port(transport_name):
-    client = ErrorStatsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'clouderrorreporting.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://clouderrorreporting.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_error_stats_service_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = ErrorStatsServiceClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = ErrorStatsServiceClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.list_group_stats._session
-    session2 = client2.transport.list_group_stats._session
-    assert session1 != session2
-    session1 = client1.transport.list_events._session
-    session2 = client2.transport.list_events._session
-    assert session1 != session2
-    session1 = client1.transport.delete_events._session
-    session2 = client2.transport.delete_events._session
-    assert session1 != session2
-def test_error_stats_service_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ErrorStatsServiceGrpcTransport(
-        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_error_stats_service_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ErrorStatsServiceGrpcAsyncIOTransport(
-        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.ErrorStatsServiceGrpcTransport, transports.ErrorStatsServiceGrpcAsyncIOTransport])
-def test_error_stats_service_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.ErrorStatsServiceGrpcTransport, transports.ErrorStatsServiceGrpcAsyncIOTransport])
-def test_error_stats_service_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_error_group_path():
-    project = "squid"
-    group = "clam"
-    expected = "projects/{project}/groups/{group}".format(project=project, group=group, )
-    actual = ErrorStatsServiceClient.error_group_path(project, group)
-    assert expected == actual
-
-
-def test_parse_error_group_path():
-    expected = {
-        "project": "whelk",
-        "group": "octopus",
-    }
-    path = ErrorStatsServiceClient.error_group_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorStatsServiceClient.parse_error_group_path(path)
-    assert expected == actual
-
-def test_common_billing_account_path():
-    billing_account = "oyster"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = ErrorStatsServiceClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "nudibranch",
-    }
-    path = ErrorStatsServiceClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorStatsServiceClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "cuttlefish"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = ErrorStatsServiceClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "mussel",
-    }
-    path = ErrorStatsServiceClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorStatsServiceClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "winkle"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = ErrorStatsServiceClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "nautilus",
-    }
-    path = ErrorStatsServiceClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorStatsServiceClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "scallop"
-    expected = "projects/{project}".format(project=project, )
-    actual = ErrorStatsServiceClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "abalone",
-    }
-    path = ErrorStatsServiceClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorStatsServiceClient.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 = ErrorStatsServiceClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "whelk",
-        "location": "octopus",
-    }
-    path = ErrorStatsServiceClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ErrorStatsServiceClient.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.ErrorStatsServiceTransport, '_prep_wrapped_messages') as prep:
-        client = ErrorStatsServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.ErrorStatsServiceTransport, '_prep_wrapped_messages') as prep:
-        transport_class = ErrorStatsServiceClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-@pytest.mark.asyncio
-async def test_transport_close_async():
-    client = ErrorStatsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        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():
-    transports = {
-        "rest": "_session",
-        "grpc": "_grpc_channel",
-    }
-
-    for transport, close_name in transports.items():
-        client = ErrorStatsServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        with mock.patch.object(type(getattr(client.transport, close_name)), "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 = ErrorStatsServiceClient(
-            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", [
-    (ErrorStatsServiceClient, transports.ErrorStatsServiceGrpcTransport),
-    (ErrorStatsServiceAsyncClient, transports.ErrorStatsServiceGrpcAsyncIOTransport),
-])
-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,
-                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/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py b/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py
deleted file mode 100644
index 2ce91ebe..00000000
--- a/owl-bot-staging/v1beta1/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py
+++ /dev/null
@@ -1,1672 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2023 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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
-from google.protobuf import json_format
-import json
-import math
-import pytest
-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
-
-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.auth import credentials as ga_credentials
-from google.auth.exceptions import MutualTLSChannelError
-from google.cloud.errorreporting_v1beta1.services.report_errors_service import ReportErrorsServiceAsyncClient
-from google.cloud.errorreporting_v1beta1.services.report_errors_service import ReportErrorsServiceClient
-from google.cloud.errorreporting_v1beta1.services.report_errors_service import transports
-from google.cloud.errorreporting_v1beta1.types import common
-from google.cloud.errorreporting_v1beta1.types import report_errors_service
-from google.oauth2 import service_account
-from google.protobuf import timestamp_pb2  # type: ignore
-import google.auth
-
-
-def client_cert_source_callback():
-    return b"cert bytes", b"key bytes"
-
-
-# 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
-
-
-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 ReportErrorsServiceClient._get_default_mtls_endpoint(None) is None
-    assert ReportErrorsServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint
-    assert ReportErrorsServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint
-    assert ReportErrorsServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint
-    assert ReportErrorsServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint
-    assert ReportErrorsServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi
-
-
-@pytest.mark.parametrize("client_class,transport_name", [
-    (ReportErrorsServiceClient, "grpc"),
-    (ReportErrorsServiceAsyncClient, "grpc_asyncio"),
-    (ReportErrorsServiceClient, "rest"),
-])
-def test_report_errors_service_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 == (
-            'clouderrorreporting.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://clouderrorreporting.googleapis.com'
-        )
-
-
-@pytest.mark.parametrize("transport_class,transport_name", [
-    (transports.ReportErrorsServiceGrpcTransport, "grpc"),
-    (transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (transports.ReportErrorsServiceRestTransport, "rest"),
-])
-def test_report_errors_service_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", [
-    (ReportErrorsServiceClient, "grpc"),
-    (ReportErrorsServiceAsyncClient, "grpc_asyncio"),
-    (ReportErrorsServiceClient, "rest"),
-])
-def test_report_errors_service_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 == (
-            'clouderrorreporting.googleapis.com:443'
-            if transport_name in ['grpc', 'grpc_asyncio']
-            else
-            'https://clouderrorreporting.googleapis.com'
-        )
-
-
-def test_report_errors_service_client_get_transport_class():
-    transport = ReportErrorsServiceClient.get_transport_class()
-    available_transports = [
-        transports.ReportErrorsServiceGrpcTransport,
-        transports.ReportErrorsServiceRestTransport,
-    ]
-    assert transport in available_transports
-
-    transport = ReportErrorsServiceClient.get_transport_class("grpc")
-    assert transport == transports.ReportErrorsServiceGrpcTransport
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc"),
-    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest"),
-])
-@mock.patch.object(ReportErrorsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceClient))
-@mock.patch.object(ReportErrorsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceAsyncClient))
-def test_report_errors_service_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(ReportErrorsServiceClient, '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(ReportErrorsServiceClient, '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,
-                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):
-            client = client_class(transport=transport_name)
-
-    # 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):
-            client = client_class(transport=transport_name)
-
-    # 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,
-            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,
-            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", [
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc", "true"),
-    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"),
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc", "false"),
-    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"),
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest", "true"),
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest", "false"),
-])
-@mock.patch.object(ReportErrorsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceClient))
-@mock.patch.object(ReportErrorsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceAsyncClient))
-@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"})
-def test_report_errors_service_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
-            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
-                        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,
-                    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", [
-    ReportErrorsServiceClient, ReportErrorsServiceAsyncClient
-])
-@mock.patch.object(ReportErrorsServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceClient))
-@mock.patch.object(ReportErrorsServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(ReportErrorsServiceAsyncClient))
-def test_report_errors_service_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
-
-
-@pytest.mark.parametrize("client_class,transport_class,transport_name", [
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc"),
-    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest"),
-])
-def test_report_errors_service_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,
-            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", [
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc", grpc_helpers),
-    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceRestTransport, "rest", None),
-])
-def test_report_errors_service_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,
-            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_report_errors_service_client_client_options_from_dict():
-    with mock.patch('google.cloud.errorreporting_v1beta1.services.report_errors_service.transports.ReportErrorsServiceGrpcTransport.__init__') as grpc_transport:
-        grpc_transport.return_value = None
-        client = ReportErrorsServiceClient(
-            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", [
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport, "grpc", grpc_helpers),
-    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async),
-])
-def test_report_errors_service_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,
-            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(
-            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-  report_errors_service.ReportErrorEventRequest,
-  dict,
-])
-def test_report_error_event(request_type, transport: str = 'grpc'):
-    client = ReportErrorsServiceClient(
-        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.report_error_event),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = report_errors_service.ReportErrorEventResponse(
-        )
-        response = client.report_error_event(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls) == 1
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == report_errors_service.ReportErrorEventRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, report_errors_service.ReportErrorEventResponse)
-
-
-def test_report_error_event_empty_call():
-    # This test is a coverage failsafe to make sure that totally empty calls,
-    # i.e. request == None and no flattened fields passed, work.
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='grpc',
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.report_error_event),
-            '__call__') as call:
-        client.report_error_event()
-        call.assert_called()
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == report_errors_service.ReportErrorEventRequest()
-
-@pytest.mark.asyncio
-async def test_report_error_event_async(transport: str = 'grpc_asyncio', request_type=report_errors_service.ReportErrorEventRequest):
-    client = ReportErrorsServiceAsyncClient(
-        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.report_error_event),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(report_errors_service.ReportErrorEventResponse(
-        ))
-        response = await client.report_error_event(request)
-
-        # Establish that the underlying gRPC stub method was called.
-        assert len(call.mock_calls)
-        _, args, _ = call.mock_calls[0]
-        assert args[0] == report_errors_service.ReportErrorEventRequest()
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, report_errors_service.ReportErrorEventResponse)
-
-
-@pytest.mark.asyncio
-async def test_report_error_event_async_from_dict():
-    await test_report_error_event_async(request_type=dict)
-
-
-def test_report_error_event_field_headers():
-    client = ReportErrorsServiceClient(
-        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 = report_errors_service.ReportErrorEventRequest()
-
-    request.project_name = 'project_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.report_error_event),
-            '__call__') as call:
-        call.return_value = report_errors_service.ReportErrorEventResponse()
-        client.report_error_event(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',
-        'project_name=project_name_value',
-    ) in kw['metadata']
-
-
-@pytest.mark.asyncio
-async def test_report_error_event_field_headers_async():
-    client = ReportErrorsServiceAsyncClient(
-        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 = report_errors_service.ReportErrorEventRequest()
-
-    request.project_name = 'project_name_value'
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.report_error_event),
-            '__call__') as call:
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(report_errors_service.ReportErrorEventResponse())
-        await client.report_error_event(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',
-        'project_name=project_name_value',
-    ) in kw['metadata']
-
-
-def test_report_error_event_flattened():
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.report_error_event),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = report_errors_service.ReportErrorEventResponse()
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        client.report_error_event(
-            project_name='project_name_value',
-            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
-        )
-
-        # 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].project_name
-        mock_val = 'project_name_value'
-        assert arg == mock_val
-        arg = args[0].event
-        mock_val = report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751))
-        assert arg == mock_val
-
-
-def test_report_error_event_flattened_error():
-    client = ReportErrorsServiceClient(
-        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.report_error_event(
-            report_errors_service.ReportErrorEventRequest(),
-            project_name='project_name_value',
-            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
-        )
-
-@pytest.mark.asyncio
-async def test_report_error_event_flattened_async():
-    client = ReportErrorsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Mock the actual call within the gRPC stub, and fake the request.
-    with mock.patch.object(
-            type(client.transport.report_error_event),
-            '__call__') as call:
-        # Designate an appropriate return value for the call.
-        call.return_value = report_errors_service.ReportErrorEventResponse()
-
-        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(report_errors_service.ReportErrorEventResponse())
-        # Call the method with a truthy value for each flattened field,
-        # using the keyword arguments to the method.
-        response = await client.report_error_event(
-            project_name='project_name_value',
-            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
-        )
-
-        # 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].project_name
-        mock_val = 'project_name_value'
-        assert arg == mock_val
-        arg = args[0].event
-        mock_val = report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751))
-        assert arg == mock_val
-
-@pytest.mark.asyncio
-async def test_report_error_event_flattened_error_async():
-    client = ReportErrorsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-
-    # Attempting to call a method with both a request object and flattened
-    # fields is an error.
-    with pytest.raises(ValueError):
-        await client.report_error_event(
-            report_errors_service.ReportErrorEventRequest(),
-            project_name='project_name_value',
-            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
-        )
-
-
-@pytest.mark.parametrize("request_type", [
-    report_errors_service.ReportErrorEventRequest,
-    dict,
-])
-def test_report_error_event_rest(request_type):
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport="rest",
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'project_name': 'projects/sample1'}
-    request_init["event"] = {'event_time': {'seconds': 751, 'nanos': 543}, 'service_context': {'service': 'service_value', 'version': 'version_value', 'resource_type': 'resource_type_value'}, 'message': 'message_value', 'context': {'http_request': {'method': 'method_value', 'url': 'url_value', 'user_agent': 'user_agent_value', 'referrer': 'referrer_value', 'response_status_code': 2156, 'remote_ip': 'remote_ip_value'}, 'user': 'user_value', 'report_location': {'file_path': 'file_path_value', 'line_number': 1168, 'function_name': 'function_name_value'}}}
-    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 = report_errors_service.ReportErrorEventResponse(
-        )
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = report_errors_service.ReportErrorEventResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-        response = client.report_error_event(request)
-
-    # Establish that the response is the type that we expect.
-    assert isinstance(response, report_errors_service.ReportErrorEventResponse)
-
-
-def test_report_error_event_rest_required_fields(request_type=report_errors_service.ReportErrorEventRequest):
-    transport_class = transports.ReportErrorsServiceRestTransport
-
-    request_init = {}
-    request_init["project_name"] = ""
-    request = request_type(**request_init)
-    pb_request = request_type.pb(request)
-    jsonified_request = json.loads(json_format.MessageToJson(
-        pb_request,
-        including_default_value_fields=False,
-        use_integers_for_enums=False
-    ))
-
-    # verify fields with default values are dropped
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).report_error_event._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with default values are now present
-
-    jsonified_request["projectName"] = 'project_name_value'
-
-    unset_fields = transport_class(credentials=ga_credentials.AnonymousCredentials()).report_error_event._get_unset_required_fields(jsonified_request)
-    jsonified_request.update(unset_fields)
-
-    # verify required fields with non-default values are left alone
-    assert "projectName" in jsonified_request
-    assert jsonified_request["projectName"] == 'project_name_value'
-
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest',
-    )
-    request = request_type(**request_init)
-
-    # Designate an appropriate value for the returned response.
-    return_value = report_errors_service.ReportErrorEventResponse()
-    # 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
-
-            pb_return_value = report_errors_service.ReportErrorEventResponse.pb(return_value)
-            json_return_value = json_format.MessageToJson(pb_return_value)
-
-            response_value._content = json_return_value.encode('UTF-8')
-            req.return_value = response_value
-
-            response = client.report_error_event(request)
-
-            expected_params = [
-                ('$alt', 'json;enum-encoding=int')
-            ]
-            actual_params = req.call_args.kwargs['params']
-            assert expected_params == actual_params
-
-
-def test_report_error_event_rest_unset_required_fields():
-    transport = transports.ReportErrorsServiceRestTransport(credentials=ga_credentials.AnonymousCredentials)
-
-    unset_fields = transport.report_error_event._get_unset_required_fields({})
-    assert set(unset_fields) == (set(()) & set(("projectName", "event", )))
-
-
-@pytest.mark.parametrize("null_interceptor", [True, False])
-def test_report_error_event_rest_interceptors(null_interceptor):
-    transport = transports.ReportErrorsServiceRestTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-        interceptor=None if null_interceptor else transports.ReportErrorsServiceRestInterceptor(),
-        )
-    client = ReportErrorsServiceClient(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.ReportErrorsServiceRestInterceptor, "post_report_error_event") as post, \
-         mock.patch.object(transports.ReportErrorsServiceRestInterceptor, "pre_report_error_event") as pre:
-        pre.assert_not_called()
-        post.assert_not_called()
-        pb_message = report_errors_service.ReportErrorEventRequest.pb(report_errors_service.ReportErrorEventRequest())
-        transcode.return_value = {
-            "method": "post",
-            "uri": "my_uri",
-            "body": pb_message,
-            "query_params": pb_message,
-        }
-
-        req.return_value = Response()
-        req.return_value.status_code = 200
-        req.return_value.request = PreparedRequest()
-        req.return_value._content = report_errors_service.ReportErrorEventResponse.to_json(report_errors_service.ReportErrorEventResponse())
-
-        request = report_errors_service.ReportErrorEventRequest()
-        metadata =[
-            ("key", "val"),
-            ("cephalopod", "squid"),
-        ]
-        pre.return_value = request, metadata
-        post.return_value = report_errors_service.ReportErrorEventResponse()
-
-        client.report_error_event(request, metadata=[("key", "val"), ("cephalopod", "squid"),])
-
-        pre.assert_called_once()
-        post.assert_called_once()
-
-
-def test_report_error_event_rest_bad_request(transport: str = 'rest', request_type=report_errors_service.ReportErrorEventRequest):
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport=transport,
-    )
-
-    # send a request that will satisfy transcoding
-    request_init = {'project_name': 'projects/sample1'}
-    request_init["event"] = {'event_time': {'seconds': 751, 'nanos': 543}, 'service_context': {'service': 'service_value', 'version': 'version_value', 'resource_type': 'resource_type_value'}, 'message': 'message_value', 'context': {'http_request': {'method': 'method_value', 'url': 'url_value', 'user_agent': 'user_agent_value', 'referrer': 'referrer_value', 'response_status_code': 2156, 'remote_ip': 'remote_ip_value'}, 'user': 'user_value', 'report_location': {'file_path': 'file_path_value', 'line_number': 1168, 'function_name': 'function_name_value'}}}
-    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 = Response()
-        response_value.status_code = 400
-        response_value.request = Request()
-        req.return_value = response_value
-        client.report_error_event(request)
-
-
-def test_report_error_event_rest_flattened():
-    client = ReportErrorsServiceClient(
-        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 = report_errors_service.ReportErrorEventResponse()
-
-        # get arguments that satisfy an http rule for this method
-        sample_request = {'project_name': 'projects/sample1'}
-
-        # get truthy value for each flattened field
-        mock_args = dict(
-            project_name='project_name_value',
-            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
-        )
-        mock_args.update(sample_request)
-
-        # Wrap the value into a proper Response obj
-        response_value = Response()
-        response_value.status_code = 200
-        pb_return_value = report_errors_service.ReportErrorEventResponse.pb(return_value)
-        json_return_value = json_format.MessageToJson(pb_return_value)
-        response_value._content = json_return_value.encode('UTF-8')
-        req.return_value = response_value
-
-        client.report_error_event(**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/v1beta1/{project_name=projects/*}/events:report" % client.transport._host, args[1])
-
-
-def test_report_error_event_rest_flattened_error(transport: str = 'rest'):
-    client = ReportErrorsServiceClient(
-        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.report_error_event(
-            report_errors_service.ReportErrorEventRequest(),
-            project_name='project_name_value',
-            event=report_errors_service.ReportedErrorEvent(event_time=timestamp_pb2.Timestamp(seconds=751)),
-        )
-
-
-def test_report_error_event_rest_error():
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        transport='rest'
-    )
-
-
-def test_credentials_transport_error():
-    # It is an error to provide credentials and a transport instance.
-    transport = transports.ReportErrorsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ReportErrorsServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport,
-        )
-
-    # It is an error to provide a credentials file and a transport instance.
-    transport = transports.ReportErrorsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ReportErrorsServiceClient(
-            client_options={"credentials_file": "credentials.json"},
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a transport instance.
-    transport = transports.ReportErrorsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    options = client_options.ClientOptions()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ReportErrorsServiceClient(
-            client_options=options,
-            transport=transport,
-        )
-
-    # It is an error to provide an api_key and a credential.
-    options = mock.Mock()
-    options.api_key = "api_key"
-    with pytest.raises(ValueError):
-        client = ReportErrorsServiceClient(
-            client_options=options,
-            credentials=ga_credentials.AnonymousCredentials()
-        )
-
-    # It is an error to provide scopes and a transport instance.
-    transport = transports.ReportErrorsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    with pytest.raises(ValueError):
-        client = ReportErrorsServiceClient(
-            client_options={"scopes": ["1", "2"]},
-            transport=transport,
-        )
-
-
-def test_transport_instance():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ReportErrorsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    client = ReportErrorsServiceClient(transport=transport)
-    assert client.transport is transport
-
-def test_transport_get_channel():
-    # A client may be instantiated with a custom transport instance.
-    transport = transports.ReportErrorsServiceGrpcTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-    transport = transports.ReportErrorsServiceGrpcAsyncIOTransport(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    channel = transport.grpc_channel
-    assert channel
-
-@pytest.mark.parametrize("transport_class", [
-    transports.ReportErrorsServiceGrpcTransport,
-    transports.ReportErrorsServiceGrpcAsyncIOTransport,
-    transports.ReportErrorsServiceRestTransport,
-])
-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()
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "rest",
-])
-def test_transport_kind(transport_name):
-    transport = ReportErrorsServiceClient.get_transport_class(transport_name)(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert transport.kind == transport_name
-
-def test_transport_grpc_default():
-    # A client should use the gRPC transport by default.
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-    )
-    assert isinstance(
-        client.transport,
-        transports.ReportErrorsServiceGrpcTransport,
-    )
-
-def test_report_errors_service_base_transport_error():
-    # Passing both a credentials object and credentials_file should raise an error
-    with pytest.raises(core_exceptions.DuplicateCredentialArgs):
-        transport = transports.ReportErrorsServiceTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-            credentials_file="credentials.json"
-        )
-
-
-def test_report_errors_service_base_transport():
-    # Instantiate the base transport.
-    with mock.patch('google.cloud.errorreporting_v1beta1.services.report_errors_service.transports.ReportErrorsServiceTransport.__init__') as Transport:
-        Transport.return_value = None
-        transport = transports.ReportErrorsServiceTransport(
-            credentials=ga_credentials.AnonymousCredentials(),
-        )
-
-    # Every method on the transport should just blindly
-    # raise NotImplementedError.
-    methods = (
-        'report_error_event',
-    )
-    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_report_errors_service_base_transport_with_credentials_file():
-    # Instantiate the base transport with a credentials file
-    with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.errorreporting_v1beta1.services.report_errors_service.transports.ReportErrorsServiceTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ReportErrorsServiceTransport(
-            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_report_errors_service_base_transport_with_adc():
-    # Test the default credentials are used if credentials and credentials_file are None.
-    with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.errorreporting_v1beta1.services.report_errors_service.transports.ReportErrorsServiceTransport._prep_wrapped_messages') as Transport:
-        Transport.return_value = None
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.ReportErrorsServiceTransport()
-        adc.assert_called_once()
-
-
-def test_report_errors_service_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)
-        ReportErrorsServiceClient()
-        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.ReportErrorsServiceGrpcTransport,
-        transports.ReportErrorsServiceGrpcAsyncIOTransport,
-    ],
-)
-def test_report_errors_service_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.ReportErrorsServiceGrpcTransport,
-        transports.ReportErrorsServiceGrpcAsyncIOTransport,
-        transports.ReportErrorsServiceRestTransport,
-    ],
-)
-def test_report_errors_service_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.ReportErrorsServiceGrpcTransport, grpc_helpers),
-        (transports.ReportErrorsServiceGrpcAsyncIOTransport, grpc_helpers_async)
-    ],
-)
-def test_report_errors_service_transport_create_channel(transport_class, grpc_helpers):
-    # If credentials and host are not provided, the transport class should use
-    # ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
-        creds = ga_credentials.AnonymousCredentials()
-        adc.return_value = (creds, None)
-        transport_class(
-            quota_project_id="octopus",
-            scopes=["1", "2"]
-        )
-
-        create_channel.assert_called_with(
-            "clouderrorreporting.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="clouderrorreporting.googleapis.com",
-            ssl_credentials=None,
-            options=[
-                ("grpc.max_send_message_length", -1),
-                ("grpc.max_receive_message_length", -1),
-            ],
-        )
-
-
-@pytest.mark.parametrize("transport_class", [transports.ReportErrorsServiceGrpcTransport, transports.ReportErrorsServiceGrpcAsyncIOTransport])
-def test_report_errors_service_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_report_errors_service_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.ReportErrorsServiceRestTransport (
-            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_report_errors_service_host_no_port(transport_name):
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com'),
-         transport=transport_name,
-    )
-    assert client.transport._host == (
-        'clouderrorreporting.googleapis.com:443'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://clouderrorreporting.googleapis.com'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "grpc",
-    "grpc_asyncio",
-    "rest",
-])
-def test_report_errors_service_host_with_port(transport_name):
-    client = ReportErrorsServiceClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        client_options=client_options.ClientOptions(api_endpoint='clouderrorreporting.googleapis.com:8000'),
-        transport=transport_name,
-    )
-    assert client.transport._host == (
-        'clouderrorreporting.googleapis.com:8000'
-        if transport_name in ['grpc', 'grpc_asyncio']
-        else 'https://clouderrorreporting.googleapis.com:8000'
-    )
-
-@pytest.mark.parametrize("transport_name", [
-    "rest",
-])
-def test_report_errors_service_client_transport_session_collision(transport_name):
-    creds1 = ga_credentials.AnonymousCredentials()
-    creds2 = ga_credentials.AnonymousCredentials()
-    client1 = ReportErrorsServiceClient(
-        credentials=creds1,
-        transport=transport_name,
-    )
-    client2 = ReportErrorsServiceClient(
-        credentials=creds2,
-        transport=transport_name,
-    )
-    session1 = client1.transport.report_error_event._session
-    session2 = client2.transport.report_error_event._session
-    assert session1 != session2
-def test_report_errors_service_grpc_transport_channel():
-    channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ReportErrorsServiceGrpcTransport(
-        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_report_errors_service_grpc_asyncio_transport_channel():
-    channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials())
-
-    # Check that channel is used if provided.
-    transport = transports.ReportErrorsServiceGrpcAsyncIOTransport(
-        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.ReportErrorsServiceGrpcTransport, transports.ReportErrorsServiceGrpcAsyncIOTransport])
-def test_report_errors_service_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.ReportErrorsServiceGrpcTransport, transports.ReportErrorsServiceGrpcAsyncIOTransport])
-def test_report_errors_service_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_common_billing_account_path():
-    billing_account = "squid"
-    expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, )
-    actual = ReportErrorsServiceClient.common_billing_account_path(billing_account)
-    assert expected == actual
-
-
-def test_parse_common_billing_account_path():
-    expected = {
-        "billing_account": "clam",
-    }
-    path = ReportErrorsServiceClient.common_billing_account_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ReportErrorsServiceClient.parse_common_billing_account_path(path)
-    assert expected == actual
-
-def test_common_folder_path():
-    folder = "whelk"
-    expected = "folders/{folder}".format(folder=folder, )
-    actual = ReportErrorsServiceClient.common_folder_path(folder)
-    assert expected == actual
-
-
-def test_parse_common_folder_path():
-    expected = {
-        "folder": "octopus",
-    }
-    path = ReportErrorsServiceClient.common_folder_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ReportErrorsServiceClient.parse_common_folder_path(path)
-    assert expected == actual
-
-def test_common_organization_path():
-    organization = "oyster"
-    expected = "organizations/{organization}".format(organization=organization, )
-    actual = ReportErrorsServiceClient.common_organization_path(organization)
-    assert expected == actual
-
-
-def test_parse_common_organization_path():
-    expected = {
-        "organization": "nudibranch",
-    }
-    path = ReportErrorsServiceClient.common_organization_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ReportErrorsServiceClient.parse_common_organization_path(path)
-    assert expected == actual
-
-def test_common_project_path():
-    project = "cuttlefish"
-    expected = "projects/{project}".format(project=project, )
-    actual = ReportErrorsServiceClient.common_project_path(project)
-    assert expected == actual
-
-
-def test_parse_common_project_path():
-    expected = {
-        "project": "mussel",
-    }
-    path = ReportErrorsServiceClient.common_project_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ReportErrorsServiceClient.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 = ReportErrorsServiceClient.common_location_path(project, location)
-    assert expected == actual
-
-
-def test_parse_common_location_path():
-    expected = {
-        "project": "scallop",
-        "location": "abalone",
-    }
-    path = ReportErrorsServiceClient.common_location_path(**expected)
-
-    # Check that the path construction is reversible.
-    actual = ReportErrorsServiceClient.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.ReportErrorsServiceTransport, '_prep_wrapped_messages') as prep:
-        client = ReportErrorsServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-    with mock.patch.object(transports.ReportErrorsServiceTransport, '_prep_wrapped_messages') as prep:
-        transport_class = ReportErrorsServiceClient.get_transport_class()
-        transport = transport_class(
-            credentials=ga_credentials.AnonymousCredentials(),
-            client_info=client_info,
-        )
-        prep.assert_called_once_with(client_info)
-
-@pytest.mark.asyncio
-async def test_transport_close_async():
-    client = ReportErrorsServiceAsyncClient(
-        credentials=ga_credentials.AnonymousCredentials(),
-        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():
-    transports = {
-        "rest": "_session",
-        "grpc": "_grpc_channel",
-    }
-
-    for transport, close_name in transports.items():
-        client = ReportErrorsServiceClient(
-            credentials=ga_credentials.AnonymousCredentials(),
-            transport=transport
-        )
-        with mock.patch.object(type(getattr(client.transport, close_name)), "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 = ReportErrorsServiceClient(
-            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", [
-    (ReportErrorsServiceClient, transports.ReportErrorsServiceGrpcTransport),
-    (ReportErrorsServiceAsyncClient, transports.ReportErrorsServiceGrpcAsyncIOTransport),
-])
-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,
-                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/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
index b4a207ad..702f5cda 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_async.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
index e4f473de..074978d9 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_get_group_sync.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
index 6ee4a823..8b345298 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_async.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
index 4f8f6bca..7c38b173 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_group_service_update_group_sync.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
index bc8eb7be..a1cd90bf 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_async.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
index c03edfb3..f8c08c1b 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_delete_events_sync.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
index 0cd82da6..1ec25ba7 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_async.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
index dbed18fa..81c7cc4c 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_events_sync.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
index c78b943f..60e47686 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_async.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
index a90ceaef..16d09dc4 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_error_stats_service_list_group_stats_sync.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
index 400a567a..ba590771 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_async.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py b/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
index 2260dd1b..c1fb7124 100644
--- a/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
+++ b/samples/generated_samples/clouderrorreporting_v1beta1_generated_report_errors_service_report_error_event_sync.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json b/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
index 631b8bce..fedd655c 100644
--- a/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
+++ b/samples/generated_samples/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json
@@ -8,7 +8,7 @@
     ],
     "language": "PYTHON",
     "name": "google-cloud-error-reporting",
-    "version": "1.9.2"
+    "version": "0.1.0"
   },
   "snippets": [
     {
diff --git a/scripts/fixup_errorreporting_v1beta1_keywords.py b/scripts/fixup_errorreporting_v1beta1_keywords.py
index db88785c..813f0be6 100644
--- a/scripts/fixup_errorreporting_v1beta1_keywords.py
+++ b/scripts/fixup_errorreporting_v1beta1_keywords.py
@@ -1,6 +1,6 @@
 #! /usr/bin/env python3
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/tests/__init__.py b/tests/__init__.py
index e8e1c384..89a37dc9 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py
index e8e1c384..89a37dc9 100644
--- a/tests/unit/__init__.py
+++ b/tests/unit/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/tests/unit/gapic/__init__.py b/tests/unit/gapic/__init__.py
index e8e1c384..89a37dc9 100644
--- a/tests/unit/gapic/__init__.py
+++ b/tests/unit/gapic/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/tests/unit/gapic/errorreporting_v1beta1/__init__.py b/tests/unit/gapic/errorreporting_v1beta1/__init__.py
index e8e1c384..89a37dc9 100644
--- a/tests/unit/gapic/errorreporting_v1beta1/__init__.py
+++ b/tests/unit/gapic/errorreporting_v1beta1/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py b/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
index 90643d98..8f4bc53d 100644
--- a/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
+++ b/tests/unit/gapic/errorreporting_v1beta1/test_error_group_service.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py b/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
index 76143e09..d2e77d24 100644
--- a/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
+++ b/tests/unit/gapic/errorreporting_v1beta1/test_error_stats_service.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py b/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py
index 3a69144f..9824fea4 100644
--- a/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py
+++ b/tests/unit/gapic/errorreporting_v1beta1/test_report_errors_service.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.