diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/.OwlBot.yaml b/owl-bot-staging/google-cloud-dialogflow-cx/.OwlBot.yaml
new file mode 100644
index 000000000000..18004150206c
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/.OwlBot.yaml
@@ -0,0 +1,19 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+deep-copy-regex:
+ - source: /google/cloud/dialogflow/cx/google-cloud-dialogflow-cx-nodejs
+ dest: /owl-bot-staging/google-cloud-dialogflow-cx
+
+api-name: cx
\ No newline at end of file
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/.gitignore b/owl-bot-staging/google-cloud-dialogflow-cx/.gitignore
new file mode 100644
index 000000000000..d4f03a0df2e8
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/.gitignore
@@ -0,0 +1,14 @@
+**/*.log
+**/node_modules
+/.coverage
+/coverage
+/.nyc_output
+/docs/
+/out/
+/build/
+system-test/secrets.js
+system-test/*key.json
+*.lock
+.DS_Store
+package-lock.json
+__pycache__
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/.jsdoc.js b/owl-bot-staging/google-cloud-dialogflow-cx/.jsdoc.js
new file mode 100644
index 000000000000..52a8cd520de2
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/.jsdoc.js
@@ -0,0 +1,55 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.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.
+//
+// ** This file is automatically generated by gapic-generator-typescript. **
+// ** https://github.com/googleapis/gapic-generator-typescript **
+// ** All changes to this file may be overwritten. **
+
+'use strict';
+
+module.exports = {
+ opts: {
+ readme: './README.md',
+ package: './package.json',
+ template: './node_modules/jsdoc-fresh',
+ recurse: true,
+ verbose: true,
+ destination: './docs/'
+ },
+ plugins: [
+ 'plugins/markdown',
+ 'jsdoc-region-tag'
+ ],
+ source: {
+ excludePattern: '(^|\\/|\\\\)[._]',
+ include: [
+ 'build/src',
+ 'protos'
+ ],
+ includePattern: '\\.js$'
+ },
+ templates: {
+ copyright: 'Copyright 2026 Google LLC',
+ includeDate: false,
+ sourceFiles: false,
+ systemName: '@google-cloud/dialogflow-cx',
+ theme: 'lumen',
+ default: {
+ outputSourceFiles: false
+ }
+ },
+ markdown: {
+ idInHeadings: true
+ }
+};
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/.nycrc b/owl-bot-staging/google-cloud-dialogflow-cx/.nycrc
new file mode 100644
index 000000000000..81a95fc94b00
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/.nycrc
@@ -0,0 +1,24 @@
+{
+ "report-dir": "./.coverage",
+ "reporter": ["text", "lcov"],
+ "exclude": [
+ "**/*-test",
+ "**/.coverage",
+ "**/apis",
+ "**/benchmark",
+ "**/conformance",
+ "**/docs",
+ "**/samples",
+ "**/scripts",
+ "**/protos",
+ "**/test",
+ "**/*.d.ts",
+ ".jsdoc.js",
+ "**/.jsdoc.js",
+ "karma.conf.js",
+ "webpack-tests.config.js",
+ "webpack.config.js"
+ ],
+ "exclude-after-remap": false,
+ "all": true
+}
\ No newline at end of file
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/README.md b/owl-bot-staging/google-cloud-dialogflow-cx/README.md
new file mode 100644
index 000000000000..4e8ea240f28b
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/README.md
@@ -0,0 +1,391 @@
+[//]: # "This README.md file is auto-generated, all changes to this file will be lost."
+[//]: # "The comments you see below are used to generate those parts of the template in later states."
+
+
+# [Dialogflow API: Nodejs Client][homepage]
+
+This library is considered to be **stable**. The code surface will not change in backwards-incompatible ways
+unless absolutely necessary (e.g. because of critical security issues) or with
+an extensive deprecation period. Issues and requests against **stable** libraries
+are addressed with the highest priority
+
+[](https://www.npmjs.org/package/@google-cloud/dialogflow-cx)
+
+Dialogflow API client for Node.js
+
+[//]: # "partials.introduction"
+
+A comprehensive list of changes in each version may be found in
+[the CHANGELOG][homepage_changelog].
+
+* [Dialogflow API Nodejs Client API Reference](https://cloud.google.com/nodejs/docs/reference/cx/latest)
+* [Dialogflow API Documentation](https://docs.cloud.google.com/dialogflow/docs)
+
+Read more about the client libraries for Cloud APIs, including the older
+Google APIs Client Libraries, in [Client Libraries Explained][explained].
+
+[explained]: https://cloud.google.com/apis/docs/client-libraries-explained
+
+**Table of contents:**
+
+* [Quickstart](#quickstart)
+ * [Before you begin](#before-you-begin)
+ * [Installing the client library](#installing-the-client-library)
+
+* [Versioning](#versioning)
+* [Contributing](#contributing)
+* [License](#license)
+
+## Quickstart
+### Before you begin
+
+1. [Select or create a Cloud Platform project][projects].
+1. [Enable billing for your project][billing].
+1. [Enable the Dialogflow API API][enable_api].
+1. [Set up authentication][auth] so you can access the
+ API from your local workstation.
+### Installing the client library
+
+```bash
+npm install @google-cloud/dialogflow-cx
+```
+
+[//]: # "partials.body"
+
+## Samples
+
+Samples are in the [`samples/`][homepage_samples] directory. Each sample's `README.md` has instructions for running its sample.
+
+| Sample | Source Code |
+| --------------------------- | --------------------------------- |
+| create agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.create_agent.js) |
+| delete agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.delete_agent.js) |
+| export agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.export_agent.js) |
+| get agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.get_agent.js) |
+| get agent validation result | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.get_agent_validation_result.js) |
+| get generative settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.get_generative_settings.js) |
+| list agents | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.list_agents.js) |
+| restore agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.restore_agent.js) |
+| update agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.update_agent.js) |
+| update generative settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.update_generative_settings.js) |
+| validate agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/agents.validate_agent.js) |
+| get changelog | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/changelogs.get_changelog.js) |
+| list changelogs | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/changelogs.list_changelogs.js) |
+| get deployment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/deployments.get_deployment.js) |
+| list deployments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/deployments.list_deployments.js) |
+| create entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/entity_types.create_entity_type.js) |
+| delete entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/entity_types.delete_entity_type.js) |
+| export entity types | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/entity_types.export_entity_types.js) |
+| get entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/entity_types.get_entity_type.js) |
+| import entity types | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/entity_types.import_entity_types.js) |
+| list entity types | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/entity_types.list_entity_types.js) |
+| update entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/entity_types.update_entity_type.js) |
+| create environment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.create_environment.js) |
+| delete environment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.delete_environment.js) |
+| deploy flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.deploy_flow.js) |
+| get environment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.get_environment.js) |
+| list continuous test results | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.list_continuous_test_results.js) |
+| list environments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.list_environments.js) |
+| lookup environment history | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.lookup_environment_history.js) |
+| run continuous test | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.run_continuous_test.js) |
+| update environment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/environments.update_environment.js) |
+| create example | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/examples.create_example.js) |
+| delete example | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/examples.delete_example.js) |
+| get example | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/examples.get_example.js) |
+| list examples | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/examples.list_examples.js) |
+| update example | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/examples.update_example.js) |
+| create experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/experiments.create_experiment.js) |
+| delete experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/experiments.delete_experiment.js) |
+| get experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/experiments.get_experiment.js) |
+| list experiments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/experiments.list_experiments.js) |
+| start experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/experiments.start_experiment.js) |
+| stop experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/experiments.stop_experiment.js) |
+| update experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/experiments.update_experiment.js) |
+| create flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.create_flow.js) |
+| delete flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.delete_flow.js) |
+| export flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.export_flow.js) |
+| get flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.get_flow.js) |
+| get flow validation result | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.get_flow_validation_result.js) |
+| import flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.import_flow.js) |
+| list flows | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.list_flows.js) |
+| train flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.train_flow.js) |
+| update flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.update_flow.js) |
+| validate flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/flows.validate_flow.js) |
+| create generator | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/generators.create_generator.js) |
+| delete generator | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/generators.delete_generator.js) |
+| get generator | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/generators.get_generator.js) |
+| list generators | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/generators.list_generators.js) |
+| update generator | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/generators.update_generator.js) |
+| create intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/intents.create_intent.js) |
+| delete intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/intents.delete_intent.js) |
+| export intents | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/intents.export_intents.js) |
+| get intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/intents.get_intent.js) |
+| import intents | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/intents.import_intents.js) |
+| list intents | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/intents.list_intents.js) |
+| update intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/intents.update_intent.js) |
+| create page | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/pages.create_page.js) |
+| delete page | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/pages.delete_page.js) |
+| get page | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/pages.get_page.js) |
+| list pages | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/pages.list_pages.js) |
+| update page | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/pages.update_page.js) |
+| create playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.create_playbook.js) |
+| create playbook version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.create_playbook_version.js) |
+| delete playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.delete_playbook.js) |
+| delete playbook version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.delete_playbook_version.js) |
+| export playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.export_playbook.js) |
+| get playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.get_playbook.js) |
+| get playbook version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.get_playbook_version.js) |
+| import playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.import_playbook.js) |
+| list playbook versions | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.list_playbook_versions.js) |
+| list playbooks | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.list_playbooks.js) |
+| restore playbook version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.restore_playbook_version.js) |
+| update playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/playbooks.update_playbook.js) |
+| create security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/security_settings_service.create_security_settings.js) |
+| delete security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/security_settings_service.delete_security_settings.js) |
+| get security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/security_settings_service.get_security_settings.js) |
+| list security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/security_settings_service.list_security_settings.js) |
+| update security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/security_settings_service.update_security_settings.js) |
+| create session entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/session_entity_types.create_session_entity_type.js) |
+| delete session entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/session_entity_types.delete_session_entity_type.js) |
+| get session entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/session_entity_types.get_session_entity_type.js) |
+| list session entity types | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/session_entity_types.list_session_entity_types.js) |
+| update session entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/session_entity_types.update_session_entity_type.js) |
+| detect intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/sessions.detect_intent.js) |
+| fulfill intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/sessions.fulfill_intent.js) |
+| match intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/sessions.match_intent.js) |
+| server streaming detect intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/sessions.server_streaming_detect_intent.js) |
+| streaming detect intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/sessions.streaming_detect_intent.js) |
+| submit answer feedback | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/sessions.submit_answer_feedback.js) |
+| batch delete test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.batch_delete_test_cases.js) |
+| batch run test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.batch_run_test_cases.js) |
+| calculate coverage | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.calculate_coverage.js) |
+| create test case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.create_test_case.js) |
+| export test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.export_test_cases.js) |
+| get test case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.get_test_case.js) |
+| get test case result | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.get_test_case_result.js) |
+| import test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.import_test_cases.js) |
+| list test case results | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.list_test_case_results.js) |
+| list test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.list_test_cases.js) |
+| run test case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.run_test_case.js) |
+| update test case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/test_cases.update_test_case.js) |
+| create tool | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.create_tool.js) |
+| create tool version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.create_tool_version.js) |
+| delete tool | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.delete_tool.js) |
+| delete tool version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.delete_tool_version.js) |
+| get tool | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.get_tool.js) |
+| get tool version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.get_tool_version.js) |
+| list tool versions | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.list_tool_versions.js) |
+| list tools | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.list_tools.js) |
+| restore tool version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.restore_tool_version.js) |
+| update tool | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/tools.update_tool.js) |
+| create transition route group | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/transition_route_groups.create_transition_route_group.js) |
+| delete transition route group | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/transition_route_groups.delete_transition_route_group.js) |
+| get transition route group | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/transition_route_groups.get_transition_route_group.js) |
+| list transition route groups | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/transition_route_groups.list_transition_route_groups.js) |
+| update transition route group | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/transition_route_groups.update_transition_route_group.js) |
+| compare versions | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/versions.compare_versions.js) |
+| create version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/versions.create_version.js) |
+| delete version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/versions.delete_version.js) |
+| get version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/versions.get_version.js) |
+| list versions | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/versions.list_versions.js) |
+| load version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/versions.load_version.js) |
+| update version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/versions.update_version.js) |
+| create webhook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/webhooks.create_webhook.js) |
+| delete webhook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/webhooks.delete_webhook.js) |
+| get webhook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/webhooks.get_webhook.js) |
+| list webhooks | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/webhooks.list_webhooks.js) |
+| update webhook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3/webhooks.update_webhook.js) |
+| create agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.create_agent.js) |
+| delete agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.delete_agent.js) |
+| export agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.export_agent.js) |
+| get agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.get_agent.js) |
+| get agent validation result | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.get_agent_validation_result.js) |
+| get generative settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.get_generative_settings.js) |
+| list agents | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.list_agents.js) |
+| restore agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.restore_agent.js) |
+| update agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.update_agent.js) |
+| update generative settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.update_generative_settings.js) |
+| validate agent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/agents.validate_agent.js) |
+| get changelog | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/changelogs.get_changelog.js) |
+| list changelogs | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/changelogs.list_changelogs.js) |
+| delete conversation | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/conversation_history.delete_conversation.js) |
+| get conversation | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/conversation_history.get_conversation.js) |
+| list conversations | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/conversation_history.list_conversations.js) |
+| get deployment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/deployments.get_deployment.js) |
+| list deployments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/deployments.list_deployments.js) |
+| create entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/entity_types.create_entity_type.js) |
+| delete entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/entity_types.delete_entity_type.js) |
+| export entity types | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/entity_types.export_entity_types.js) |
+| get entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/entity_types.get_entity_type.js) |
+| import entity types | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/entity_types.import_entity_types.js) |
+| list entity types | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/entity_types.list_entity_types.js) |
+| update entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/entity_types.update_entity_type.js) |
+| create environment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.create_environment.js) |
+| delete environment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.delete_environment.js) |
+| deploy flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.deploy_flow.js) |
+| get environment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.get_environment.js) |
+| list continuous test results | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.list_continuous_test_results.js) |
+| list environments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.list_environments.js) |
+| lookup environment history | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.lookup_environment_history.js) |
+| run continuous test | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.run_continuous_test.js) |
+| update environment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/environments.update_environment.js) |
+| create example | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/examples.create_example.js) |
+| delete example | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/examples.delete_example.js) |
+| get example | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/examples.get_example.js) |
+| list examples | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/examples.list_examples.js) |
+| update example | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/examples.update_example.js) |
+| create experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/experiments.create_experiment.js) |
+| delete experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/experiments.delete_experiment.js) |
+| get experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/experiments.get_experiment.js) |
+| list experiments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/experiments.list_experiments.js) |
+| start experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/experiments.start_experiment.js) |
+| stop experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/experiments.stop_experiment.js) |
+| update experiment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/experiments.update_experiment.js) |
+| create flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.create_flow.js) |
+| delete flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.delete_flow.js) |
+| export flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.export_flow.js) |
+| get flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.get_flow.js) |
+| get flow validation result | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.get_flow_validation_result.js) |
+| import flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.import_flow.js) |
+| list flows | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.list_flows.js) |
+| train flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.train_flow.js) |
+| update flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.update_flow.js) |
+| validate flow | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/flows.validate_flow.js) |
+| create generator | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/generators.create_generator.js) |
+| delete generator | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/generators.delete_generator.js) |
+| get generator | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/generators.get_generator.js) |
+| list generators | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/generators.list_generators.js) |
+| update generator | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/generators.update_generator.js) |
+| create intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/intents.create_intent.js) |
+| delete intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/intents.delete_intent.js) |
+| export intents | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/intents.export_intents.js) |
+| get intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/intents.get_intent.js) |
+| import intents | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/intents.import_intents.js) |
+| list intents | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/intents.list_intents.js) |
+| update intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/intents.update_intent.js) |
+| create page | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/pages.create_page.js) |
+| delete page | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/pages.delete_page.js) |
+| get page | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/pages.get_page.js) |
+| list pages | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/pages.list_pages.js) |
+| update page | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/pages.update_page.js) |
+| create playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.create_playbook.js) |
+| create playbook version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.create_playbook_version.js) |
+| delete playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.delete_playbook.js) |
+| delete playbook version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.delete_playbook_version.js) |
+| export playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.export_playbook.js) |
+| get playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.get_playbook.js) |
+| get playbook version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.get_playbook_version.js) |
+| import playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.import_playbook.js) |
+| list playbook versions | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.list_playbook_versions.js) |
+| list playbooks | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.list_playbooks.js) |
+| restore playbook version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.restore_playbook_version.js) |
+| update playbook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/playbooks.update_playbook.js) |
+| create security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/security_settings_service.create_security_settings.js) |
+| delete security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/security_settings_service.delete_security_settings.js) |
+| get security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/security_settings_service.get_security_settings.js) |
+| list security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/security_settings_service.list_security_settings.js) |
+| update security settings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/security_settings_service.update_security_settings.js) |
+| create session entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/session_entity_types.create_session_entity_type.js) |
+| delete session entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/session_entity_types.delete_session_entity_type.js) |
+| get session entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/session_entity_types.get_session_entity_type.js) |
+| list session entity types | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/session_entity_types.list_session_entity_types.js) |
+| update session entity type | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/session_entity_types.update_session_entity_type.js) |
+| detect intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/sessions.detect_intent.js) |
+| fulfill intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/sessions.fulfill_intent.js) |
+| match intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/sessions.match_intent.js) |
+| server streaming detect intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/sessions.server_streaming_detect_intent.js) |
+| streaming detect intent | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/sessions.streaming_detect_intent.js) |
+| submit answer feedback | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/sessions.submit_answer_feedback.js) |
+| batch delete test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.batch_delete_test_cases.js) |
+| batch run test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.batch_run_test_cases.js) |
+| calculate coverage | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.calculate_coverage.js) |
+| create test case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.create_test_case.js) |
+| export test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.export_test_cases.js) |
+| get test case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.get_test_case.js) |
+| get test case result | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.get_test_case_result.js) |
+| import test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.import_test_cases.js) |
+| list test case results | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.list_test_case_results.js) |
+| list test cases | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.list_test_cases.js) |
+| run test case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.run_test_case.js) |
+| update test case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/test_cases.update_test_case.js) |
+| create tool | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.create_tool.js) |
+| create tool version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.create_tool_version.js) |
+| delete tool | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.delete_tool.js) |
+| delete tool version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.delete_tool_version.js) |
+| export tools | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.export_tools.js) |
+| get tool | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.get_tool.js) |
+| get tool version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.get_tool_version.js) |
+| list tool versions | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.list_tool_versions.js) |
+| list tools | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.list_tools.js) |
+| restore tool version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.restore_tool_version.js) |
+| update tool | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/tools.update_tool.js) |
+| create transition route group | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/transition_route_groups.create_transition_route_group.js) |
+| delete transition route group | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/transition_route_groups.delete_transition_route_group.js) |
+| get transition route group | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/transition_route_groups.get_transition_route_group.js) |
+| list transition route groups | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/transition_route_groups.list_transition_route_groups.js) |
+| update transition route group | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/transition_route_groups.update_transition_route_group.js) |
+| compare versions | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/versions.compare_versions.js) |
+| create version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/versions.create_version.js) |
+| delete version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/versions.delete_version.js) |
+| get version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/versions.get_version.js) |
+| list versions | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/versions.list_versions.js) |
+| load version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/versions.load_version.js) |
+| update version | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/versions.update_version.js) |
+| create webhook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/webhooks.create_webhook.js) |
+| delete webhook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/webhooks.delete_webhook.js) |
+| get webhook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/webhooks.get_webhook.js) |
+| list webhooks | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/webhooks.list_webhooks.js) |
+| update webhook | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples/generated/v3beta1/webhooks.update_webhook.js) |
+
+
+## Supported Node.js Versions
+
+Our client libraries follow the [Node.js release schedule](https://github.com/nodejs/release#release-schedule).
+Libraries are compatible with all current _active_ and _maintenance_ versions of
+Node.js.
+If you are using an end-of-life version of Node.js, we recommend that you update
+as soon as possible to an actively supported LTS version.
+
+Google's client libraries support legacy versions of Node.js runtimes on a
+best-efforts basis with the following warnings:
+
+* Legacy versions are not tested in continuous integration.
+* Some security patches and features cannot be backported.
+* Dependencies cannot be kept up-to-date.
+
+Client libraries targeting some end-of-life versions of Node.js are available, and
+can be installed through npm [dist-tags](https://docs.npmjs.com/cli/dist-tag).
+The dist-tags follow the naming convention `legacy-(version)`.
+For example, `npm install @google-cloud/dialogflow-cx@legacy-8` installs client libraries
+for versions compatible with Node.js 8.
+
+## Versioning
+
+This library follows [Semantic Versioning](http://semver.org/).
+
+More Information: [Google Cloud Platform Launch Stages][launch_stages]
+
+[launch_stages]: https://cloud.google.com/terms/launch-stages
+
+## Contributing
+
+Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/CONTRIBUTING.md).
+
+Please note that this `README.md`
+and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`)
+are generated from a central template.
+
+## License
+
+Apache Version 2.0
+
+See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE)
+
+[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png
+[projects]: https://console.cloud.google.com/project
+[billing]: https://support.google.com/cloud/answer/6293499#enable-billing
+[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=dialogflow.googleapis.com
+[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local
+[homepage_samples]: https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/samples
+[homepage_changelog]: https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx/CHANGELOG.md
+[homepage]: https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-dialogflow-cx
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/advanced_settings.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/advanced_settings.proto
new file mode 100644
index 000000000000..0d8e5dff8cc5
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/advanced_settings.proto
@@ -0,0 +1,130 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/field_behavior.proto";
+import "google/cloud/dialogflow/cx/v3/gcs.proto";
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "AdvancedSettingsProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// Hierarchical advanced settings for agent/flow/page/fulfillment/parameter.
+// Settings exposed at lower level overrides the settings exposed at higher
+// level. Overriding occurs at the sub-setting level. For example, the
+// playback_interruption_settings at fulfillment level only overrides the
+// playback_interruption_settings at the agent level, leaving other settings
+// at the agent level unchanged.
+//
+// DTMF settings does not override each other. DTMF settings set at different
+// levels define DTMF detections running in parallel.
+//
+// Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.
+message AdvancedSettings {
+ // Define behaviors of speech to text detection.
+ message SpeechSettings {
+ // Sensitivity of the speech model that detects the end of speech.
+ // Scale from 0 to 100.
+ int32 endpointer_sensitivity = 1;
+
+ // Timeout before detecting no speech.
+ google.protobuf.Duration no_speech_timeout = 2;
+
+ // Use timeout based endpointing, interpreting endpointer sensitivity as
+ // seconds of timeout value.
+ bool use_timeout_based_endpointing = 3;
+
+ // Mapping from language to Speech-to-Text model. The mapped Speech-to-Text
+ // model will be selected for requests from its corresponding language.
+ // For more information, see
+ // [Speech
+ // models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).
+ map models = 5;
+ }
+
+ // Define behaviors for DTMF (dual tone multi frequency).
+ message DtmfSettings {
+ // If true, incoming audio is processed for DTMF (dual tone multi frequency)
+ // events. For example, if the caller presses a button on their telephone
+ // keypad and DTMF processing is enabled, Dialogflow will detect the
+ // event (e.g. a "3" was pressed) in the incoming audio and pass the event
+ // to the bot to drive business logic (e.g. when 3 is pressed, return the
+ // account balance).
+ bool enabled = 1;
+
+ // Max length of DTMF digits.
+ int32 max_digits = 2;
+
+ // The digit that terminates a DTMF digit sequence.
+ string finish_digit = 3;
+
+ // Interdigit timeout setting for matching dtmf input to regex.
+ google.protobuf.Duration interdigit_timeout_duration = 6;
+
+ // Endpoint timeout setting for matching dtmf input to regex.
+ google.protobuf.Duration endpointing_timeout_duration = 7;
+ }
+
+ // Define behaviors on logging.
+ message LoggingSettings {
+ // Enables Google Cloud Logging.
+ bool enable_stackdriver_logging = 2;
+
+ // Enables DF Interaction logging.
+ bool enable_interaction_logging = 3;
+
+ // Enables consent-based end-user input redaction, if true, a pre-defined
+ // session parameter `$session.params.conversation-redaction` will be
+ // used to determine if the utterance should be redacted.
+ bool enable_consent_based_redaction = 4;
+ }
+
+ // If present, incoming audio is exported by Dialogflow to the configured
+ // Google Cloud Storage destination.
+ // Exposed at the following levels:
+ // - Agent level
+ // - Flow level
+ GcsDestination audio_export_gcs_destination = 2;
+
+ // Settings for speech to text detection.
+ // Exposed at the following levels:
+ // - Agent level
+ // - Flow level
+ // - Page level
+ // - Parameter level
+ SpeechSettings speech_settings = 3;
+
+ // Settings for DTMF.
+ // Exposed at the following levels:
+ // - Agent level
+ // - Flow level
+ // - Page level
+ // - Parameter level.
+ DtmfSettings dtmf_settings = 5;
+
+ // Settings for logging.
+ // Settings for Dialogflow History, Contact Center messages, StackDriver logs,
+ // and speech logging.
+ // Exposed at the following levels:
+ // - Agent level.
+ LoggingSettings logging_settings = 6;
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/agent.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/agent.proto
new file mode 100644
index 000000000000..0dc2abe49609
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/agent.proto
@@ -0,0 +1,752 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/cloud/dialogflow/cx/v3/advanced_settings.proto";
+import "google/cloud/dialogflow/cx/v3/audio_config.proto";
+import "google/cloud/dialogflow/cx/v3/flow.proto";
+import "google/cloud/dialogflow/cx/v3/generative_settings.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/struct.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "AgentProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+option (google.api.resource_definition) = {
+ type: "secretmanager.googleapis.com/SecretVersion"
+ pattern: "projects/{project}/secrets/{secret}/versions/{version}"
+};
+
+// Service for managing [Agents][google.cloud.dialogflow.cx.v3.Agent].
+service Agents {
+ option (google.api.default_host) = "dialogflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/dialogflow";
+
+ // Returns the list of all agents in the specified location.
+ rpc ListAgents(ListAgentsRequest) returns (ListAgentsResponse) {
+ option (google.api.http) = {
+ get: "/v3/{parent=projects/*/locations/*}/agents"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Retrieves the specified agent.
+ rpc GetAgent(GetAgentRequest) returns (Agent) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates an agent in the specified location.
+ //
+ // Note: You should always train flows prior to sending them queries. See the
+ // [training
+ // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
+ rpc CreateAgent(CreateAgentRequest) returns (Agent) {
+ option (google.api.http) = {
+ post: "/v3/{parent=projects/*/locations/*}/agents"
+ body: "agent"
+ };
+ option (google.api.method_signature) = "parent,agent";
+ }
+
+ // Updates the specified agent.
+ //
+ // Note: You should always train flows prior to sending them queries. See the
+ // [training
+ // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
+ rpc UpdateAgent(UpdateAgentRequest) returns (Agent) {
+ option (google.api.http) = {
+ patch: "/v3/{agent.name=projects/*/locations/*/agents/*}"
+ body: "agent"
+ };
+ option (google.api.method_signature) = "agent,update_mask";
+ }
+
+ // Deletes the specified agent.
+ rpc DeleteAgent(DeleteAgentRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v3/{name=projects/*/locations/*/agents/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Exports the specified agent to a binary file.
+ //
+ // This method is a [long-running
+ // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
+ // The returned `Operation` type has the following method-specific fields:
+ //
+ // - `metadata`: An empty [Struct
+ // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
+ // - `response`:
+ // [ExportAgentResponse][google.cloud.dialogflow.cx.v3.ExportAgentResponse]
+ rpc ExportAgent(ExportAgentRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v3/{name=projects/*/locations/*/agents/*}:export"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "ExportAgentResponse"
+ metadata_type: "google.protobuf.Struct"
+ };
+ }
+
+ // Restores the specified agent from a binary file.
+ //
+ // Replaces the current agent with a new one. Note that all existing resources
+ // in agent (e.g. intents, entity types, flows) will be removed.
+ //
+ // This method is a [long-running
+ // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
+ // The returned `Operation` type has the following method-specific fields:
+ //
+ // - `metadata`: An empty [Struct
+ // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
+ // - `response`: An [Empty
+ // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)
+ //
+ // Note: You should always train flows prior to sending them queries. See the
+ // [training
+ // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
+ rpc RestoreAgent(RestoreAgentRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v3/{name=projects/*/locations/*/agents/*}:restore"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "google.protobuf.Struct"
+ };
+ }
+
+ // Validates the specified agent and creates or updates validation results.
+ // The agent in draft version is validated. Please call this API after the
+ // training is completed to get the complete validation results.
+ rpc ValidateAgent(ValidateAgentRequest) returns (AgentValidationResult) {
+ option (google.api.http) = {
+ post: "/v3/{name=projects/*/locations/*/agents/*}:validate"
+ body: "*"
+ };
+ }
+
+ // Gets the latest agent validation result. Agent validation is performed
+ // when ValidateAgent is called.
+ rpc GetAgentValidationResult(GetAgentValidationResultRequest)
+ returns (AgentValidationResult) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/validationResult}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Gets the generative settings for the agent.
+ rpc GetGenerativeSettings(GetGenerativeSettingsRequest)
+ returns (GenerativeSettings) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/generativeSettings}"
+ };
+ option (google.api.method_signature) = "name,language_code";
+ }
+
+ // Updates the generative settings for the agent.
+ rpc UpdateGenerativeSettings(UpdateGenerativeSettingsRequest)
+ returns (GenerativeSettings) {
+ option (google.api.http) = {
+ patch: "/v3/{generative_settings.name=projects/*/locations/*/agents/*/generativeSettings}"
+ body: "generative_settings"
+ };
+ option (google.api.method_signature) = "generative_settings,update_mask";
+ }
+}
+
+// Settings related to speech recognition.
+message SpeechToTextSettings {
+ // Whether to use speech adaptation for speech recognition.
+ bool enable_speech_adaptation = 1;
+}
+
+// Agents are best described as Natural Language Understanding (NLU) modules
+// that transform user requests into actionable data. You can include agents
+// in your app, product, or service to determine user intent and respond to the
+// user in a natural way.
+//
+// After you create an agent, you can add
+// [Intents][google.cloud.dialogflow.cx.v3.Intent], [Entity
+// Types][google.cloud.dialogflow.cx.v3.EntityType],
+// [Flows][google.cloud.dialogflow.cx.v3.Flow],
+// [Fulfillments][google.cloud.dialogflow.cx.v3.Fulfillment],
+// [Webhooks][google.cloud.dialogflow.cx.v3.Webhook],
+// [TransitionRouteGroups][google.cloud.dialogflow.cx.v3.TransitionRouteGroup]
+// and so on to manage the conversation flows.
+message Agent {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/Agent"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}"
+ };
+
+ // Settings for connecting to Git repository for an agent.
+ message GitIntegrationSettings {
+ // Settings of integration with GitHub.
+ message GithubSettings {
+ // The unique repository display name for the GitHub repository.
+ string display_name = 1;
+
+ // The GitHub repository URI related to the agent.
+ string repository_uri = 2;
+
+ // The branch of the GitHub repository tracked for this agent.
+ string tracking_branch = 3;
+
+ // The access token used to authenticate the access to the GitHub
+ // repository.
+ string access_token = 4;
+
+ // A list of branches configured to be used from Dialogflow.
+ repeated string branches = 5;
+ }
+
+ // The git settings to specific systems.
+ oneof git_settings {
+ // GitHub settings.
+ GithubSettings github_settings = 1;
+ }
+ }
+
+ // Settings for Gen App Builder.
+ message GenAppBuilderSettings {
+ // Required. The full name of the Gen App Builder engine related to this
+ // agent if there is one. Format: `projects/{Project ID}/locations/{Location
+ // ID}/collections/{Collection ID}/engines/{Engine ID}`
+ string engine = 1 [(google.api.field_behavior) = REQUIRED];
+ }
+
+ // Settings for answer feedback collection.
+ message AnswerFeedbackSettings {
+ // Optional. If enabled, end users will be able to provide
+ // [answer feedback][google.cloud.dialogflow.cx.v3.AnswerFeedback] to
+ // Dialogflow responses. Feature works only if interaction logging is
+ // enabled in the Dialogflow agent.
+ bool enable_answer_feedback = 1 [(google.api.field_behavior) = OPTIONAL];
+ }
+
+ // Settings for end user personalization.
+ message PersonalizationSettings {
+ // Optional. Default end user metadata, used when processing DetectIntent
+ // requests. Recommended to be filled as a template instead of hard-coded
+ // value, for example { "age": "$session.params.age" }. The data will be
+ // merged with the
+ // [QueryParameters.end_user_metadata][google.cloud.dialogflow.cx.v3.QueryParameters.end_user_metadata]
+ // in
+ // [DetectIntentRequest.query_params][google.cloud.dialogflow.cx.v3.DetectIntentRequest.query_params]
+ // during query processing.
+ google.protobuf.Struct default_end_user_metadata = 1
+ [(google.api.field_behavior) = OPTIONAL];
+ }
+
+ // Settings for custom client certificates.
+ message ClientCertificateSettings {
+ // Required. The ssl certificate encoded in PEM format. This string must
+ // include the begin header and end footer lines.
+ string ssl_certificate = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The name of the SecretManager secret version resource storing
+ // the private key encoded in PEM format. Format:
+ // `projects/{project}/secrets/{secret}/versions/{version}`
+ string private_key = 2 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "secretmanager.googleapis.com/SecretVersion"
+ }
+ ];
+
+ // Optional. The name of the SecretManager secret version resource storing
+ // the passphrase. 'passphrase' should be left unset if the private key is
+ // not encrypted.
+ // Format: `projects/{project}/secrets/{secret}/versions/{version}`
+ string passphrase = 3 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.resource_reference) = {
+ type: "secretmanager.googleapis.com/SecretVersion"
+ }
+ ];
+ }
+
+ // The unique identifier of the agent.
+ // Required for the
+ // [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3.Agents.UpdateAgent]
+ // method.
+ // [Agents.CreateAgent][google.cloud.dialogflow.cx.v3.Agents.CreateAgent]
+ // populates the name automatically.
+ // Format: `projects//locations//agents/`.
+ string name = 1;
+
+ // Required. The human-readable name of the agent, unique within the location.
+ string display_name = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Immutable. The default language of the agent as a language tag.
+ // See [Language
+ // Support](https://cloud.google.com/dialogflow/cx/docs/reference/language)
+ // for a list of the currently supported language codes.
+ // This field cannot be set by the
+ // [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3.Agents.UpdateAgent]
+ // method.
+ string default_language_code = 3 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.field_behavior) = IMMUTABLE
+ ];
+
+ // The list of all languages supported by the agent (except for the
+ // `default_language_code`).
+ repeated string supported_language_codes = 4;
+
+ // Required. The time zone of the agent from the [time zone
+ // database](https://www.iana.org/time-zones), e.g., America/New_York,
+ // Europe/Paris.
+ string time_zone = 5 [(google.api.field_behavior) = REQUIRED];
+
+ // The description of the agent. The maximum length is 500 characters. If
+ // exceeded, the request is rejected.
+ string description = 6;
+
+ // The URI of the agent's avatar. Avatars are used throughout the Dialogflow
+ // console and in the self-hosted [Web
+ // Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo)
+ // integration.
+ string avatar_uri = 7;
+
+ // Speech recognition related settings.
+ SpeechToTextSettings speech_to_text_settings = 13;
+
+ // The resource to start the conversations with for the agent.
+ oneof session_entry_resource {
+ // Name of the start flow in this agent. A start flow will be automatically
+ // created when the agent is created, and can only be deleted by deleting
+ // the agent.
+ // Format:
+ // `projects//locations//agents//flows/`.
+ // Currently only the default start flow with id
+ // "00000000-0000-0000-0000-000000000000" is allowed.
+ string start_flow = 16 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Flow"
+ }];
+
+ // Name of the start playbook in this agent. A start playbook will be
+ // automatically created when the agent is created, and can only be deleted
+ // by deleting the agent.
+ // Format:
+ // `projects//locations//agents//playbooks/`.
+ // Currently only the
+ // default playbook with id
+ // "00000000-0000-0000-0000-000000000000" is allowed.
+ string start_playbook = 39 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Playbook"
+ }];
+ }
+
+ // Name of the
+ // [SecuritySettings][google.cloud.dialogflow.cx.v3.SecuritySettings]
+ // reference for the agent. Format:
+ // `projects//locations//securitySettings/`.
+ string security_settings = 17 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/SecuritySettings"
+ }];
+
+ // Indicates if stackdriver logging is enabled for the agent.
+ // Please use
+ // [agent.advanced_settings][google.cloud.dialogflow.cx.v3.AdvancedSettings.LoggingSettings]
+ // instead.
+ bool enable_stackdriver_logging = 18 [deprecated = true];
+
+ // Indicates if automatic spell correction is enabled in detect intent
+ // requests.
+ bool enable_spell_correction = 20;
+
+ // Optional. Enable training multi-lingual models for this agent. These models
+ // will be trained on all the languages supported by the agent.
+ bool enable_multi_language_training = 40
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Indicates whether the agent is locked for changes. If the agent is locked,
+ // modifications to the agent will be rejected except for [RestoreAgent][].
+ bool locked = 27;
+
+ // Hierarchical advanced settings for this agent. The settings exposed at the
+ // lower level overrides the settings exposed at the higher level.
+ AdvancedSettings advanced_settings = 22;
+
+ // Git integration settings for this agent.
+ GitIntegrationSettings git_integration_settings = 30;
+
+ // Settings on instructing the speech synthesizer on how to generate the
+ // output audio content.
+ TextToSpeechSettings text_to_speech_settings = 31;
+
+ // Gen App Builder-related agent-level settings.
+ optional GenAppBuilderSettings gen_app_builder_settings = 33;
+
+ // Optional. Answer feedback collection settings.
+ AnswerFeedbackSettings answer_feedback_settings = 38
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Settings for end user personalization.
+ PersonalizationSettings personalization_settings = 42
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Settings for custom client certificates.
+ ClientCertificateSettings client_certificate_settings = 43
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Output only. A read only boolean field reflecting Zone Separation
+ // status of the agent.
+ optional bool satisfies_pzs = 45 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.field_behavior) = OUTPUT_ONLY
+ ];
+
+ // Optional. Output only. A read only boolean field reflecting Zone Isolation
+ // status of the agent.
+ optional bool satisfies_pzi = 46 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.field_behavior) = OUTPUT_ONLY
+ ];
+}
+
+// The request message for
+// [Agents.ListAgents][google.cloud.dialogflow.cx.v3.Agents.ListAgents].
+message ListAgentsRequest {
+ // Required. The location to list all agents for.
+ // Format: `projects//locations/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Agent"
+ }
+ ];
+
+ // The maximum number of items to return in a single page. By default 100 and
+ // at most 1000.
+ int32 page_size = 2;
+
+ // The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for
+// [Agents.ListAgents][google.cloud.dialogflow.cx.v3.Agents.ListAgents].
+message ListAgentsResponse {
+ // The list of agents. There will be a maximum number of items returned based
+ // on the page_size field in the request.
+ repeated Agent agents = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no more
+ // results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for
+// [Agents.GetAgent][google.cloud.dialogflow.cx.v3.Agents.GetAgent].
+message GetAgentRequest {
+ // Required. The name of the agent.
+ // Format: `projects//locations//agents/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Agent"
+ }
+ ];
+}
+
+// The request message for
+// [Agents.CreateAgent][google.cloud.dialogflow.cx.v3.Agents.CreateAgent].
+message CreateAgentRequest {
+ // Required. The location to create a agent for.
+ // Format: `projects//locations/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Agent"
+ }
+ ];
+
+ // Required. The agent to create.
+ Agent agent = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// The request message for
+// [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3.Agents.UpdateAgent].
+message UpdateAgentRequest {
+ // Required. The agent to update.
+ Agent agent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // The mask to control which fields get updated. If the mask is not present,
+ // all fields will be updated.
+ google.protobuf.FieldMask update_mask = 2;
+}
+
+// The request message for
+// [Agents.DeleteAgent][google.cloud.dialogflow.cx.v3.Agents.DeleteAgent].
+message DeleteAgentRequest {
+ // Required. The name of the agent to delete.
+ // Format: `projects//locations//agents/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Agent"
+ }
+ ];
+}
+
+// The request message for
+// [Agents.ExportAgent][google.cloud.dialogflow.cx.v3.Agents.ExportAgent].
+message ExportAgentRequest {
+ // Data format of the exported agent.
+ enum DataFormat {
+ // Unspecified format.
+ DATA_FORMAT_UNSPECIFIED = 0;
+
+ // Agent content will be exported as raw bytes.
+ BLOB = 1;
+
+ // Agent content will be exported in JSON Package format.
+ JSON_PACKAGE = 4;
+ }
+
+ // Settings for exporting to a git branch.
+ message GitDestination {
+ // Tracking branch for the git push.
+ string tracking_branch = 1;
+
+ // Commit message for the git push.
+ string commit_message = 2;
+ }
+
+ // Required. The name of the agent to export.
+ // Format: `projects//locations//agents/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Agent"
+ }
+ ];
+
+ // Optional. The [Google Cloud
+ // Storage](https://cloud.google.com/storage/docs/) URI to export the agent
+ // to. The format of this URI must be `gs:///`. If
+ // left unspecified, the serialized agent is returned inline.
+ //
+ // Dialogflow performs a write operation for the Cloud Storage object
+ // on the caller's behalf, so your request authentication must
+ // have write permissions for the object. For more information, see
+ // [Dialogflow access
+ // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
+ string agent_uri = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The data format of the exported agent. If not specified, `BLOB`
+ // is assumed.
+ DataFormat data_format = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Environment name. If not set, draft environment is assumed.
+ // Format:
+ // `projects//locations//agents//environments/`.
+ string environment = 5 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Environment"
+ }
+ ];
+
+ // Optional. The Git branch to export the agent to.
+ GitDestination git_destination = 6 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Whether to include BigQuery Export setting.
+ bool include_bigquery_export_settings = 7
+ [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The response message for
+// [Agents.ExportAgent][google.cloud.dialogflow.cx.v3.Agents.ExportAgent].
+message ExportAgentResponse {
+ // The exported agent.
+ oneof agent {
+ // The URI to a file containing the exported agent. This field is populated
+ // if `agent_uri` is specified in
+ // [ExportAgentRequest][google.cloud.dialogflow.cx.v3.ExportAgentRequest].
+ string agent_uri = 1;
+
+ // Uncompressed raw byte content for agent. This field is populated
+ // if none of `agent_uri` and `git_destination` are specified in
+ // [ExportAgentRequest][google.cloud.dialogflow.cx.v3.ExportAgentRequest].
+ bytes agent_content = 2;
+
+ // Commit SHA of the git push. This field is populated if
+ // `git_destination` is specified in
+ // [ExportAgentRequest][google.cloud.dialogflow.cx.v3.ExportAgentRequest].
+ string commit_sha = 3;
+ }
+}
+
+// The request message for
+// [Agents.RestoreAgent][google.cloud.dialogflow.cx.v3.Agents.RestoreAgent].
+message RestoreAgentRequest {
+ // Settings for restoring from a git branch
+ message GitSource {
+ // tracking branch for the git pull
+ string tracking_branch = 1;
+ }
+
+ // Restore option.
+ enum RestoreOption {
+ // Unspecified. Treated as KEEP.
+ RESTORE_OPTION_UNSPECIFIED = 0;
+
+ // Always respect the settings from the exported agent file. It may cause
+ // a restoration failure if some settings (e.g. model type) are not
+ // supported in the target agent.
+ KEEP = 1;
+
+ // Fallback to default settings if some settings are not supported in the
+ // target agent.
+ FALLBACK = 2;
+ }
+
+ // Required. The name of the agent to restore into.
+ // Format: `projects//locations//agents/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Agent"
+ }
+ ];
+
+ // Required. The agent to restore.
+ oneof agent {
+ // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI
+ // to restore agent from. The format of this URI must be
+ // `gs:///`.
+ //
+ // Dialogflow performs a read operation for the Cloud Storage object
+ // on the caller's behalf, so your request authentication must
+ // have read permissions for the object. For more information, see
+ // [Dialogflow access
+ // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
+ string agent_uri = 2;
+
+ // Uncompressed raw byte content for agent.
+ bytes agent_content = 3;
+
+ // Setting for restoring from a git branch
+ GitSource git_source = 6;
+ }
+
+ // Agent restore mode. If not specified, `KEEP` is assumed.
+ RestoreOption restore_option = 5;
+}
+
+// The request message for
+// [Agents.ValidateAgent][google.cloud.dialogflow.cx.v3.Agents.ValidateAgent].
+message ValidateAgentRequest {
+ // Required. The agent to validate.
+ // Format: `projects//locations//agents/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Agent"
+ }
+ ];
+
+ // If not specified, the agent's default language is used.
+ string language_code = 2;
+}
+
+// The request message for
+// [Agents.GetAgentValidationResult][google.cloud.dialogflow.cx.v3.Agents.GetAgentValidationResult].
+message GetAgentValidationResultRequest {
+ // Required. The agent name.
+ // Format:
+ // `projects//locations//agents//validationResult`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/AgentValidationResult"
+ }
+ ];
+
+ // If not specified, the agent's default language is used.
+ string language_code = 2;
+}
+
+// The response message for
+// [Agents.GetAgentValidationResult][google.cloud.dialogflow.cx.v3.Agents.GetAgentValidationResult].
+message AgentValidationResult {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/AgentValidationResult"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}/validationResult"
+ };
+
+ // The unique identifier of the agent validation result.
+ // Format:
+ // `projects//locations//agents//validationResult`.
+ string name = 1;
+
+ // Contains all flow validation results.
+ repeated FlowValidationResult flow_validation_results = 2;
+}
+
+// Request for
+// [GetGenerativeSettings][google.cloud.dialogflow.cx.v3.Agents.GetGenerativeSettings]
+// RPC.
+message GetGenerativeSettingsRequest {
+ // Required. Format:
+ // `projects//locations//agents//generativeSettings`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/AgentGenerativeSettings"
+ }
+ ];
+
+ // Required. Language code of the generative settings.
+ string language_code = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for
+// [UpdateGenerativeSettings][google.cloud.dialogflow.cx.v3.Agents.UpdateGenerativeSettings]
+// RPC.
+message UpdateGenerativeSettingsRequest {
+ // Required. Generative settings to update.
+ GenerativeSettings generative_settings = 1
+ [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The mask to control which fields get updated. If the mask is not
+ // present, all fields will be updated.
+ google.protobuf.FieldMask update_mask = 2
+ [(google.api.field_behavior) = OPTIONAL];
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/audio_config.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/audio_config.proto
new file mode 100644
index 000000000000..8c17ea3b261a
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/audio_config.proto
@@ -0,0 +1,377 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "AudioConfigProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+option (google.api.resource_definition) = {
+ type: "automl.googleapis.com/Model"
+ pattern: "projects/{project}/locations/{location}/models/{model}"
+};
+
+// Audio encoding of the audio content sent in the conversational query request.
+// Refer to the
+// [Cloud Speech API
+// documentation](https://cloud.google.com/speech-to-text/docs/basics) for more
+// details.
+enum AudioEncoding {
+ // Not specified.
+ AUDIO_ENCODING_UNSPECIFIED = 0;
+
+ // Uncompressed 16-bit signed little-endian samples (Linear PCM).
+ // LINT: LEGACY_NAMES
+ AUDIO_ENCODING_LINEAR_16 = 1;
+
+ // [`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio
+ // Codec) is the recommended encoding because it is lossless (therefore
+ // recognition is not compromised) and requires only about half the
+ // bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and
+ // 24-bit samples, however, not all fields in `STREAMINFO` are supported.
+ AUDIO_ENCODING_FLAC = 2;
+
+ // 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.
+ AUDIO_ENCODING_MULAW = 3;
+
+ // Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.
+ AUDIO_ENCODING_AMR = 4;
+
+ // Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.
+ AUDIO_ENCODING_AMR_WB = 5;
+
+ // Opus encoded audio frames in Ogg container
+ // ([OggOpus](https://wiki.xiph.org/OggOpus)).
+ // `sample_rate_hertz` must be 16000.
+ AUDIO_ENCODING_OGG_OPUS = 6;
+
+ // Although the use of lossy encodings is not recommended, if a very low
+ // bitrate encoding is required, `OGG_OPUS` is highly preferred over
+ // Speex encoding. The [Speex](https://speex.org/) encoding supported by
+ // Dialogflow API has a header byte in each block, as in MIME type
+ // `audio/x-speex-with-header-byte`.
+ // It is a variant of the RTP Speex encoding defined in
+ // [RFC 5574](https://tools.ietf.org/html/rfc5574).
+ // The stream is a sequence of blocks, one block per RTP packet. Each block
+ // starts with a byte containing the length of the block, in bytes, followed
+ // by one or more frames of Speex data, padded to an integral number of
+ // bytes (octets) as specified in RFC 5574. In other words, each RTP header
+ // is replaced with a single byte containing the block length. Only Speex
+ // wideband is supported. `sample_rate_hertz` must be 16000.
+ AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7;
+
+ // 8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law.
+ AUDIO_ENCODING_ALAW = 8;
+}
+
+// Variant of the specified [Speech
+// model][google.cloud.dialogflow.cx.v3.InputAudioConfig.model] to use.
+//
+// See the [Cloud Speech
+// documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models)
+// for which models have different variants. For example, the "phone_call" model
+// has both a standard and an enhanced variant. When you use an enhanced model,
+// you will generally receive higher quality results than for a standard model.
+enum SpeechModelVariant {
+ // No model variant specified. In this case Dialogflow defaults to
+ // USE_BEST_AVAILABLE.
+ SPEECH_MODEL_VARIANT_UNSPECIFIED = 0;
+
+ // Use the best available variant of the [Speech
+ // model][InputAudioConfig.model] that the caller is eligible for.
+ USE_BEST_AVAILABLE = 1;
+
+ // Use standard model variant even if an enhanced model is available. See the
+ // [Cloud Speech
+ // documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models)
+ // for details about enhanced models.
+ USE_STANDARD = 2;
+
+ // Use an enhanced model variant:
+ //
+ // * If an enhanced variant does not exist for the given
+ // [model][google.cloud.dialogflow.cx.v3.InputAudioConfig.model] and request
+ // language, Dialogflow falls back to the standard variant.
+ //
+ // The [Cloud Speech
+ // documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models)
+ // describes which models have enhanced variants.
+ USE_ENHANCED = 3;
+}
+
+// Information for a word recognized by the speech recognizer.
+message SpeechWordInfo {
+ // The word this info is for.
+ string word = 3;
+
+ // Time offset relative to the beginning of the audio that corresponds to the
+ // start of the spoken word. This is an experimental feature and the accuracy
+ // of the time offset can vary.
+ google.protobuf.Duration start_offset = 1;
+
+ // Time offset relative to the beginning of the audio that corresponds to the
+ // end of the spoken word. This is an experimental feature and the accuracy of
+ // the time offset can vary.
+ google.protobuf.Duration end_offset = 2;
+
+ // The Speech confidence between 0.0 and 1.0 for this word. A higher number
+ // indicates an estimated greater likelihood that the recognized word is
+ // correct. The default of 0.0 is a sentinel value indicating that confidence
+ // was not set.
+ //
+ // This field is not guaranteed to be fully stable over time for the same
+ // audio input. Users should also not rely on it to always be provided.
+ float confidence = 4;
+}
+
+// Configuration of the barge-in behavior. Barge-in instructs the API to return
+// a detected utterance at a proper time while the client is playing back the
+// response audio from a previous request. When the client sees the
+// utterance, it should stop the playback and immediately get ready for
+// receiving the responses for the current request.
+//
+// The barge-in handling requires the client to start streaming audio input
+// as soon as it starts playing back the audio from the previous response. The
+// playback is modeled into two phases:
+//
+// * No barge-in phase: which goes first and during which speech detection
+// should not be carried out.
+//
+// * Barge-in phase: which follows the no barge-in phase and during which
+// the API starts speech detection and may inform the client that an utterance
+// has been detected. Note that no-speech event is not expected in this
+// phase.
+//
+// The client provides this configuration in terms of the durations of those
+// two phases. The durations are measured in terms of the audio length from the
+// start of the input audio.
+//
+// No-speech event is a response with END_OF_UTTERANCE without any transcript
+// following up.
+message BargeInConfig {
+ // Duration that is not eligible for barge-in at the beginning of the input
+ // audio.
+ google.protobuf.Duration no_barge_in_duration = 1;
+
+ // Total duration for the playback at the beginning of the input audio.
+ google.protobuf.Duration total_duration = 2;
+}
+
+// Instructs the speech recognizer on how to process the audio content.
+message InputAudioConfig {
+ // Required. Audio encoding of the audio content to process.
+ AudioEncoding audio_encoding = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Sample rate (in Hertz) of the audio content sent in the query.
+ // Refer to
+ // [Cloud Speech API
+ // documentation](https://cloud.google.com/speech-to-text/docs/basics) for
+ // more details.
+ int32 sample_rate_hertz = 2;
+
+ // Optional. If `true`, Dialogflow returns
+ // [SpeechWordInfo][google.cloud.dialogflow.cx.v3.SpeechWordInfo] in
+ // [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3.StreamingRecognitionResult]
+ // with information about the recognized speech words, e.g. start and end time
+ // offsets. If false or unspecified, Speech doesn't return any word-level
+ // information.
+ bool enable_word_info = 13;
+
+ // Optional. A list of strings containing words and phrases that the speech
+ // recognizer should recognize with higher likelihood.
+ //
+ // See [the Cloud Speech
+ // documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints)
+ // for more details.
+ repeated string phrase_hints = 4;
+
+ // Optional. Which Speech model to select for the given request.
+ // For more information, see
+ // [Speech
+ // models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).
+ string model = 7;
+
+ // Optional. Which variant of the [Speech
+ // model][google.cloud.dialogflow.cx.v3.InputAudioConfig.model] to use.
+ SpeechModelVariant model_variant = 10;
+
+ // Optional. If `false` (default), recognition does not cease until the
+ // client closes the stream.
+ // If `true`, the recognizer will detect a single spoken utterance in input
+ // audio. Recognition ceases when it detects the audio's voice has
+ // stopped or paused. In this case, once a detected intent is received, the
+ // client should close the stream and start a new request with a new stream as
+ // needed.
+ // Note: This setting is relevant only for streaming methods.
+ bool single_utterance = 8;
+
+ // Configuration of barge-in behavior during the streaming of input audio.
+ BargeInConfig barge_in_config = 15;
+
+ // If `true`, the request will opt out for STT conformer model migration.
+ // This field will be deprecated once force migration takes place in June
+ // 2024. Please refer to [Dialogflow CX Speech model
+ // migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).
+ bool opt_out_conformer_model_migration = 26;
+}
+
+// Gender of the voice as described in
+// [SSML voice element](https://www.w3.org/TR/speech-synthesis11/#edef_voice).
+enum SsmlVoiceGender {
+ // An unspecified gender, which means that the client doesn't care which
+ // gender the selected voice will have.
+ SSML_VOICE_GENDER_UNSPECIFIED = 0;
+
+ // A male voice.
+ SSML_VOICE_GENDER_MALE = 1;
+
+ // A female voice.
+ SSML_VOICE_GENDER_FEMALE = 2;
+
+ // A gender-neutral voice.
+ SSML_VOICE_GENDER_NEUTRAL = 3;
+}
+
+// Description of which voice to use for speech synthesis.
+message VoiceSelectionParams {
+ // Optional. The name of the voice. If not set, the service will choose a
+ // voice based on the other parameters such as language_code and
+ // [ssml_gender][google.cloud.dialogflow.cx.v3.VoiceSelectionParams.ssml_gender].
+ //
+ // For the list of available voices, please refer to [Supported voices and
+ // languages](https://cloud.google.com/text-to-speech/docs/voices).
+ string name = 1;
+
+ // Optional. The preferred gender of the voice. If not set, the service will
+ // choose a voice based on the other parameters such as language_code and
+ // [name][google.cloud.dialogflow.cx.v3.VoiceSelectionParams.name]. Note that
+ // this is only a preference, not requirement. If a voice of the appropriate
+ // gender is not available, the synthesizer substitutes a voice with a
+ // different gender rather than failing the request.
+ SsmlVoiceGender ssml_gender = 2;
+}
+
+// Configuration of how speech should be synthesized.
+message SynthesizeSpeechConfig {
+ // Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal
+ // native speed supported by the specific voice. 2.0 is twice as fast, and
+ // 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any
+ // other values < 0.25 or > 4.0 will return an error.
+ double speaking_rate = 1;
+
+ // Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20
+ // semitones from the original pitch. -20 means decrease 20 semitones from the
+ // original pitch.
+ double pitch = 2;
+
+ // Optional. Volume gain (in dB) of the normal native volume supported by the
+ // specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of
+ // 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)
+ // will play at approximately half the amplitude of the normal native signal
+ // amplitude. A value of +6.0 (dB) will play at approximately twice the
+ // amplitude of the normal native signal amplitude. We strongly recommend not
+ // to exceed +10 (dB) as there's usually no effective increase in loudness for
+ // any value greater than that.
+ double volume_gain_db = 3;
+
+ // Optional. An identifier which selects 'audio effects' profiles that are
+ // applied on (post synthesized) text to speech. Effects are applied on top of
+ // each other in the order they are given.
+ repeated string effects_profile_id = 5;
+
+ // Optional. The desired voice of the synthesized audio.
+ VoiceSelectionParams voice = 4;
+}
+
+// Audio encoding of the output audio format in Text-To-Speech.
+enum OutputAudioEncoding {
+ // Not specified.
+ OUTPUT_AUDIO_ENCODING_UNSPECIFIED = 0;
+
+ // Uncompressed 16-bit signed little-endian samples (Linear PCM).
+ // Audio content returned as LINEAR16 also contains a WAV header.
+ // LINT: LEGACY_NAMES
+ OUTPUT_AUDIO_ENCODING_LINEAR_16 = 1;
+
+ // MP3 audio at 64kbps.
+ OUTPUT_AUDIO_ENCODING_MP3 = 2 [deprecated = true];
+
+ // MP3 audio at 64kbps.
+ // LINT: LEGACY_NAMES
+ OUTPUT_AUDIO_ENCODING_MP3_64_KBPS = 4;
+
+ // Opus encoded audio wrapped in an ogg container. The result will be a
+ // file which can be played natively on Android, and in browsers (at least
+ // Chrome and Firefox). The quality of the encoding is considerably higher
+ // than MP3 while using approximately the same bitrate.
+ OUTPUT_AUDIO_ENCODING_OGG_OPUS = 3;
+
+ // 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.
+ OUTPUT_AUDIO_ENCODING_MULAW = 5;
+
+ // 8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law.
+ OUTPUT_AUDIO_ENCODING_ALAW = 6;
+}
+
+// Instructs the speech synthesizer how to generate the output audio content.
+message OutputAudioConfig {
+ // Required. Audio encoding of the synthesized audio content.
+ OutputAudioEncoding audio_encoding = 1
+ [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The synthesis sample rate (in hertz) for this audio. If not
+ // provided, then the synthesizer will use the default sample rate based on
+ // the audio encoding. If this is different from the voice's natural sample
+ // rate, then the synthesizer will honor this request by converting to the
+ // desired sample rate (which might result in worse audio quality).
+ int32 sample_rate_hertz = 2;
+
+ // Optional. Configuration of how speech should be synthesized.
+ // If not specified,
+ // [Agent.text_to_speech_settings][google.cloud.dialogflow.cx.v3.Agent.text_to_speech_settings]
+ // is applied.
+ SynthesizeSpeechConfig synthesize_speech_config = 3;
+}
+
+// Settings related to speech synthesizing.
+message TextToSpeechSettings {
+ // Configuration of how speech should be synthesized, mapping from language
+ // (https://cloud.google.com/dialogflow/cx/docs/reference/language) to
+ // SynthesizeSpeechConfig.
+ //
+ // These settings affect:
+ //
+ // - The [phone
+ // gateway](https://cloud.google.com/dialogflow/cx/docs/concept/integration/phone-gateway)
+ // synthesize configuration set via
+ // [Agent.text_to_speech_settings][google.cloud.dialogflow.cx.v3.Agent.text_to_speech_settings].
+ //
+ // - How speech is synthesized when invoking
+ // [session][google.cloud.dialogflow.cx.v3.Sessions] APIs.
+ // [Agent.text_to_speech_settings][google.cloud.dialogflow.cx.v3.Agent.text_to_speech_settings]
+ // only applies if
+ // [OutputAudioConfig.synthesize_speech_config][google.cloud.dialogflow.cx.v3.OutputAudioConfig.synthesize_speech_config]
+ // is not specified.
+ map synthesize_speech_configs = 1;
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/changelog.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/changelog.proto
new file mode 100644
index 000000000000..f5c186b9f689
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/changelog.proto
@@ -0,0 +1,158 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "ChangelogProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// Service for managing [Changelogs][google.cloud.dialogflow.cx.v3.Changelog].
+service Changelogs {
+ option (google.api.default_host) = "dialogflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/dialogflow";
+
+ // Returns the list of Changelogs.
+ rpc ListChangelogs(ListChangelogsRequest) returns (ListChangelogsResponse) {
+ option (google.api.http) = {
+ get: "/v3/{parent=projects/*/locations/*/agents/*}/changelogs"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Retrieves the specified Changelog.
+ rpc GetChangelog(GetChangelogRequest) returns (Changelog) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/changelogs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+}
+
+// The request message for
+// [Changelogs.ListChangelogs][google.cloud.dialogflow.cx.v3.Changelogs.ListChangelogs].
+message ListChangelogsRequest {
+ // Required. The agent containing the changelogs.
+ // Format: `projects//locations//agents/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Changelog"
+ }
+ ];
+
+ // The filter string. Supports filter by user_email, resource, type and
+ // create_time. Some examples:
+ // 1. By user email:
+ // user_email = "someone@google.com"
+ // 2. By resource name:
+ // resource = "projects/123/locations/global/agents/456/flows/789"
+ // 3. By resource display name:
+ // display_name = "my agent"
+ // 4. By action:
+ // action = "Create"
+ // 5. By type:
+ // type = "flows"
+ // 6. By create time. Currently predicates on `create_time` and
+ // `create_time_epoch_seconds` are supported:
+ // create_time_epoch_seconds > 1551790877 AND create_time <=
+ // 2017-01-15T01:30:15.01Z
+ // 7. Combination of above filters:
+ // resource = "projects/123/locations/global/agents/456/flows/789"
+ // AND user_email = "someone@google.com"
+ // AND create_time <= 2017-01-15T01:30:15.01Z
+ string filter = 2;
+
+ // The maximum number of items to return in a single page. By default 100 and
+ // at most 1000.
+ int32 page_size = 3;
+
+ // The next_page_token value returned from a previous list request.
+ string page_token = 4;
+}
+
+// The response message for
+// [Changelogs.ListChangelogs][google.cloud.dialogflow.cx.v3.Changelogs.ListChangelogs].
+message ListChangelogsResponse {
+ // The list of changelogs. There will be a maximum number of items returned
+ // based on the page_size field in the request. The changelogs will be ordered
+ // by timestamp.
+ repeated Changelog changelogs = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no more
+ // results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for
+// [Changelogs.GetChangelog][google.cloud.dialogflow.cx.v3.Changelogs.GetChangelog].
+message GetChangelogRequest {
+ // Required. The name of the changelog to get.
+ // Format:
+ // `projects//locations//agents//changelogs/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Changelog"
+ }
+ ];
+}
+
+// Changelogs represents a change made to a given agent.
+message Changelog {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/Changelog"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}/changelogs/{changelog}"
+ };
+
+ // The unique identifier of the changelog.
+ // Format:
+ // `projects//locations//agents//changelogs/`.
+ string name = 1;
+
+ // Email address of the authenticated user.
+ string user_email = 2;
+
+ // The affected resource display name of the change.
+ string display_name = 7;
+
+ // The action of the change.
+ string action = 11;
+
+ // The affected resource type.
+ string type = 8;
+
+ // The affected resource name of the change.
+ string resource = 3;
+
+ // The timestamp of the change.
+ google.protobuf.Timestamp create_time = 4;
+
+ // The affected language code of the change.
+ string language_code = 14;
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/code_block.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/code_block.proto
new file mode 100644
index 000000000000..f250d4afd902
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/code_block.proto
@@ -0,0 +1,33 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/field_behavior.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "CodeBlockProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// Represents a code block.
+message CodeBlock {
+ // Optional. Source code of the block in Python.
+ string code = 1 [(google.api.field_behavior) = OPTIONAL];
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/data_store_connection.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/data_store_connection.proto
new file mode 100644
index 000000000000..727fdc6b6820
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/data_store_connection.proto
@@ -0,0 +1,260 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/field_behavior.proto";
+import "google/protobuf/struct.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "DataStoreConnectionProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// A data store connection. It represents a data store in Discovery Engine and
+// the type of the contents it contains.
+message DataStoreConnection {
+ // The type of the connected data store.
+ DataStoreType data_store_type = 1;
+
+ // The full name of the referenced data store.
+ // Formats:
+ // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`
+ // `projects/{project}/locations/{location}/dataStores/{data_store}`
+ string data_store = 2;
+
+ // The document processing mode for the data store connection. Should only be
+ // set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is
+ // considered as DOCUMENTS, as this is the legacy mode.
+ DocumentProcessingMode document_processing_mode = 4;
+}
+
+// Type of a data store.
+// Determines how search is performed in the data store.
+enum DataStoreType {
+ // Not specified. This value indicates that the data store type is not
+ // specified, so it will not be used during search.
+ DATA_STORE_TYPE_UNSPECIFIED = 0;
+
+ // A data store that contains public web content.
+ PUBLIC_WEB = 1;
+
+ // A data store that contains unstructured private data.
+ UNSTRUCTURED = 2;
+
+ // A data store that contains structured data (for example FAQ).
+ STRUCTURED = 3;
+}
+
+// Data store connection feature output signals.
+// Might be only partially field if processing stop before the final answer.
+// Reasons for this can be, but are not limited to: empty UCS search results,
+// positive RAI check outcome, grounding failure, ...
+message DataStoreConnectionSignals {
+ // Diagnostic info related to the rewriter model call.
+ message RewriterModelCallSignals {
+ // Prompt as sent to the model.
+ string rendered_prompt = 1;
+
+ // Output of the generative model.
+ string model_output = 2;
+
+ // Name of the generative model. For example, "gemini-ultra", "gemini-pro",
+ // "gemini-1.5-flash" etc. Defaults to "Other" if the model is unknown.
+ string model = 3;
+ }
+
+ // Search snippet details.
+ message SearchSnippet {
+ // Title of the enclosing document.
+ string document_title = 1;
+
+ // Uri for the document. Present if specified for the document.
+ string document_uri = 2;
+
+ // Text included in the prompt.
+ string text = 3;
+
+ // Metadata associated with the document.
+ google.protobuf.Struct metadata = 5;
+ }
+
+ // Diagnostic info related to the answer generation model call.
+ message AnswerGenerationModelCallSignals {
+ // Prompt as sent to the model.
+ string rendered_prompt = 1;
+
+ // Output of the generative model.
+ string model_output = 2;
+
+ // Name of the generative model. For example, "gemini-ultra", "gemini-pro",
+ // "gemini-1.5-flash" etc. Defaults to "Other" if the model is unknown.
+ string model = 3;
+ }
+
+ // Answer part with citation.
+ message AnswerPart {
+ // Substring of the answer.
+ string text = 1;
+
+ // Citations for this answer part. Indices of `search_snippets`.
+ repeated int32 supporting_indices = 2;
+ }
+
+ // Snippet cited by the answer generation model.
+ message CitedSnippet {
+ // Details of the snippet.
+ SearchSnippet search_snippet = 1;
+
+ // Index of the snippet in `search_snippets` field.
+ int32 snippet_index = 2;
+ }
+
+ // Grounding signals.
+ message GroundingSignals {
+ // Represents the decision of the grounding check.
+ enum GroundingDecision {
+ // Decision not specified.
+ GROUNDING_DECISION_UNSPECIFIED = 0;
+
+ // Grounding have accepted the answer.
+ ACCEPTED_BY_GROUNDING = 1;
+
+ // Grounding have rejected the answer.
+ REJECTED_BY_GROUNDING = 2;
+ }
+
+ // Grounding score buckets.
+ enum GroundingScoreBucket {
+ // Score not specified.
+ GROUNDING_SCORE_BUCKET_UNSPECIFIED = 0;
+
+ // We have very low confidence that the answer is grounded.
+ VERY_LOW = 1;
+
+ // We have low confidence that the answer is grounded.
+ LOW = 3;
+
+ // We have medium confidence that the answer is grounded.
+ MEDIUM = 4;
+
+ // We have high confidence that the answer is grounded.
+ HIGH = 5;
+
+ // We have very high confidence that the answer is grounded.
+ VERY_HIGH = 6;
+ }
+
+ // Represents the decision of the grounding check.
+ GroundingDecision decision = 1;
+
+ // Grounding score bucket setting.
+ GroundingScoreBucket score = 2;
+ }
+
+ // Safety check results.
+ message SafetySignals {
+ // Safety decision.
+ // All kinds of check are incorporated into this final decision, including
+ // banned phrases check.
+ enum SafetyDecision {
+ // Decision not specified.
+ SAFETY_DECISION_UNSPECIFIED = 0;
+
+ // No manual or automatic safety check fired.
+ ACCEPTED_BY_SAFETY_CHECK = 1;
+
+ // One ore more safety checks fired.
+ REJECTED_BY_SAFETY_CHECK = 2;
+ }
+
+ // Specifies banned phrase match subject.
+ enum BannedPhraseMatch {
+ // No banned phrase check was executed.
+ BANNED_PHRASE_MATCH_UNSPECIFIED = 0;
+
+ // All banned phrase checks led to no match.
+ BANNED_PHRASE_MATCH_NONE = 1;
+
+ // A banned phrase matched the query.
+ BANNED_PHRASE_MATCH_QUERY = 2;
+
+ // A banned phrase matched the response.
+ BANNED_PHRASE_MATCH_RESPONSE = 3;
+ }
+
+ // Safety decision.
+ SafetyDecision decision = 1;
+
+ // Specifies banned phrase match subject.
+ BannedPhraseMatch banned_phrase_match = 2;
+
+ // The matched banned phrase if there was a match.
+ string matched_banned_phrase = 3;
+ }
+
+ // Optional. Diagnostic info related to the rewriter model call.
+ RewriterModelCallSignals rewriter_model_call_signals = 1
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Rewritten string query used for search.
+ string rewritten_query = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Search snippets included in the answer generation prompt.
+ repeated SearchSnippet search_snippets = 3
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Diagnostic info related to the answer generation model call.
+ AnswerGenerationModelCallSignals answer_generation_model_call_signals = 4
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The final compiled answer.
+ string answer = 5 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Answer parts with relevant citations.
+ // Concatenation of texts should add up the `answer` (not counting
+ // whitespaces).
+ repeated AnswerPart answer_parts = 6 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Snippets cited by the answer generation model from the most to
+ // least relevant.
+ repeated CitedSnippet cited_snippets = 7
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Grounding signals.
+ GroundingSignals grounding_signals = 8
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Safety check result.
+ SafetySignals safety_signals = 9 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The document processing mode of the data store.
+enum DocumentProcessingMode {
+ // Not specified. This should be set for STRUCTURED type data stores. Due to
+ // legacy reasons this is considered as DOCUMENTS for STRUCTURED and
+ // PUBLIC_WEB data stores.
+ DOCUMENT_PROCESSING_MODE_UNSPECIFIED = 0;
+
+ // Documents are processed as documents.
+ DOCUMENTS = 1;
+
+ // Documents are converted to chunks.
+ CHUNKS = 2;
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/deployment.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/deployment.proto
new file mode 100644
index 000000000000..5893d5782fcd
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/deployment.proto
@@ -0,0 +1,175 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "DeploymentProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// Service for managing [Deployments][google.cloud.dialogflow.cx.v3.Deployment].
+service Deployments {
+ option (google.api.default_host) = "dialogflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/dialogflow";
+
+ // Returns the list of all deployments in the specified
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ rpc ListDeployments(ListDeploymentsRequest)
+ returns (ListDeploymentsResponse) {
+ option (google.api.http) = {
+ get: "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/deployments"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Retrieves the specified
+ // [Deployment][google.cloud.dialogflow.cx.v3.Deployment].
+ rpc GetDeployment(GetDeploymentRequest) returns (Deployment) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/environments/*/deployments/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+}
+
+// Represents a deployment in an environment. A deployment happens when a flow
+// version configured to be active in the environment. You can configure running
+// pre-deployment steps, e.g. running validation test cases, experiment
+// auto-rollout, etc.
+message Deployment {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/Deployment"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}/environments/{environment}/deployments/{deployment}"
+ };
+
+ // The state of the deployment.
+ enum State {
+ // State unspecified.
+ STATE_UNSPECIFIED = 0;
+
+ // The deployment is running.
+ RUNNING = 1;
+
+ // The deployment succeeded.
+ SUCCEEDED = 2;
+
+ // The deployment failed.
+ FAILED = 3;
+ }
+
+ // Result of the deployment.
+ message Result {
+ // Results of test cases running before the deployment.
+ // Format:
+ // `projects//locations//agents//testCases//results/`.
+ repeated string deployment_test_results = 1
+ [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/TestCaseResult"
+ }];
+
+ // The name of the experiment triggered by this deployment.
+ // Format:
+ // projects//locations//agents//environments//experiments/.
+ string experiment = 2 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Experiment"
+ }];
+ }
+
+ // The name of the deployment.
+ // Format:
+ // projects//locations//agents//environments//deployments/.
+ string name = 1;
+
+ // The name of the flow version for this deployment.
+ // Format:
+ // projects//locations//agents//flows//versions/.
+ string flow_version = 2 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Version"
+ }];
+
+ // The current state of the deployment.
+ State state = 3;
+
+ // Result of the deployment.
+ Result result = 4;
+
+ // Start time of this deployment.
+ google.protobuf.Timestamp start_time = 5;
+
+ // End time of this deployment.
+ google.protobuf.Timestamp end_time = 6;
+}
+
+// The request message for
+// [Deployments.ListDeployments][google.cloud.dialogflow.cx.v3.Deployments.ListDeployments].
+message ListDeploymentsRequest {
+ // Required. The [Environment][google.cloud.dialogflow.cx.v3.Environment] to
+ // list all environments for. Format:
+ // `projects//locations//agents//environments/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Deployment"
+ }
+ ];
+
+ // The maximum number of items to return in a single page. By default 20 and
+ // at most 100.
+ int32 page_size = 2;
+
+ // The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for
+// [Deployments.ListDeployments][google.cloud.dialogflow.cx.v3.Deployments.ListDeployments].
+message ListDeploymentsResponse {
+ // The list of deployments. There will be a maximum number of items
+ // returned based on the page_size field in the request. The list may in some
+ // cases be empty or contain fewer entries than page_size even if this isn't
+ // the last page.
+ repeated Deployment deployments = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no more
+ // results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for
+// [Deployments.GetDeployment][google.cloud.dialogflow.cx.v3.Deployments.GetDeployment].
+message GetDeploymentRequest {
+ // Required. The name of the
+ // [Deployment][google.cloud.dialogflow.cx.v3.Deployment]. Format:
+ // `projects//locations//agents//environments//deployments/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Deployment"
+ }
+ ];
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/entity_type.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/entity_type.proto
new file mode 100644
index 000000000000..676737b95203
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/entity_type.proto
@@ -0,0 +1,607 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/cloud/dialogflow/cx/v3/inline.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "EntityTypeProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// Service for managing [EntityTypes][google.cloud.dialogflow.cx.v3.EntityType].
+service EntityTypes {
+ option (google.api.default_host) = "dialogflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/dialogflow";
+
+ // Retrieves the specified entity type.
+ rpc GetEntityType(GetEntityTypeRequest) returns (EntityType) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/entityTypes/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates an entity type in the specified agent.
+ //
+ // Note: You should always train a flow prior to sending it queries. See the
+ // [training
+ // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
+ rpc CreateEntityType(CreateEntityTypeRequest) returns (EntityType) {
+ option (google.api.http) = {
+ post: "/v3/{parent=projects/*/locations/*/agents/*}/entityTypes"
+ body: "entity_type"
+ };
+ option (google.api.method_signature) = "parent,entity_type";
+ }
+
+ // Updates the specified entity type.
+ //
+ // Note: You should always train a flow prior to sending it queries. See the
+ // [training
+ // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
+ rpc UpdateEntityType(UpdateEntityTypeRequest) returns (EntityType) {
+ option (google.api.http) = {
+ patch: "/v3/{entity_type.name=projects/*/locations/*/agents/*/entityTypes/*}"
+ body: "entity_type"
+ };
+ option (google.api.method_signature) = "entity_type,update_mask";
+ }
+
+ // Deletes the specified entity type.
+ //
+ // Note: You should always train a flow prior to sending it queries. See the
+ // [training
+ // documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).
+ rpc DeleteEntityType(DeleteEntityTypeRequest)
+ returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v3/{name=projects/*/locations/*/agents/*/entityTypes/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Returns the list of all entity types in the specified agent.
+ rpc ListEntityTypes(ListEntityTypesRequest)
+ returns (ListEntityTypesResponse) {
+ option (google.api.http) = {
+ get: "/v3/{parent=projects/*/locations/*/agents/*}/entityTypes"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Exports the selected entity types.
+ rpc ExportEntityTypes(ExportEntityTypesRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v3/{parent=projects/*/locations/*/agents/*}/entityTypes:export"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "ExportEntityTypesResponse"
+ metadata_type: "ExportEntityTypesMetadata"
+ };
+ }
+
+ // Imports the specified entitytypes into the agent.
+ rpc ImportEntityTypes(ImportEntityTypesRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v3/{parent=projects/*/locations/*/agents/*}/entityTypes:import"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "ImportEntityTypesResponse"
+ metadata_type: "ImportEntityTypesMetadata"
+ };
+ }
+}
+
+// Entities are extracted from user input and represent parameters that are
+// meaningful to your application. For example, a date range, a proper name
+// such as a geographic location or landmark, and so on. Entities represent
+// actionable data for your application.
+//
+// When you define an entity, you can also include synonyms that all map to
+// that entity. For example, "soft drink", "soda", "pop", and so on.
+//
+// There are three types of entities:
+//
+// * **System** - entities that are defined by the Dialogflow API for common
+// data types such as date, time, currency, and so on. A system entity is
+// represented by the `EntityType` type.
+//
+// * **Custom** - entities that are defined by you that represent
+// actionable data that is meaningful to your application. For example,
+// you could define a `pizza.sauce` entity for red or white pizza sauce,
+// a `pizza.cheese` entity for the different types of cheese on a pizza,
+// a `pizza.topping` entity for different toppings, and so on. A custom
+// entity is represented by the `EntityType` type.
+//
+// * **User** - entities that are built for an individual user such as
+// favorites, preferences, playlists, and so on. A user entity is
+// represented by the
+// [SessionEntityType][google.cloud.dialogflow.cx.v3.SessionEntityType]
+// type.
+//
+// For more information about entity types, see the [Dialogflow
+// documentation](https://cloud.google.com/dialogflow/docs/entities-overview).
+message EntityType {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/EntityType"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}/entityTypes/{entity_type}"
+ };
+
+ // Represents kinds of entities.
+ enum Kind {
+ // Not specified. This value should be never used.
+ KIND_UNSPECIFIED = 0;
+
+ // Map entity types allow mapping of a group of synonyms to a canonical
+ // value.
+ KIND_MAP = 1;
+
+ // List entity types contain a set of entries that do not map to canonical
+ // values. However, list entity types can contain references to other entity
+ // types (with or without aliases).
+ KIND_LIST = 2;
+
+ // Regexp entity types allow to specify regular expressions in entries
+ // values.
+ KIND_REGEXP = 3;
+ }
+
+ // Represents different entity type expansion modes. Automated expansion
+ // allows an agent to recognize values that have not been explicitly listed in
+ // the entity (for example, new kinds of shopping list items).
+ enum AutoExpansionMode {
+ // Auto expansion disabled for the entity.
+ AUTO_EXPANSION_MODE_UNSPECIFIED = 0;
+
+ // Allows an agent to recognize values that have not been explicitly
+ // listed in the entity.
+ AUTO_EXPANSION_MODE_DEFAULT = 1;
+ }
+
+ // An **entity entry** for an associated entity type.
+ message Entity {
+ // Required. The primary value associated with this entity entry.
+ // For example, if the entity type is *vegetable*, the value could be
+ // *scallions*.
+ //
+ // For `KIND_MAP` entity types:
+ //
+ // * A canonical value to be used in place of synonyms.
+ //
+ // For `KIND_LIST` entity types:
+ //
+ // * A string that can contain references to other entity types (with or
+ // without aliases).
+ string value = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. A collection of value synonyms. For example, if the entity type
+ // is *vegetable*, and `value` is *scallions*, a synonym could be *green
+ // onions*.
+ //
+ // For `KIND_LIST` entity types:
+ //
+ // * This collection must contain exactly one synonym equal to `value`.
+ repeated string synonyms = 2 [(google.api.field_behavior) = REQUIRED];
+ }
+
+ // An excluded entity phrase that should not be matched.
+ message ExcludedPhrase {
+ // Required. The word or phrase to be excluded.
+ string value = 1 [(google.api.field_behavior) = REQUIRED];
+ }
+
+ // The unique identifier of the entity type.
+ // Required for
+ // [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3.EntityTypes.UpdateEntityType].
+ // Format:
+ // `projects//locations//agents//entityTypes/`.
+ string name = 1;
+
+ // Required. The human-readable name of the entity type, unique within the
+ // agent.
+ string display_name = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Indicates the kind of entity type.
+ Kind kind = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Indicates whether the entity type can be automatically expanded.
+ AutoExpansionMode auto_expansion_mode = 4;
+
+ // The collection of entity entries associated with the entity type.
+ repeated Entity entities = 5;
+
+ // Collection of exceptional words and phrases that shouldn't be matched.
+ // For example, if you have a size entity type with entry `giant`(an
+ // adjective), you might consider adding `giants`(a noun) as an exclusion.
+ // If the kind of entity type is `KIND_MAP`, then the phrases specified by
+ // entities and excluded phrases should be mutually exclusive.
+ repeated ExcludedPhrase excluded_phrases = 6;
+
+ // Enables fuzzy entity extraction during classification.
+ bool enable_fuzzy_extraction = 7;
+
+ // Indicates whether parameters of the entity type should be redacted in log.
+ // If redaction is enabled, page parameters and intent parameters referring to
+ // the entity type will be replaced by parameter name when logging.
+ bool redact = 9;
+}
+
+// The request message for
+// [EntityTypes.ExportEntityTypes][google.cloud.dialogflow.cx.v3.EntityTypes.ExportEntityTypes].
+message ExportEntityTypesRequest {
+ // Data format of the exported entity types.
+ enum DataFormat {
+ // Unspecified format. Treated as `BLOB`.
+ DATA_FORMAT_UNSPECIFIED = 0;
+
+ // EntityTypes will be exported as raw bytes.
+ BLOB = 1;
+
+ // EntityTypes will be exported in JSON Package format.
+ JSON_PACKAGE = 5;
+ }
+
+ // Required. The name of the parent agent to export entity types.
+ // Format: `projects//locations//agents/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/EntityType"
+ }
+ ];
+
+ // Required. The name of the entity types to export.
+ // Format:
+ // `projects//locations//agents//entityTypes/`.
+ repeated string entity_types = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // The destination to export.
+ oneof destination {
+ // Optional. The [Google Cloud
+ // Storage](https://cloud.google.com/storage/docs/) URI to export the entity
+ // types to. The format of this URI must be
+ // `gs:///`.
+ //
+ // Dialogflow performs a write operation for the Cloud Storage object
+ // on the caller's behalf, so your request authentication must
+ // have write permissions for the object. For more information, see
+ // [Dialogflow access
+ // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
+ string entity_types_uri = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The option to return the serialized entity types inline.
+ bool entity_types_content_inline = 4
+ [(google.api.field_behavior) = OPTIONAL];
+ }
+
+ // Optional. The data format of the exported entity types. If not specified,
+ // `BLOB` is assumed.
+ DataFormat data_format = 5 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The language to retrieve the entity type for. The following
+ // fields are language dependent:
+ //
+ // * `EntityType.entities.value`
+ // * `EntityType.entities.synonyms`
+ // * `EntityType.excluded_phrases.value`
+ //
+ // If not specified, all language dependent fields will be retrieved.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow/docs/reference/language)
+ // are supported.
+ // Note: languages must be enabled in the agent before they can be used.
+ string language_code = 6 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The response message for
+// [EntityTypes.ExportEntityTypes][google.cloud.dialogflow.cx.v3.EntityTypes.ExportEntityTypes].
+message ExportEntityTypesResponse {
+ // Exported entity types can be either in cloud storage or local download.
+ oneof exported_entity_types {
+ // The URI to a file containing the exported entity types. This field is
+ // populated only if `entity_types_uri` is specified in
+ // [ExportEntityTypesRequest][google.cloud.dialogflow.cx.v3.ExportEntityTypesRequest].
+ string entity_types_uri = 1;
+
+ // Uncompressed byte content for entity types. This field is populated only
+ // if `entity_types_content_inline` is set to true in
+ // [ExportEntityTypesRequest][google.cloud.dialogflow.cx.v3.ExportEntityTypesRequest].
+ InlineDestination entity_types_content = 2;
+ }
+}
+
+// Metadata returned for the
+// [EntityTypes.ExportEntityTypes][google.cloud.dialogflow.cx.v3.EntityTypes.ExportEntityTypes]
+// long running operation.
+message ExportEntityTypesMetadata {}
+
+// The request message for
+// [EntityTypes.ImportEntityTypes][google.cloud.dialogflow.cx.v3.EntityTypes.ImportEntityTypes].
+message ImportEntityTypesRequest {
+ // Merge option when display name conflicts exist during import.
+ enum MergeOption {
+ // Unspecified. If used, system uses REPORT_CONFLICT as default.
+ MERGE_OPTION_UNSPECIFIED = 0;
+
+ // Replace the original entity type in the agent with the new entity type
+ // when display name conflicts exist.
+ REPLACE = 1;
+
+ // Merge the original entity type with the new entity type when display name
+ // conflicts exist.
+ MERGE = 2;
+
+ // Create new entity types with new display names to differentiate them from
+ // the existing entity types when display name conflicts exist.
+ RENAME = 3;
+
+ // Report conflict information if display names conflict is detected.
+ // Otherwise, import entity types.
+ REPORT_CONFLICT = 4;
+
+ // Keep the original entity type and discard the conflicting new entity type
+ // when display name conflicts exist.
+ KEEP = 5;
+ }
+
+ // Required. The agent to import the entity types into.
+ // Format: `projects//locations//agents/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/EntityType"
+ }
+ ];
+
+ // Required. The entity types to import.
+ oneof entity_types {
+ // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI
+ // to import entity types from. The format of this URI must be
+ // `gs:///`.
+ //
+ // Dialogflow performs a read operation for the Cloud Storage object
+ // on the caller's behalf, so your request authentication must
+ // have read permissions for the object. For more information, see
+ // [Dialogflow access
+ // control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).
+ string entity_types_uri = 2;
+
+ // Uncompressed byte content of entity types.
+ InlineSource entity_types_content = 3;
+ }
+
+ // Required. Merge option for importing entity types.
+ MergeOption merge_option = 4 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The target entity type to import into.
+ // Format:
+ // `projects//locations//agents//entity_types/`.
+ // If set, there should be only one entity type included in
+ // [entity_types][google.cloud.dialogflow.cx.v3.ImportEntityTypesRequest.entity_types],
+ // of which the type should match the type of the target entity type. All
+ // [entities][google.cloud.dialogflow.cx.v3.EntityType.entities] in the
+ // imported entity type will be added to the target entity type.
+ string target_entity_type = 5 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/EntityType"
+ }
+ ];
+}
+
+// The response message for
+// [EntityTypes.ImportEntityTypes][google.cloud.dialogflow.cx.v3.EntityTypes.ImportEntityTypes].
+message ImportEntityTypesResponse {
+ // Conflicting resources detected during the import process. Only filled when
+ // [REPORT_CONFLICT][ImportEntityTypesResponse.REPORT_CONFLICT] is set in the
+ // request and there are conflicts in the display names.
+ message ConflictingResources {
+ // Display names of conflicting entity types.
+ repeated string entity_type_display_names = 1;
+
+ // Display names of conflicting entities.
+ repeated string entity_display_names = 2;
+ }
+
+ // The unique identifier of the imported entity types.
+ // Format:
+ // `projects//locations//agents//entity_types/`.
+ repeated string entity_types = 1 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/EntityType"
+ }];
+
+ // Info which resources have conflicts when
+ // [REPORT_CONFLICT][ImportEntityTypesResponse.REPORT_CONFLICT] merge_option
+ // is set in ImportEntityTypesRequest.
+ ConflictingResources conflicting_resources = 2;
+}
+
+// Metadata returned for the
+// [EntityTypes.ImportEntityTypes][google.cloud.dialogflow.cx.v3.EntityTypes.ImportEntityTypes]
+// long running operation.
+message ImportEntityTypesMetadata {}
+
+// The request message for
+// [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3.EntityTypes.ListEntityTypes].
+message ListEntityTypesRequest {
+ // Required. The agent to list all entity types for.
+ // Format: `projects//locations//agents/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/EntityType"
+ }
+ ];
+
+ // The language to list entity types for. The following fields are language
+ // dependent:
+ //
+ // * `EntityType.entities.value`
+ // * `EntityType.entities.synonyms`
+ // * `EntityType.excluded_phrases.value`
+ //
+ // If not specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
+ // are supported.
+ // Note: languages must be enabled in the agent before they can be used.
+ string language_code = 2;
+
+ // The maximum number of items to return in a single page. By default 100 and
+ // at most 1000.
+ int32 page_size = 3;
+
+ // The next_page_token value returned from a previous list request.
+ string page_token = 4;
+}
+
+// The response message for
+// [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3.EntityTypes.ListEntityTypes].
+message ListEntityTypesResponse {
+ // The list of entity types. There will be a maximum number of items returned
+ // based on the page_size field in the request.
+ repeated EntityType entity_types = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for
+// [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3.EntityTypes.GetEntityType].
+message GetEntityTypeRequest {
+ // Required. The name of the entity type.
+ // Format:
+ // `projects//locations//agents//entityTypes/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/EntityType"
+ }
+ ];
+
+ // The language to retrieve the entity type for. The following fields are
+ // language dependent:
+ //
+ // * `EntityType.entities.value`
+ // * `EntityType.entities.synonyms`
+ // * `EntityType.excluded_phrases.value`
+ //
+ // If not specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
+ // are supported.
+ // Note: languages must be enabled in the agent before they can be used.
+ string language_code = 2;
+}
+
+// The request message for
+// [EntityTypes.CreateEntityType][google.cloud.dialogflow.cx.v3.EntityTypes.CreateEntityType].
+message CreateEntityTypeRequest {
+ // Required. The agent to create a entity type for.
+ // Format: `projects//locations//agents/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/EntityType"
+ }
+ ];
+
+ // Required. The entity type to create.
+ EntityType entity_type = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // The language of the following fields in `entity_type`:
+ //
+ // * `EntityType.entities.value`
+ // * `EntityType.entities.synonyms`
+ // * `EntityType.excluded_phrases.value`
+ //
+ // If not specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
+ // are supported.
+ // Note: languages must be enabled in the agent before they can be used.
+ string language_code = 3;
+}
+
+// The request message for
+// [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3.EntityTypes.UpdateEntityType].
+message UpdateEntityTypeRequest {
+ // Required. The entity type to update.
+ EntityType entity_type = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // The language of the following fields in `entity_type`:
+ //
+ // * `EntityType.entities.value`
+ // * `EntityType.entities.synonyms`
+ // * `EntityType.excluded_phrases.value`
+ //
+ // If not specified, the agent's default language is used.
+ // [Many
+ // languages](https://cloud.google.com/dialogflow/cx/docs/reference/language)
+ // are supported.
+ // Note: languages must be enabled in the agent before they can be used.
+ string language_code = 2;
+
+ // The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// The request message for
+// [EntityTypes.DeleteEntityType][google.cloud.dialogflow.cx.v3.EntityTypes.DeleteEntityType].
+message DeleteEntityTypeRequest {
+ // Required. The name of the entity type to delete.
+ // Format:
+ // `projects//locations//agents//entityTypes/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/EntityType"
+ }
+ ];
+
+ // This field has no effect for entity type not being used.
+ // For entity types that are used by intents or pages:
+ //
+ // * If `force` is set to false, an error will be returned with message
+ // indicating the referencing resources.
+ // * If `force` is set to true, Dialogflow will remove the entity type, as
+ // well as any references to the entity type (i.e. Page
+ // [parameter][google.cloud.dialogflow.cx.v3.Form.Parameter] of the entity
+ // type will be changed to
+ // '@sys.any' and intent
+ // [parameter][google.cloud.dialogflow.cx.v3.Intent.Parameter] of the
+ // entity type will be removed).
+ bool force = 2;
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/environment.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/environment.proto
new file mode 100644
index 000000000000..61e45323653f
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/environment.proto
@@ -0,0 +1,540 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/cloud/dialogflow/cx/v3/test_case.proto";
+import "google/cloud/dialogflow/cx/v3/webhook.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "EnvironmentProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// Service for managing
+// [Environments][google.cloud.dialogflow.cx.v3.Environment].
+service Environments {
+ option (google.api.default_host) = "dialogflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/dialogflow";
+
+ // Returns the list of all environments in the specified
+ // [Agent][google.cloud.dialogflow.cx.v3.Agent].
+ rpc ListEnvironments(ListEnvironmentsRequest)
+ returns (ListEnvironmentsResponse) {
+ option (google.api.http) = {
+ get: "/v3/{parent=projects/*/locations/*/agents/*}/environments"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Retrieves the specified
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ rpc GetEnvironment(GetEnvironmentRequest) returns (Environment) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/environments/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates an [Environment][google.cloud.dialogflow.cx.v3.Environment] in the
+ // specified [Agent][google.cloud.dialogflow.cx.v3.Agent].
+ //
+ // This method is a [long-running
+ // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
+ // The returned `Operation` type has the following method-specific fields:
+ //
+ // - `metadata`: An empty [Struct
+ // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
+ // - `response`: [Environment][google.cloud.dialogflow.cx.v3.Environment]
+ rpc CreateEnvironment(CreateEnvironmentRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v3/{parent=projects/*/locations/*/agents/*}/environments"
+ body: "environment"
+ };
+ option (google.api.method_signature) = "parent,environment";
+ option (google.longrunning.operation_info) = {
+ response_type: "Environment"
+ metadata_type: "google.protobuf.Struct"
+ };
+ }
+
+ // Updates the specified
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ //
+ // This method is a [long-running
+ // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
+ // The returned `Operation` type has the following method-specific fields:
+ //
+ // - `metadata`: An empty [Struct
+ // message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)
+ // - `response`: [Environment][google.cloud.dialogflow.cx.v3.Environment]
+ rpc UpdateEnvironment(UpdateEnvironmentRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v3/{environment.name=projects/*/locations/*/agents/*/environments/*}"
+ body: "environment"
+ };
+ option (google.api.method_signature) = "environment,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Environment"
+ metadata_type: "google.protobuf.Struct"
+ };
+ }
+
+ // Deletes the specified
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ rpc DeleteEnvironment(DeleteEnvironmentRequest)
+ returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v3/{name=projects/*/locations/*/agents/*/environments/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Looks up the history of the specified
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ rpc LookupEnvironmentHistory(LookupEnvironmentHistoryRequest)
+ returns (LookupEnvironmentHistoryResponse) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/environments/*}:lookupEnvironmentHistory"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Kicks off a continuous test under the specified
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ //
+ // This method is a [long-running
+ // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
+ // The returned `Operation` type has the following method-specific fields:
+ //
+ // - `metadata`:
+ // [RunContinuousTestMetadata][google.cloud.dialogflow.cx.v3.RunContinuousTestMetadata]
+ // - `response`:
+ // [RunContinuousTestResponse][google.cloud.dialogflow.cx.v3.RunContinuousTestResponse]
+ rpc RunContinuousTest(RunContinuousTestRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v3/{environment=projects/*/locations/*/agents/*/environments/*}:runContinuousTest"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "RunContinuousTestResponse"
+ metadata_type: "RunContinuousTestMetadata"
+ };
+ }
+
+ // Fetches a list of continuous test results for a given environment.
+ rpc ListContinuousTestResults(ListContinuousTestResultsRequest)
+ returns (ListContinuousTestResultsResponse) {
+ option (google.api.http) = {
+ get: "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/continuousTestResults"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Deploys a flow to the specified
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ //
+ // This method is a [long-running
+ // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
+ // The returned `Operation` type has the following method-specific fields:
+ //
+ // - `metadata`:
+ // [DeployFlowMetadata][google.cloud.dialogflow.cx.v3.DeployFlowMetadata]
+ // - `response`:
+ // [DeployFlowResponse][google.cloud.dialogflow.cx.v3.DeployFlowResponse]
+ rpc DeployFlow(DeployFlowRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v3/{environment=projects/*/locations/*/agents/*/environments/*}:deployFlow"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "DeployFlowResponse"
+ metadata_type: "DeployFlowMetadata"
+ };
+ }
+}
+
+// Represents an environment for an agent. You can create multiple versions
+// of your agent and publish them to separate environments. When you edit an
+// agent, you are editing the draft agent. At any point, you can save the draft
+// agent as an agent version, which is an immutable snapshot of your agent. When
+// you save the draft agent, it is published to the default environment. When
+// you create agent versions, you can publish them to custom environments. You
+// can create a variety of custom environments for testing, development,
+// production, etc.
+message Environment {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/Environment"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}/environments/{environment}"
+ };
+
+ // Configuration for the version.
+ message VersionConfig {
+ // Required. Flow, playbook and tool versions are supported.
+ // Format for flow version:
+ // projects//locations//agents//flows//versions/.
+ // Format for playbook version:
+ // projects//locations//agents//playbooks//versions/.
+ // Format for tool version:
+ // projects//locations//agents//tools//versions/.
+ string version = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Version"
+ }
+ ];
+ }
+
+ // The configuration for continuous tests.
+ message TestCasesConfig {
+ // A list of test case names to run. They should be under the same agent.
+ // Format of each test case name:
+ // `projects//locations//agents//testCases/`
+ repeated string test_cases = 1 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/TestCase"
+ }];
+
+ // Whether to run test cases in
+ // [TestCasesConfig.test_cases][google.cloud.dialogflow.cx.v3.Environment.TestCasesConfig.test_cases]
+ // periodically. Default false. If set to true, run once a day.
+ bool enable_continuous_run = 2;
+
+ // Whether to run test cases in
+ // [TestCasesConfig.test_cases][google.cloud.dialogflow.cx.v3.Environment.TestCasesConfig.test_cases]
+ // before deploying a flow version to the environment. Default false.
+ bool enable_predeployment_run = 3;
+ }
+
+ // Configuration for webhooks.
+ message WebhookConfig {
+ // The list of webhooks to override for the agent environment. The webhook
+ // must exist in the agent. You can override fields in
+ // [`generic_web_service`][google.cloud.dialogflow.cx.v3.Webhook.generic_web_service]
+ // and
+ // [`service_directory`][google.cloud.dialogflow.cx.v3.Webhook.service_directory].
+ repeated Webhook webhook_overrides = 1;
+ }
+
+ // The name of the environment.
+ // Format:
+ // `projects//locations//agents//environments/`.
+ string name = 1;
+
+ // Required. The human-readable name of the environment (unique in an agent).
+ // Limit of 64 characters.
+ string display_name = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // The human-readable description of the environment. The maximum length is
+ // 500 characters. If exceeded, the request is rejected.
+ string description = 3;
+
+ // A list of configurations for flow versions. You should include version
+ // configs for all flows that are reachable from [`Start
+ // Flow`][Agent.start_flow] in the agent. Otherwise, an error will be
+ // returned.
+ repeated VersionConfig version_configs = 6;
+
+ // Output only. Update time of this environment.
+ google.protobuf.Timestamp update_time = 5
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // The test cases config for continuous tests of this environment.
+ TestCasesConfig test_cases_config = 7;
+
+ // The webhook configuration for this environment.
+ WebhookConfig webhook_config = 10;
+}
+
+// The request message for
+// [Environments.ListEnvironments][google.cloud.dialogflow.cx.v3.Environments.ListEnvironments].
+message ListEnvironmentsRequest {
+ // Required. The [Agent][google.cloud.dialogflow.cx.v3.Agent] to list all
+ // environments for. Format:
+ // `projects//locations//agents/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Environment"
+ }
+ ];
+
+ // The maximum number of items to return in a single page. By default 20 and
+ // at most 100.
+ int32 page_size = 2;
+
+ // The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for
+// [Environments.ListEnvironments][google.cloud.dialogflow.cx.v3.Environments.ListEnvironments].
+message ListEnvironmentsResponse {
+ // The list of environments. There will be a maximum number of items
+ // returned based on the page_size field in the request. The list may in some
+ // cases be empty or contain fewer entries than page_size even if this isn't
+ // the last page.
+ repeated Environment environments = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no more
+ // results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for
+// [Environments.GetEnvironment][google.cloud.dialogflow.cx.v3.Environments.GetEnvironment].
+message GetEnvironmentRequest {
+ // Required. The name of the
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment]. Format:
+ // `projects//locations//agents//environments/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Environment"
+ }
+ ];
+}
+
+// The request message for
+// [Environments.CreateEnvironment][google.cloud.dialogflow.cx.v3.Environments.CreateEnvironment].
+message CreateEnvironmentRequest {
+ // Required. The [Agent][google.cloud.dialogflow.cx.v3.Agent] to create an
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment] for. Format:
+ // `projects//locations//agents/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Environment"
+ }
+ ];
+
+ // Required. The environment to create.
+ Environment environment = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// The request message for
+// [Environments.UpdateEnvironment][google.cloud.dialogflow.cx.v3.Environments.UpdateEnvironment].
+message UpdateEnvironmentRequest {
+ // Required. The environment to update.
+ Environment environment = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 2
+ [(google.api.field_behavior) = REQUIRED];
+}
+
+// The request message for
+// [Environments.DeleteEnvironment][google.cloud.dialogflow.cx.v3.Environments.DeleteEnvironment].
+message DeleteEnvironmentRequest {
+ // Required. The name of the
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment] to delete. Format:
+ // `projects//locations//agents//environments/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Environment"
+ }
+ ];
+}
+
+// The request message for
+// [Environments.LookupEnvironmentHistory][google.cloud.dialogflow.cx.v3.Environments.LookupEnvironmentHistory].
+message LookupEnvironmentHistoryRequest {
+ // Required. Resource name of the environment to look up the history for.
+ // Format:
+ // `projects//locations//agents//environments/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Environment"
+ }
+ ];
+
+ // The maximum number of items to return in a single page. By default 100 and
+ // at most 1000.
+ int32 page_size = 2;
+
+ // The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for
+// [Environments.LookupEnvironmentHistory][google.cloud.dialogflow.cx.v3.Environments.LookupEnvironmentHistory].
+message LookupEnvironmentHistoryResponse {
+ // Represents a list of snapshots for an environment. Time of the snapshots is
+ // stored in
+ // [`update_time`][google.cloud.dialogflow.cx.v3.Environment.update_time].
+ repeated Environment environments = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no more
+ // results in the list.
+ string next_page_token = 2;
+}
+
+// Represents a result from running a test case in an agent environment.
+message ContinuousTestResult {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/ContinuousTestResult"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}/environments/{environment}/continuousTestResults/{continuous_test_result}"
+ };
+
+ // The overall result for a continuous test run in an agent environment.
+ enum AggregatedTestResult {
+ // Not specified. Should never be used.
+ AGGREGATED_TEST_RESULT_UNSPECIFIED = 0;
+
+ // All the tests passed.
+ PASSED = 1;
+
+ // At least one test did not pass.
+ FAILED = 2;
+ }
+
+ // The resource name for the continuous test result. Format:
+ // `projects//locations//agents//environments//continuousTestResults/`.
+ string name = 1;
+
+ // The result of this continuous test run, i.e. whether all the tests in this
+ // continuous test run pass or not.
+ AggregatedTestResult result = 2;
+
+ // A list of individual test case results names in this continuous test run.
+ repeated string test_case_results = 3 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/TestCaseResult"
+ }];
+
+ // Time when the continuous testing run starts.
+ google.protobuf.Timestamp run_time = 4;
+}
+
+// The request message for
+// [Environments.RunContinuousTest][google.cloud.dialogflow.cx.v3.Environments.RunContinuousTest].
+message RunContinuousTestRequest {
+ // Required. Format:
+ // `projects//locations//agents//environments/`.
+ string environment = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Environment"
+ }
+ ];
+}
+
+// The response message for
+// [Environments.RunContinuousTest][google.cloud.dialogflow.cx.v3.Environments.RunContinuousTest].
+message RunContinuousTestResponse {
+ // The result for a continuous test run.
+ ContinuousTestResult continuous_test_result = 1;
+}
+
+// Metadata returned for the
+// [Environments.RunContinuousTest][google.cloud.dialogflow.cx.v3.Environments.RunContinuousTest]
+// long running operation.
+message RunContinuousTestMetadata {
+ // The test errors.
+ repeated TestError errors = 1;
+}
+
+// The request message for
+// [Environments.ListContinuousTestResults][google.cloud.dialogflow.cx.v3.Environments.ListContinuousTestResults].
+message ListContinuousTestResultsRequest {
+ // Required. The environment to list results for.
+ // Format:
+ // `projects//locations//agents//environments/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/ContinuousTestResult"
+ }
+ ];
+
+ // The maximum number of items to return in a single page. By default 100 and
+ // at most 1000.
+ int32 page_size = 2;
+
+ // The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for [Environments.ListTestCaseResults][].
+message ListContinuousTestResultsResponse {
+ // The list of continuous test results.
+ repeated ContinuousTestResult continuous_test_results = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no more
+ // results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for
+// [Environments.DeployFlow][google.cloud.dialogflow.cx.v3.Environments.DeployFlow].
+message DeployFlowRequest {
+ // Required. The environment to deploy the flow to.
+ // Format:
+ // `projects//locations//agents//environments/`.
+ string environment = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Environment"
+ }
+ ];
+
+ // Required. The flow version to deploy.
+ // Format:
+ // `projects//locations//agents//flows//versions/`.
+ string flow_version = 2 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Version"
+ }
+ ];
+}
+
+// The response message for
+// [Environments.DeployFlow][google.cloud.dialogflow.cx.v3.Environments.DeployFlow].
+message DeployFlowResponse {
+ // The updated environment where the flow is deployed.
+ Environment environment = 1;
+
+ // The name of the flow version
+ // [Deployment][google.cloud.dialogflow.cx.v3.Deployment]. Format:
+ // `projects//locations//agents//environments//deployments/`.
+ string deployment = 2;
+}
+
+// Metadata returned for the
+// [Environments.DeployFlow][google.cloud.dialogflow.cx.v3.Environments.DeployFlow]
+// long running operation.
+message DeployFlowMetadata {
+ // Errors of running deployment tests.
+ repeated TestError test_errors = 1;
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/example.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/example.proto
new file mode 100644
index 000000000000..29c8a833b8ef
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/example.proto
@@ -0,0 +1,238 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/cloud/dialogflow/cx/v3/trace.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "ExampleProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// Service for managing [Examples][google.cloud.dialogflow.cx.v3.Example].
+service Examples {
+ option (google.api.default_host) = "dialogflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/dialogflow";
+
+ // Creates an example in the specified playbook.
+ rpc CreateExample(CreateExampleRequest) returns (Example) {
+ option (google.api.http) = {
+ post: "/v3/{parent=projects/*/locations/*/agents/*/playbooks/*}/examples"
+ body: "example"
+ };
+ option (google.api.method_signature) = "parent,example";
+ }
+
+ // Deletes the specified example.
+ rpc DeleteExample(DeleteExampleRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v3/{name=projects/*/locations/*/agents/*/playbooks/*/examples/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Returns a list of examples in the specified playbook.
+ rpc ListExamples(ListExamplesRequest) returns (ListExamplesResponse) {
+ option (google.api.http) = {
+ get: "/v3/{parent=projects/*/locations/*/agents/*/playbooks/*}/examples"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Retrieves the specified example.
+ rpc GetExample(GetExampleRequest) returns (Example) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/playbooks/*/examples/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Update the specified example.
+ rpc UpdateExample(UpdateExampleRequest) returns (Example) {
+ option (google.api.http) = {
+ patch: "/v3/{example.name=projects/*/locations/*/agents/*/playbooks/*/examples/*}"
+ body: "example"
+ };
+ option (google.api.method_signature) = "example,update_mask";
+ }
+}
+
+// The request message for
+// [Examples.CreateExample][google.cloud.dialogflow.cx.v3.Examples.CreateExample].
+message CreateExampleRequest {
+ // Required. The playbook to create an example for.
+ // Format:
+ // `projects//locations//agents//playbooks/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Example"
+ }
+ ];
+
+ // Required. The example to create.
+ Example example = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// The request message for
+// [Examples.DeleteExample][google.cloud.dialogflow.cx.v3.Examples.DeleteExample].
+message DeleteExampleRequest {
+ // Required. The name of the example to delete.
+ // Format:
+ // `projects//locations//agents//playbooks//examples/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Example"
+ }
+ ];
+}
+
+// The request message for
+// [Examples.ListExamples][google.cloud.dialogflow.cx.v3.Examples.ListExamples].
+message ListExamplesRequest {
+ // Required. The playbook to list the examples from.
+ // Format:
+ // `projects//locations//agents//playbooks/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Example"
+ }
+ ];
+
+ // Optional. The maximum number of items to return in a single page. By
+ // default 100 and at most 1000.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The [next_page_token][ListExampleResponse.next_page_token] value
+ // returned from a previous list request.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The language to list examples for.
+ // If not specified, list all examples under the playbook.
+ // Note: languages must be enabled in the agent before they can be used.
+ string language_code = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The response message for
+// [Examples.ListExamples][google.cloud.dialogflow.cx.v3.Examples.ListExamples].
+message ListExamplesResponse {
+ // The list of examples. There will be a maximum number of items returned
+ // based on the
+ // [page_size][google.cloud.dialogflow.cx.v3.ListExamplesRequest.page_size]
+ // field in the request.
+ repeated Example examples = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no more
+ // results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for
+// [Examples.GetExample][google.cloud.dialogflow.cx.v3.Examples.GetExample].
+message GetExampleRequest {
+ // Required. The name of the example.
+ // Format:
+ // `projects//locations//agents//playbooks//examples/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Example"
+ }
+ ];
+}
+
+// The request message for
+// [Examples.UpdateExample][google.cloud.dialogflow.cx.v3.Examples.UpdateExample].
+message UpdateExampleRequest {
+ // Required. The example to update.
+ Example example = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The mask to control which fields get updated. If the mask is not
+ // present, all fields will be updated.
+ google.protobuf.FieldMask update_mask = 2
+ [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Example represents a sample execution of the playbook in the conversation.
+//
+// An example consists of a list of ordered actions performed by end user
+// or Dialogflow agent according the playbook instructions to fulfill the task.
+message Example {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/Example"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}/playbooks/{playbook}/examples/{example}"
+ plural: "examples"
+ singular: "example"
+ };
+
+ // The unique identifier of the playbook example.
+ // Format:
+ // `projects//locations//agents//playbooks//examples/`.
+ string name = 1;
+
+ // Optional. The input to the playbook in the example.
+ PlaybookInput playbook_input = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The output of the playbook in the example.
+ PlaybookOutput playbook_output = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. The ordered list of actions performed by the end user and the
+ // Dialogflow agent.
+ repeated Action actions = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The display name of the example.
+ string display_name = 6 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The high level concise description of the example. The max number
+ // of characters is 200.
+ string description = 8 [(google.api.field_behavior) = OPTIONAL];
+
+ // Output only. Estimated number of tokes current example takes when sent to
+ // the LLM.
+ int64 token_count = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The timestamp of initial example creation.
+ google.protobuf.Timestamp create_time = 10
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Last time the example was updated.
+ google.protobuf.Timestamp update_time = 11
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Required. Example's output state.
+ OutputState conversation_state = 12 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The language code of the example.
+ // If not specified, the agent's default language is used.
+ // Note: languages must be enabled in the agent before they can be used.
+ // Note: example's language code is not currently used in dialogflow agents.
+ string language_code = 13 [(google.api.field_behavior) = OPTIONAL];
+}
diff --git a/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/experiment.proto b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/experiment.proto
new file mode 100644
index 000000000000..87b45ad9c98f
--- /dev/null
+++ b/owl-bot-staging/google-cloud-dialogflow-cx/protos/google/cloud/dialogflow/cx/v3/experiment.proto
@@ -0,0 +1,519 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.dialogflow.cx.v3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3";
+option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb";
+option java_multiple_files = true;
+option java_outer_classname = "ExperimentProto";
+option java_package = "com.google.cloud.dialogflow.cx.v3";
+option objc_class_prefix = "DF";
+option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
+
+// Service for managing [Experiments][google.cloud.dialogflow.cx.v3.Experiment].
+service Experiments {
+ option (google.api.default_host) = "dialogflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/dialogflow";
+
+ // Returns the list of all experiments in the specified
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ rpc ListExperiments(ListExperimentsRequest)
+ returns (ListExperimentsResponse) {
+ option (google.api.http) = {
+ get: "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/experiments"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Retrieves the specified
+ // [Experiment][google.cloud.dialogflow.cx.v3.Experiment].
+ rpc GetExperiment(GetExperimentRequest) returns (Experiment) {
+ option (google.api.http) = {
+ get: "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates an [Experiment][google.cloud.dialogflow.cx.v3.Experiment] in the
+ // specified [Environment][google.cloud.dialogflow.cx.v3.Environment].
+ rpc CreateExperiment(CreateExperimentRequest) returns (Experiment) {
+ option (google.api.http) = {
+ post: "/v3/{parent=projects/*/locations/*/agents/*/environments/*}/experiments"
+ body: "experiment"
+ };
+ option (google.api.method_signature) = "parent,experiment";
+ }
+
+ // Updates the specified
+ // [Experiment][google.cloud.dialogflow.cx.v3.Experiment].
+ rpc UpdateExperiment(UpdateExperimentRequest) returns (Experiment) {
+ option (google.api.http) = {
+ patch: "/v3/{experiment.name=projects/*/locations/*/agents/*/environments/*/experiments/*}"
+ body: "experiment"
+ };
+ option (google.api.method_signature) = "experiment,update_mask";
+ }
+
+ // Deletes the specified
+ // [Experiment][google.cloud.dialogflow.cx.v3.Experiment].
+ rpc DeleteExperiment(DeleteExperimentRequest)
+ returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Starts the specified
+ // [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. This rpc only
+ // changes the state of experiment from PENDING to RUNNING.
+ rpc StartExperiment(StartExperimentRequest) returns (Experiment) {
+ option (google.api.http) = {
+ post: "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:start"
+ body: "*"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Stops the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment].
+ // This rpc only changes the state of experiment from RUNNING to DONE.
+ rpc StopExperiment(StopExperimentRequest) returns (Experiment) {
+ option (google.api.http) = {
+ post: "/v3/{name=projects/*/locations/*/agents/*/environments/*/experiments/*}:stop"
+ body: "*"
+ };
+ option (google.api.method_signature) = "name";
+ }
+}
+
+// Represents an experiment in an environment.
+message Experiment {
+ option (google.api.resource) = {
+ type: "dialogflow.googleapis.com/Experiment"
+ pattern: "projects/{project}/locations/{location}/agents/{agent}/environments/{environment}/experiments/{experiment}"
+ };
+
+ // The state of the experiment.
+ enum State {
+ // State unspecified.
+ STATE_UNSPECIFIED = 0;
+
+ // The experiment is created but not started yet.
+ DRAFT = 1;
+
+ // The experiment is running.
+ RUNNING = 2;
+
+ // The experiment is done.
+ DONE = 3;
+
+ // The experiment with auto-rollout enabled has failed.
+ ROLLOUT_FAILED = 4;
+ }
+
+ // Definition of the experiment.
+ message Definition {
+ // The condition defines which subset of sessions are selected for
+ // this experiment. If not specified, all sessions are eligible. E.g.
+ // "query_input.language_code=en" See the [conditions
+ // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
+ string condition = 1;
+
+ // The variants of the experiment. We currently only support single variant
+ // experiment.
+ oneof variants {
+ // The flow versions as the variants of this experiment.
+ VersionVariants version_variants = 2;
+ }
+ }
+
+ // The inference result which includes an objective metric to optimize and the
+ // confidence interval.
+ message Result {
+ // Types of ratio-based metric for Dialogflow experiment.
+ enum MetricType {
+ // Metric unspecified.
+ METRIC_UNSPECIFIED = 0;
+
+ // Percentage of contained sessions without user calling back in 24 hours.
+ CONTAINED_SESSION_NO_CALLBACK_RATE = 1;
+
+ // Percentage of sessions that were handed to a human agent.
+ LIVE_AGENT_HANDOFF_RATE = 2;
+
+ // Percentage of sessions with the same user calling back.
+ CALLBACK_SESSION_RATE = 3;
+
+ // Percentage of sessions where user hung up.
+ ABANDONED_SESSION_RATE = 4;
+
+ // Percentage of sessions reached Dialogflow 'END_PAGE' or
+ // 'END_SESSION'.
+ SESSION_END_RATE = 5;
+ }
+
+ // Types of count-based metric for Dialogflow experiment.
+ enum CountType {
+ // Count type unspecified.
+ COUNT_TYPE_UNSPECIFIED = 0;
+
+ // Total number of occurrences of a 'NO_MATCH'.
+ TOTAL_NO_MATCH_COUNT = 1;
+
+ // Total number of turn counts.
+ TOTAL_TURN_COUNT = 2;
+
+ // Average turn count in a session.
+ AVERAGE_TURN_COUNT = 3;
+ }
+
+ // A confidence interval is a range of possible values for the experiment
+ // objective you are trying to measure.
+ message ConfidenceInterval {
+ // The confidence level used to construct the interval, i.e. there is X%
+ // chance that the true value is within this interval.
+ double confidence_level = 1;
+
+ // The percent change between an experiment metric's value and the value
+ // for its control.
+ double ratio = 2;
+
+ // Lower bound of the interval.
+ double lower_bound = 3;
+
+ // Upper bound of the interval.
+ double upper_bound = 4;
+ }
+
+ // Metric and corresponding confidence intervals.
+ message Metric {
+ // Ratio-based metric type. Only one of type or count_type is specified in
+ // each Metric.
+ MetricType type = 1;
+
+ // Count-based metric type. Only one of type or count_type is specified in
+ // each Metric.
+ CountType count_type = 5;
+
+ // The actual value of the metric.
+ oneof value {
+ // Ratio value of a metric.
+ double ratio = 2;
+
+ // Count value of a metric.
+ double count = 4;
+ }
+
+ // The probability that the treatment is better than all other treatments
+ // in the experiment
+ ConfidenceInterval confidence_interval = 3;
+ }
+
+ // Version variant and associated metrics.
+ message VersionMetrics {
+ // The name of the flow [Version][google.cloud.dialogflow.cx.v3.Version].
+ // Format:
+ // `projects//locations//agents//flows//versions/`.
+ string version = 1 [(google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Version"
+ }];
+
+ // The metrics and corresponding confidence intervals in the inference
+ // result.
+ repeated Metric metrics = 2;
+
+ // Number of sessions that were allocated to this version.
+ int32 session_count = 3;
+ }
+
+ // Version variants and metrics.
+ repeated VersionMetrics version_metrics = 1;
+
+ // The last time the experiment's stats data was updated. Will have default
+ // value if stats have never been computed for this experiment.
+ google.protobuf.Timestamp last_update_time = 2;
+ }
+
+ // The name of the experiment.
+ // Format:
+ // projects//locations//agents//environments//experiments/.
+ string name = 1;
+
+ // Required. The human-readable name of the experiment (unique in an
+ // environment). Limit of 64 characters.
+ string display_name = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // The human-readable description of the experiment.
+ string description = 3;
+
+ // The current state of the experiment.
+ // Transition triggered by Experiments.StartExperiment: DRAFT->RUNNING.
+ // Transition triggered by Experiments.CancelExperiment: DRAFT->DONE or
+ // RUNNING->DONE.
+ State state = 4;
+
+ // The definition of the experiment.
+ Definition definition = 5;
+
+ // The configuration for auto rollout. If set, there should be exactly two
+ // variants in the experiment (control variant being the default version of
+ // the flow), the traffic allocation for the non-control variant will
+ // gradually increase to 100% when conditions are met, and eventually
+ // replace the control variant to become the default version of the flow.
+ RolloutConfig rollout_config = 14;
+
+ // State of the auto rollout process.
+ RolloutState rollout_state = 15;
+
+ // The reason why rollout has failed. Should only be set when state is
+ // ROLLOUT_FAILED.
+ string rollout_failure_reason = 16;
+
+ // Inference result of the experiment.
+ Result result = 6;
+
+ // Creation time of this experiment.
+ google.protobuf.Timestamp create_time = 7;
+
+ // Start time of this experiment.
+ google.protobuf.Timestamp start_time = 8;
+
+ // End time of this experiment.
+ google.protobuf.Timestamp end_time = 9;
+
+ // Last update time of this experiment.
+ google.protobuf.Timestamp last_update_time = 10;
+
+ // Maximum number of days to run the experiment/rollout. If auto-rollout is
+ // not enabled, default value and maximum will be 30 days. If auto-rollout is
+ // enabled, default value and maximum will be 6 days.
+ google.protobuf.Duration experiment_length = 11;
+
+ // The history of updates to the experiment variants.
+ repeated VariantsHistory variants_history = 12;
+}
+
+// A list of flow version variants.
+message VersionVariants {
+ // A single flow version with specified traffic allocation.
+ message Variant {
+ // The name of the flow version.
+ // Format:
+ // `projects//locations//agents//flows//versions/`.
+ string version = 1;
+
+ // Percentage of the traffic which should be routed to this
+ // version of flow. Traffic allocation for a single flow must sum up to 1.0.
+ float traffic_allocation = 2;
+
+ // Whether the variant is for the control group.
+ bool is_control_group = 3;
+ }
+
+ // A list of flow version variants.
+ repeated Variant variants = 1;
+}
+
+// The history of variants update.
+message VariantsHistory {
+ // The variants updated. We currently only support single variant
+ // experiment.
+ oneof variants {
+ // The flow versions as the variants.
+ VersionVariants version_variants = 1;
+ }
+
+ // Update time of the variants.
+ google.protobuf.Timestamp update_time = 2;
+}
+
+// The configuration for auto rollout.
+message RolloutConfig {
+ // A single rollout step with specified traffic allocation.
+ message RolloutStep {
+ // The name of the rollout step;
+ string display_name = 1;
+
+ // The percentage of traffic allocated to the flow version of this rollout
+ // step. (0%, 100%].
+ int32 traffic_percent = 2;
+
+ // The minimum time that this step should last. Should be longer than 1
+ // hour. If not set, the default minimum duration for each step will be 1
+ // hour.
+ google.protobuf.Duration min_duration = 3;
+ }
+
+ // Steps to roll out a flow version. Steps should be sorted by percentage in
+ // ascending order.
+ repeated RolloutStep rollout_steps = 1;
+
+ // The conditions that are used to evaluate the success of a rollout
+ // step. If not specified, all rollout steps will proceed to the next one
+ // unless failure conditions are met. E.g. "containment_rate > 60% AND
+ // callback_rate < 20%". See the [conditions
+ // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
+ string rollout_condition = 2;
+
+ // The conditions that are used to evaluate the failure of a rollout
+ // step. If not specified, no rollout steps will fail. E.g. "containment_rate
+ // < 10% OR average_turn_count < 3". See the [conditions
+ // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
+ string failure_condition = 3;
+}
+
+// State of the auto-rollout process.
+message RolloutState {
+ // Display name of the current auto rollout step.
+ string step = 1;
+
+ // Index of the current step in the auto rollout steps list.
+ int32 step_index = 3;
+
+ // Start time of the current step.
+ google.protobuf.Timestamp start_time = 2;
+}
+
+// The request message for
+// [Experiments.ListExperiments][google.cloud.dialogflow.cx.v3.Experiments.ListExperiments].
+message ListExperimentsRequest {
+ // Required. The [Environment][google.cloud.dialogflow.cx.v3.Environment] to
+ // list all environments for. Format:
+ // `projects//locations//agents//environments/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Experiment"
+ }
+ ];
+
+ // The maximum number of items to return in a single page. By default 20 and
+ // at most 100.
+ int32 page_size = 2;
+
+ // The next_page_token value returned from a previous list request.
+ string page_token = 3;
+}
+
+// The response message for
+// [Experiments.ListExperiments][google.cloud.dialogflow.cx.v3.Experiments.ListExperiments].
+message ListExperimentsResponse {
+ // The list of experiments. There will be a maximum number of items
+ // returned based on the page_size field in the request. The list may in some
+ // cases be empty or contain fewer entries than page_size even if this isn't
+ // the last page.
+ repeated Experiment experiments = 1;
+
+ // Token to retrieve the next page of results, or empty if there are no more
+ // results in the list.
+ string next_page_token = 2;
+}
+
+// The request message for
+// [Experiments.GetExperiment][google.cloud.dialogflow.cx.v3.Experiments.GetExperiment].
+message GetExperimentRequest {
+ // Required. The name of the
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment]. Format:
+ // `projects//locations//agents//environments//experiments/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "dialogflow.googleapis.com/Experiment"
+ }
+ ];
+}
+
+// The request message for
+// [Experiments.CreateExperiment][google.cloud.dialogflow.cx.v3.Experiments.CreateExperiment].
+message CreateExperimentRequest {
+ // Required. The [Agent][google.cloud.dialogflow.cx.v3.Agent] to create an
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment] for. Format:
+ // `projects//locations//agents//environments/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "dialogflow.googleapis.com/Experiment"
+ }
+ ];
+
+ // Required. The experiment to create.
+ Experiment experiment = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// The request message for
+// [Experiments.UpdateExperiment][google.cloud.dialogflow.cx.v3.Experiments.UpdateExperiment].
+message UpdateExperimentRequest {
+ // Required. The experiment to update.
+ Experiment experiment = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The mask to control which fields get updated.
+ google.protobuf.FieldMask update_mask = 2
+ [(google.api.field_behavior) = REQUIRED];
+}
+
+// The request message for
+// [Experiments.DeleteExperiment][google.cloud.dialogflow.cx.v3.Experiments.DeleteExperiment].
+message DeleteExperimentRequest {
+ // Required. The name of the
+ // [Environment][google.cloud.dialogflow.cx.v3.Environment] to delete. Format:
+ // `projects//locations//agents//environments/