From b0b0a7074e30be01ce2f750d6a49cb242e7e1a99 Mon Sep 17 00:00:00 2001
From: Yoshi Automation Bot <yoshi-automation@google.com>
Date: Wed, 26 Aug 2020 13:02:05 -0700
Subject: [PATCH] feat: (a) Add additional binding for session with
 environment. (b) Allow force delete entity types and webhooks. (#6)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/8d48cc0f-3901-4f14-9768-47fde0733e09/targets

- [ ] To automatically regenerate this PR, check this box.

PiperOrigin-RevId: 327289448
Source-Link: https://github.com/googleapis/googleapis/commit/6ee93932840fb3ccbaaa1527d549ddc04e4812fc
---
 .../cx/v3beta1/SessionEntityTypesClient.java  |   44 +-
 .../pom.xml                                   |    4 +
 .../cx/v3beta1/EntityTypesGrpc.java           |   15 +-
 .../cx/v3beta1/SessionEntityTypesGrpc.java    |   15 +-
 .../dialogflow/cx/v3beta1/SessionsGrpc.java   |   65 +-
 .../cx/v3beta1/AudioConfigProto.java          |   12 +-
 .../dialogflow/cx/v3beta1/AudioInput.java     |   20 +-
 .../cx/v3beta1/AudioInputOrBuilder.java       |    5 +-
 .../cx/v3beta1/CreateEntityTypeRequest.java   |    6 +-
 .../cx/v3beta1/CreateFlowRequest.java         |    6 +-
 .../cx/v3beta1/CreatePageRequest.java         |   20 +-
 .../v3beta1/CreatePageRequestOrBuilder.java   |    4 +-
 .../CreateSessionEntityTypeRequest.java       |   41 +-
 ...eateSessionEntityTypeRequestOrBuilder.java |   10 +-
 .../cx/v3beta1/CreateWebhookRequest.java      |    6 +-
 .../cx/v3beta1/DeleteEntityTypeRequest.java   |  136 +-
 .../DeleteEntityTypeRequestOrBuilder.java     |   23 +
 .../cx/v3beta1/DeleteFlowRequest.java         |   26 +-
 .../v3beta1/DeleteFlowRequestOrBuilder.java   |    5 +-
 .../cx/v3beta1/DeletePageRequest.java         |   26 +-
 .../v3beta1/DeletePageRequestOrBuilder.java   |    5 +-
 .../DeleteSessionEntityTypeRequest.java       |   48 +-
 ...leteSessionEntityTypeRequestOrBuilder.java |   12 +-
 .../cx/v3beta1/DeleteWebhookRequest.java      |  128 +-
 .../DeleteWebhookRequestOrBuilder.java        |   21 +
 .../cx/v3beta1/DetectIntentRequest.java       |   35 +-
 .../v3beta1/DetectIntentRequestOrBuilder.java |   10 +-
 .../cx/v3beta1/DetectIntentResponse.java      |   24 +-
 .../DetectIntentResponseOrBuilder.java        |    6 +-
 .../dialogflow/cx/v3beta1/EntityType.java     |   50 +-
 .../cx/v3beta1/EntityTypeOrBuilder.java       |   12 +-
 .../cx/v3beta1/EntityTypeProto.java           |   77 +-
 .../dialogflow/cx/v3beta1/EventHandler.java   |   46 +-
 .../cloud/dialogflow/cx/v3beta1/Flow.java     |  161 +-
 .../dialogflow/cx/v3beta1/FlowOrBuilder.java  |   35 +-
 .../dialogflow/cx/v3beta1/FlowProto.java      |  150 +-
 .../cloud/dialogflow/cx/v3beta1/Form.java     |   10 +-
 .../cx/v3beta1/FulfillIntentResponse.java     |   24 +-
 .../FulfillIntentResponseOrBuilder.java       |    6 +-
 .../cx/v3beta1/GetEntityTypeRequest.java      |    6 +-
 .../dialogflow/cx/v3beta1/GetFlowRequest.java |    6 +-
 .../dialogflow/cx/v3beta1/GetPageRequest.java |   20 +-
 .../cx/v3beta1/GetPageRequestOrBuilder.java   |    4 +-
 .../v3beta1/GetSessionEntityTypeRequest.java  |   48 +-
 .../GetSessionEntityTypeRequestOrBuilder.java |   12 +-
 .../cx/v3beta1/GetWebhookRequest.java         |    6 +-
 .../cx/v3beta1/InputAudioConfig.java          |   61 +-
 .../cx/v3beta1/InputAudioConfigOrBuilder.java |   16 +-
 .../cx/v3beta1/ListEntityTypesRequest.java    |    6 +-
 .../cx/v3beta1/ListEntityTypesResponse.java   |    6 +-
 .../cx/v3beta1/ListFlowsRequest.java          |    6 +-
 .../cx/v3beta1/ListFlowsResponse.java         |    6 +-
 .../cx/v3beta1/ListPagesRequest.java          |   20 +-
 .../cx/v3beta1/ListPagesRequestOrBuilder.java |    4 +-
 .../cx/v3beta1/ListPagesResponse.java         |    6 +-
 .../ListSessionEntityTypesRequest.java        |   41 +-
 ...istSessionEntityTypesRequestOrBuilder.java |   10 +-
 .../ListSessionEntityTypesResponse.java       |    6 +-
 .../cx/v3beta1/ListWebhooksRequest.java       |    6 +-
 .../cx/v3beta1/ListWebhooksResponse.java      |    6 +-
 .../cloud/dialogflow/cx/v3beta1/Match.java    |   84 +-
 .../cx/v3beta1/MatchIntentRequest.java        |   35 +-
 .../v3beta1/MatchIntentRequestOrBuilder.java  |   10 +-
 .../cx/v3beta1/MatchIntentResponse.java       |  158 +-
 .../v3beta1/MatchIntentResponseOrBuilder.java |   43 +-
 .../dialogflow/cx/v3beta1/MatchOrBuilder.java |   21 +-
 .../dialogflow/cx/v3beta1/NluSettings.java    |   22 -
 .../cloud/dialogflow/cx/v3beta1/Page.java     |  182 +-
 .../cloud/dialogflow/cx/v3beta1/PageInfo.java |  477 +-
 .../cx/v3beta1/PageInfoOrBuilder.java         |   34 +-
 .../dialogflow/cx/v3beta1/PageOrBuilder.java  |   49 +-
 .../dialogflow/cx/v3beta1/QueryResult.java    |  473 +-
 .../cx/v3beta1/QueryResultOrBuilder.java      |  119 +-
 .../cx/v3beta1/ResponseMessage.java           | 7407 +++++++----------
 .../cx/v3beta1/ResponseMessageOrBuilder.java  |  105 +-
 .../cx/v3beta1/ResponseMessageProto.java      |  133 +-
 .../cx/v3beta1/SessionEntityType.java         |  177 +-
 .../v3beta1/SessionEntityTypeOrBuilder.java   |   38 +-
 .../cx/v3beta1/SessionEntityTypeProto.java    |   91 +-
 .../dialogflow/cx/v3beta1/SessionInfo.java    |  260 +-
 .../cx/v3beta1/SessionInfoOrBuilder.java      |  104 +-
 .../dialogflow/cx/v3beta1/SessionProto.java   |  102 +-
 .../cx/v3beta1/SpeechModelVariant.java        |   11 +-
 .../v3beta1/StreamingDetectIntentRequest.java |   89 +-
 ...StreamingDetectIntentRequestOrBuilder.java |   10 +-
 .../v3beta1/StreamingRecognitionResult.java   |   77 +-
 .../StreamingRecognitionResultOrBuilder.java  |   15 +-
 .../dialogflow/cx/v3beta1/TextInput.java      |   28 +-
 .../cx/v3beta1/TextInputOrBuilder.java        |    8 +-
 .../cx/v3beta1/TrainFlowRequest.java          |    6 +-
 .../cx/v3beta1/TransitionRoute.java           |  116 +-
 .../cx/v3beta1/TransitionRouteOrBuilder.java  |   20 +-
 .../cx/v3beta1/UpdateEntityTypeRequest.java   |    6 +-
 .../cx/v3beta1/UpdateFlowRequest.java         |   54 +-
 .../v3beta1/UpdateFlowRequestOrBuilder.java   |   12 +-
 .../cx/v3beta1/UpdatePageRequest.java         |   20 +-
 .../v3beta1/UpdatePageRequestOrBuilder.java   |    4 +-
 .../UpdateSessionEntityTypeRequest.java       |   78 +-
 ...dateSessionEntityTypeRequestOrBuilder.java |   18 +-
 .../cx/v3beta1/UpdateWebhookRequest.java      |    6 +-
 .../cx/v3beta1/VoiceSelectionParams.java      |   49 +-
 .../VoiceSelectionParamsOrBuilder.java        |   14 +-
 .../cloud/dialogflow/cx/v3beta1/Webhook.java  |   97 +-
 .../cx/v3beta1/WebhookOrBuilder.java          |   20 +-
 .../dialogflow/cx/v3beta1/WebhookProto.java   |  192 +-
 .../dialogflow/cx/v3beta1/WebhookRequest.java |  116 +-
 .../cx/v3beta1/WebhookRequestOrBuilder.java   |   19 +-
 .../cx/v3beta1/WebhookResponse.java           |   36 +-
 .../cx/v3beta1/WebhookResponseOrBuilder.java  |    9 +-
 .../dialogflow/cx/v3beta1/audio_config.proto  |   82 +-
 .../dialogflow/cx/v3beta1/entity_type.proto   |   51 +-
 .../cloud/dialogflow/cx/v3beta1/flow.proto    |   51 +-
 .../cloud/dialogflow/cx/v3beta1/page.proto    |  152 +-
 .../cx/v3beta1/response_message.proto         |  101 +-
 .../cloud/dialogflow/cx/v3beta1/session.proto |  178 +-
 .../cx/v3beta1/session_entity_type.proto      |  117 +-
 .../cloud/dialogflow/cx/v3beta1/webhook.proto |  158 +-
 synth.metadata                                |    4 +-
 118 files changed, 7164 insertions(+), 6635 deletions(-)

diff --git a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypesClient.java b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypesClient.java
index 9c4e4f067..c97b36bd7 100644
--- a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypesClient.java
+++ b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypesClient.java
@@ -174,7 +174,9 @@ public SessionEntityTypesStub getStub() {
    *
    * @param parent Required. The session to list all session entity types from. Format:
    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/sessions/&lt;Session ID&gt;`.
+   *     ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   *     ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session
+   *     ID&gt;`. If `Environment ID` is not specified, we assume default 'draft' environment.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final ListSessionEntityTypesPagedResponse listSessionEntityTypes(SessionName parent) {
@@ -202,7 +204,9 @@ public final ListSessionEntityTypesPagedResponse listSessionEntityTypes(SessionN
    *
    * @param parent Required. The session to list all session entity types from. Format:
    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/sessions/&lt;Session ID&gt;`.
+   *     ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   *     ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session
+   *     ID&gt;`. If `Environment ID` is not specified, we assume default 'draft' environment.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final ListSessionEntityTypesPagedResponse listSessionEntityTypes(String parent) {
@@ -309,7 +313,10 @@ public final ListSessionEntityTypesPagedResponse listSessionEntityTypes(
    *
    * @param name Required. The name of the session entity type. Format: `projects/&lt;Project
    *     ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session
-   *     ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   *     ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or `projects/&lt;Project
+   *     ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment
+   *     ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`. If `Environment ID`
+   *     is not specified, we assume default 'draft' environment.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final SessionEntityType getSessionEntityType(SessionEntityTypeName name) {
@@ -335,7 +342,10 @@ public final SessionEntityType getSessionEntityType(SessionEntityTypeName name)
    *
    * @param name Required. The name of the session entity type. Format: `projects/&lt;Project
    *     ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session
-   *     ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   *     ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or `projects/&lt;Project
+   *     ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment
+   *     ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`. If `Environment ID`
+   *     is not specified, we assume default 'draft' environment.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final SessionEntityType getSessionEntityType(String name) {
@@ -408,7 +418,9 @@ public final SessionEntityType getSessionEntityType(GetSessionEntityTypeRequest
    *
    * @param parent Required. The session to create a session entity type for. Format:
    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/sessions/&lt;Session ID&gt;`.
+   *     ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   *     ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session
+   *     ID&gt;`. If `Environment ID` is not specified, we assume default 'draft' environment.
    * @param sessionEntityType Required. The session entity type to create.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
@@ -440,7 +452,9 @@ public final SessionEntityType createSessionEntityType(
    *
    * @param parent Required. The session to create a session entity type for. Format:
    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/sessions/&lt;Session ID&gt;`.
+   *     ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   *     ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session
+   *     ID&gt;`. If `Environment ID` is not specified, we assume default 'draft' environment.
    * @param sessionEntityType Required. The session entity type to create.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
@@ -524,7 +538,11 @@ public final SessionEntityType createSessionEntityType(CreateSessionEntityTypeRe
    *
    * @param sessionEntityType Required. The session entity type to update. Format:
    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   *     ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   *     ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session
+   *     ID&gt;/entityTypes/&lt;Entity Type ID&gt;`. If `Environment ID` is not specified, we assume
+   *     default 'draft' environment.
    * @param updateMask The mask to control which fields get updated.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
@@ -599,7 +617,11 @@ public final SessionEntityType updateSessionEntityType(UpdateSessionEntityTypeRe
    *
    * @param name Required. The name of the session entity type to delete. Format:
    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   *     ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   *     ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session
+   *     ID&gt;/entityTypes/&lt;Entity Type ID&gt;`. If `Environment ID` is not specified, we assume
+   *     default 'draft' environment.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final void deleteSessionEntityType(SessionEntityTypeName name) {
@@ -625,7 +647,11 @@ public final void deleteSessionEntityType(SessionEntityTypeName name) {
    *
    * @param name Required. The name of the session entity type to delete. Format:
    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   *     ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   *     ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session
+   *     ID&gt;/entityTypes/&lt;Entity Type ID&gt;`. If `Environment ID` is not specified, we assume
+   *     default 'draft' environment.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final void deleteSessionEntityType(String name) {
diff --git a/grpc-google-cloud-dialogflow-cx-v3beta1/pom.xml b/grpc-google-cloud-dialogflow-cx-v3beta1/pom.xml
index a7696fe4c..27c8a5809 100644
--- a/grpc-google-cloud-dialogflow-cx-v3beta1/pom.xml
+++ b/grpc-google-cloud-dialogflow-cx-v3beta1/pom.xml
@@ -37,6 +37,10 @@
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
+    <dependency>
+      <groupId>com.google.api.grpc</groupId>
+      <artifactId>proto-google-common-protos</artifactId>
+    </dependency>
   </dependencies>
 
   <profiles>
diff --git a/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypesGrpc.java b/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypesGrpc.java
index d31f19492..7de173cf0 100644
--- a/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypesGrpc.java
+++ b/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypesGrpc.java
@@ -26,7 +26,8 @@
  *
  *
  * <pre>
- * Service for managing [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
+ * Service for managing
+ * [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
  * </pre>
  */
 @javax.annotation.Generated(
@@ -314,7 +315,8 @@ public EntityTypesFutureStub newStub(
    *
    *
    * <pre>
-   * Service for managing [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
+   * Service for managing
+   * [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
    * </pre>
    */
   public abstract static class EntityTypesImplBase implements io.grpc.BindableService {
@@ -433,7 +435,8 @@ public final io.grpc.ServerServiceDefinition bindService() {
    *
    *
    * <pre>
-   * Service for managing [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
+   * Service for managing
+   * [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
    * </pre>
    */
   public static final class EntityTypesStub
@@ -536,7 +539,8 @@ public void deleteEntityType(
    *
    *
    * <pre>
-   * Service for managing [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
+   * Service for managing
+   * [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
    * </pre>
    */
   public static final class EntityTypesBlockingStub
@@ -619,7 +623,8 @@ public com.google.protobuf.Empty deleteEntityType(
    *
    *
    * <pre>
-   * Service for managing [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
+   * Service for managing
+   * [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
    * </pre>
    */
   public static final class EntityTypesFutureStub
diff --git a/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypesGrpc.java b/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypesGrpc.java
index 7ebafc045..c794eba01 100644
--- a/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypesGrpc.java
+++ b/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypesGrpc.java
@@ -26,7 +26,8 @@
  *
  *
  * <pre>
- * Service for managing [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
+ * Service for managing
+ * [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
  * </pre>
  */
 @javax.annotation.Generated(
@@ -337,7 +338,8 @@ public SessionEntityTypesFutureStub newStub(
    *
    *
    * <pre>
-   * Service for managing [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
+   * Service for managing
+   * [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
    * </pre>
    */
   public abstract static class SessionEntityTypesImplBase implements io.grpc.BindableService {
@@ -459,7 +461,8 @@ public final io.grpc.ServerServiceDefinition bindService() {
    *
    *
    * <pre>
-   * Service for managing [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
+   * Service for managing
+   * [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
    * </pre>
    */
   public static final class SessionEntityTypesStub
@@ -566,7 +569,8 @@ public void deleteSessionEntityType(
    *
    *
    * <pre>
-   * Service for managing [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
+   * Service for managing
+   * [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
    * </pre>
    */
   public static final class SessionEntityTypesBlockingStub
@@ -655,7 +659,8 @@ public com.google.protobuf.Empty deleteSessionEntityType(
    *
    *
    * <pre>
-   * Service for managing [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
+   * Service for managing
+   * [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
    * </pre>
    */
   public static final class SessionEntityTypesFutureStub
diff --git a/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionsGrpc.java b/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionsGrpc.java
index ad3ac2aac..38f2d61ae 100644
--- a/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionsGrpc.java
+++ b/grpc-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionsGrpc.java
@@ -30,8 +30,9 @@
  *
  * <pre>
  * A session represents an interaction with a user. You retrieve user input
- * and pass it to the [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent] method to determine
- * user intent and respond.
+ * and pass it to the
+ * [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent]
+ * method to determine user intent and respond.
  * </pre>
  */
 @javax.annotation.Generated(
@@ -276,8 +277,9 @@ public SessionsFutureStub newStub(
    *
    * <pre>
    * A session represents an interaction with a user. You retrieve user input
-   * and pass it to the [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent] method to determine
-   * user intent and respond.
+   * and pass it to the
+   * [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent]
+   * method to determine user intent and respond.
    * </pre>
    */
   public abstract static class SessionsImplBase implements io.grpc.BindableService {
@@ -336,9 +338,13 @@ public void matchIntent(
      *
      *
      * <pre>
-     * Fulfills a matched intent returned by [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
-     * Must be called after [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent], with input from
-     * [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse]. Otherwise, the behavior is undefined.
+     * Fulfills a matched intent returned by
+     * [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
+     * Must be called after
+     * [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent],
+     * with input from
+     * [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse].
+     * Otherwise, the behavior is undefined.
      * </pre>
      */
     public void fulfillIntent(
@@ -388,8 +394,9 @@ public final io.grpc.ServerServiceDefinition bindService() {
    *
    * <pre>
    * A session represents an interaction with a user. You retrieve user input
-   * and pass it to the [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent] method to determine
-   * user intent and respond.
+   * and pass it to the
+   * [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent]
+   * method to determine user intent and respond.
    * </pre>
    */
   public static final class SessionsStub extends io.grpc.stub.AbstractAsyncStub<SessionsStub> {
@@ -464,9 +471,13 @@ public void matchIntent(
      *
      *
      * <pre>
-     * Fulfills a matched intent returned by [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
-     * Must be called after [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent], with input from
-     * [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse]. Otherwise, the behavior is undefined.
+     * Fulfills a matched intent returned by
+     * [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
+     * Must be called after
+     * [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent],
+     * with input from
+     * [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse].
+     * Otherwise, the behavior is undefined.
      * </pre>
      */
     public void fulfillIntent(
@@ -485,8 +496,9 @@ public void fulfillIntent(
    *
    * <pre>
    * A session represents an interaction with a user. You retrieve user input
-   * and pass it to the [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent] method to determine
-   * user intent and respond.
+   * and pass it to the
+   * [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent]
+   * method to determine user intent and respond.
    * </pre>
    */
   public static final class SessionsBlockingStub
@@ -532,9 +544,13 @@ public com.google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse matchIntent(
      *
      *
      * <pre>
-     * Fulfills a matched intent returned by [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
-     * Must be called after [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent], with input from
-     * [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse]. Otherwise, the behavior is undefined.
+     * Fulfills a matched intent returned by
+     * [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
+     * Must be called after
+     * [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent],
+     * with input from
+     * [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse].
+     * Otherwise, the behavior is undefined.
      * </pre>
      */
     public com.google.cloud.dialogflow.cx.v3beta1.FulfillIntentResponse fulfillIntent(
@@ -548,8 +564,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.FulfillIntentResponse fulfillInten
    *
    * <pre>
    * A session represents an interaction with a user. You retrieve user input
-   * and pass it to the [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent] method to determine
-   * user intent and respond.
+   * and pass it to the
+   * [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent]
+   * method to determine user intent and respond.
    * </pre>
    */
   public static final class SessionsFutureStub
@@ -599,9 +616,13 @@ protected SessionsFutureStub build(io.grpc.Channel channel, io.grpc.CallOptions
      *
      *
      * <pre>
-     * Fulfills a matched intent returned by [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
-     * Must be called after [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent], with input from
-     * [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse]. Otherwise, the behavior is undefined.
+     * Fulfills a matched intent returned by
+     * [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
+     * Must be called after
+     * [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent],
+     * with input from
+     * [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse].
+     * Otherwise, the behavior is undefined.
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioConfigProto.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioConfigProto.java
index b24b909f6..09342ae35 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioConfigProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioConfigProto.java
@@ -58,10 +58,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n5google/cloud/dialogflow/cx/v3beta1/aud"
           + "io_config.proto\022\"google.cloud.dialogflow"
-          + ".cx.v3beta1\032\037google/api/field_behavior.p"
-          + "roto\032\031google/api/resource.proto\032\036google/"
-          + "protobuf/duration.proto\032\034google/api/anno"
-          + "tations.proto\"\222\001\n\016SpeechWordInfo\022\014\n\004word"
+          + ".cx.v3beta1\032\034google/api/annotations.prot"
+          + "o\032\037google/api/field_behavior.proto\032\031goog"
+          + "le/api/resource.proto\032\036google/protobuf/d"
+          + "uration.proto\"\222\001\n\016SpeechWordInfo\022\014\n\004word"
           + "\030\003 \001(\t\022/\n\014start_offset\030\001 \001(\0132\031.google.pr"
           + "otobuf.Duration\022-\n\nend_offset\030\002 \001(\0132\031.go"
           + "ogle.protobuf.Duration\022\022\n\nconfidence\030\004 \001"
@@ -115,10 +115,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
             descriptorData,
             new com.google.protobuf.Descriptors.FileDescriptor[] {
+              com.google.api.AnnotationsProto.getDescriptor(),
               com.google.api.FieldBehaviorProto.getDescriptor(),
               com.google.api.ResourceProto.getDescriptor(),
               com.google.protobuf.DurationProto.getDescriptor(),
-              com.google.api.AnnotationsProto.getDescriptor(),
             });
     internal_static_google_cloud_dialogflow_cx_v3beta1_SpeechWordInfo_descriptor =
         getDescriptor().getMessageTypes().get(0);
@@ -171,10 +171,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
     com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
         descriptor, registry);
+    com.google.api.AnnotationsProto.getDescriptor();
     com.google.api.FieldBehaviorProto.getDescriptor();
     com.google.api.ResourceProto.getDescriptor();
     com.google.protobuf.DurationProto.getDescriptor();
-    com.google.api.AnnotationsProto.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioInput.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioInput.java
index 8a6b70203..149fe729c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioInput.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioInput.java
@@ -188,8 +188,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.InputAudioConfigOrBuilder getConfi
    * <pre>
    * The natural language speech audio to be processed.
    * A single request can contain up to 1 minute of speech audio data.
-   * The [transcribed text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot contain more than 256
-   * bytes.
+   * The [transcribed
+   * text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot
+   * contain more than 256 bytes.
    * For non-streaming audio detect intent, both `config` and `audio` must be
    * provided.
    * For streaming audio detect intent, `config` must be provided in
@@ -761,8 +762,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.InputAudioConfigOrBuilder getConfi
      * <pre>
      * The natural language speech audio to be processed.
      * A single request can contain up to 1 minute of speech audio data.
-     * The [transcribed text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot contain more than 256
-     * bytes.
+     * The [transcribed
+     * text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot
+     * contain more than 256 bytes.
      * For non-streaming audio detect intent, both `config` and `audio` must be
      * provided.
      * For streaming audio detect intent, `config` must be provided in
@@ -783,8 +785,9 @@ public com.google.protobuf.ByteString getAudio() {
      * <pre>
      * The natural language speech audio to be processed.
      * A single request can contain up to 1 minute of speech audio data.
-     * The [transcribed text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot contain more than 256
-     * bytes.
+     * The [transcribed
+     * text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot
+     * contain more than 256 bytes.
      * For non-streaming audio detect intent, both `config` and `audio` must be
      * provided.
      * For streaming audio detect intent, `config` must be provided in
@@ -811,8 +814,9 @@ public Builder setAudio(com.google.protobuf.ByteString value) {
      * <pre>
      * The natural language speech audio to be processed.
      * A single request can contain up to 1 minute of speech audio data.
-     * The [transcribed text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot contain more than 256
-     * bytes.
+     * The [transcribed
+     * text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot
+     * contain more than 256 bytes.
      * For non-streaming audio detect intent, both `config` and `audio` must be
      * provided.
      * For streaming audio detect intent, `config` must be provided in
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioInputOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioInputOrBuilder.java
index d5ee628a0..91ada388d 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioInputOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/AudioInputOrBuilder.java
@@ -70,8 +70,9 @@ public interface AudioInputOrBuilder
    * <pre>
    * The natural language speech audio to be processed.
    * A single request can contain up to 1 minute of speech audio data.
-   * The [transcribed text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot contain more than 256
-   * bytes.
+   * The [transcribed
+   * text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot
+   * contain more than 256 bytes.
    * For non-streaming audio detect intent, both `config` and `audio` must be
    * provided.
    * For streaming audio detect intent, `config` must be provided in
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateEntityTypeRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateEntityTypeRequest.java
index ef03e8132..2ff323b16 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateEntityTypeRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateEntityTypeRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [EntityTypes.CreateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.CreateEntityType].
+ * The request message for
+ * [EntityTypes.CreateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.CreateEntityType].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreateEntityTypeRequest}
@@ -497,7 +498,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [EntityTypes.CreateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.CreateEntityType].
+   * The request message for
+   * [EntityTypes.CreateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.CreateEntityType].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreateEntityTypeRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateFlowRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateFlowRequest.java
index ca560291e..9d1b671b6 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateFlowRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateFlowRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Flows.CreateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow].
+ * The request message for
+ * [Flows.CreateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreateFlowRequest}
@@ -492,7 +493,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Flows.CreateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow].
+   * The request message for
+   * [Flows.CreateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreateFlowRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreatePageRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreatePageRequest.java
index fd39ad488..2521c4a07 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreatePageRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreatePageRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage].
+ * The request message for
+ * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreatePageRequest}
@@ -254,7 +255,7 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageOrBuilder getPageOrBuilder() {
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -288,7 +289,7 @@ public java.lang.String getLanguageCode() {
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -502,7 +503,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage].
+   * The request message for
+   * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreatePageRequest}
@@ -1016,7 +1018,7 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageOrBuilder getPageOrBuilder() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -1049,7 +1051,7 @@ public java.lang.String getLanguageCode() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -1082,7 +1084,7 @@ public com.google.protobuf.ByteString getLanguageCodeBytes() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -1114,7 +1116,7 @@ public Builder setLanguageCode(java.lang.String value) {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -1142,7 +1144,7 @@ public Builder clearLanguageCode() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreatePageRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreatePageRequestOrBuilder.java
index f6d3b3f67..fb4ec2381 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreatePageRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreatePageRequestOrBuilder.java
@@ -105,7 +105,7 @@ public interface CreatePageRequestOrBuilder
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -128,7 +128,7 @@ public interface CreatePageRequestOrBuilder
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateSessionEntityTypeRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateSessionEntityTypeRequest.java
index 8abc93795..c13c4a32a 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateSessionEntityTypeRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateSessionEntityTypeRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [SessionEntityTypes.CreateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.CreateSessionEntityType].
+ * The request message for
+ * [SessionEntityTypes.CreateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.CreateSessionEntityType].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreateSessionEntityTypeRequest}
@@ -137,7 +138,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * <pre>
    * Required. The session to create a session entity type for.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -164,7 +168,10 @@ public java.lang.String getParent() {
    * <pre>
    * Required. The session to create a session entity type for.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -420,7 +427,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [SessionEntityTypes.CreateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.CreateSessionEntityType].
+   * The request message for
+   * [SessionEntityTypes.CreateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.CreateSessionEntityType].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreateSessionEntityTypeRequest}
@@ -603,7 +611,10 @@ public Builder mergeFrom(
      * <pre>
      * Required. The session to create a session entity type for.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -629,7 +640,10 @@ public java.lang.String getParent() {
      * <pre>
      * Required. The session to create a session entity type for.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -655,7 +669,10 @@ public com.google.protobuf.ByteString getParentBytes() {
      * <pre>
      * Required. The session to create a session entity type for.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -680,7 +697,10 @@ public Builder setParent(java.lang.String value) {
      * <pre>
      * Required. The session to create a session entity type for.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -701,7 +721,10 @@ public Builder clearParent() {
      * <pre>
      * Required. The session to create a session entity type for.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateSessionEntityTypeRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateSessionEntityTypeRequestOrBuilder.java
index 89883e2a9..8f3dc4070 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateSessionEntityTypeRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateSessionEntityTypeRequestOrBuilder.java
@@ -29,7 +29,10 @@ public interface CreateSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The session to create a session entity type for.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -45,7 +48,10 @@ public interface CreateSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The session to create a session entity type for.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateWebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateWebhookRequest.java
index 052aca789..8b0dec91d 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateWebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/CreateWebhookRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook].
+ * The request message for
+ * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreateWebhookRequest}
@@ -414,7 +415,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook].
+   * The request message for
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.CreateWebhookRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteEntityTypeRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteEntityTypeRequest.java
index 3c3d0bfba..514a334ef 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteEntityTypeRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteEntityTypeRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [EntityTypes.DeleteEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.DeleteEntityType].
+ * The request message for
+ * [EntityTypes.DeleteEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.DeleteEntityType].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeleteEntityTypeRequest}
@@ -77,6 +78,11 @@ private DeleteEntityTypeRequest(
               name_ = s;
               break;
             }
+          case 16:
+            {
+              force_ = input.readBool();
+              break;
+            }
           default:
             {
               if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
@@ -168,6 +174,34 @@ public com.google.protobuf.ByteString getNameBytes() {
     }
   }
 
+  public static final int FORCE_FIELD_NUMBER = 2;
+  private boolean force_;
+  /**
+   *
+   *
+   * <pre>
+   * 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.v3beta1.Form.Parameter] of the
+   *    entity type will be changed to
+   *    '&#64;sys.any' and intent
+   *    [parameter][google.cloud.dialogflow.cx.v3beta1.Intent.Parameter] of the
+   *    entity type will be removed).
+   * </pre>
+   *
+   * <code>bool force = 2;</code>
+   *
+   * @return The force.
+   */
+  @java.lang.Override
+  public boolean getForce() {
+    return force_;
+  }
+
   private byte memoizedIsInitialized = -1;
 
   @java.lang.Override
@@ -185,6 +219,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!getNameBytes().isEmpty()) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
+    if (force_ != false) {
+      output.writeBool(2, force_);
+    }
     unknownFields.writeTo(output);
   }
 
@@ -197,6 +234,9 @@ public int getSerializedSize() {
     if (!getNameBytes().isEmpty()) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
+    if (force_ != false) {
+      size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, force_);
+    }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
     return size;
@@ -214,6 +254,7 @@ public boolean equals(final java.lang.Object obj) {
         (com.google.cloud.dialogflow.cx.v3beta1.DeleteEntityTypeRequest) obj;
 
     if (!getName().equals(other.getName())) return false;
+    if (getForce() != other.getForce()) return false;
     if (!unknownFields.equals(other.unknownFields)) return false;
     return true;
   }
@@ -227,6 +268,8 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
+    hash = (37 * hash) + FORCE_FIELD_NUMBER;
+    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getForce());
     hash = (29 * hash) + unknownFields.hashCode();
     memoizedHashCode = hash;
     return hash;
@@ -332,7 +375,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [EntityTypes.DeleteEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.DeleteEntityType].
+   * The request message for
+   * [EntityTypes.DeleteEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.DeleteEntityType].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeleteEntityTypeRequest}
@@ -375,6 +419,8 @@ public Builder clear() {
       super.clear();
       name_ = "";
 
+      force_ = false;
+
       return this;
     }
 
@@ -404,6 +450,7 @@ public com.google.cloud.dialogflow.cx.v3beta1.DeleteEntityTypeRequest buildParti
       com.google.cloud.dialogflow.cx.v3beta1.DeleteEntityTypeRequest result =
           new com.google.cloud.dialogflow.cx.v3beta1.DeleteEntityTypeRequest(this);
       result.name_ = name_;
+      result.force_ = force_;
       onBuilt();
       return result;
     }
@@ -459,6 +506,9 @@ public Builder mergeFrom(com.google.cloud.dialogflow.cx.v3beta1.DeleteEntityType
         name_ = other.name_;
         onChanged();
       }
+      if (other.getForce() != false) {
+        setForce(other.getForce());
+      }
       this.mergeUnknownFields(other.unknownFields);
       onChanged();
       return this;
@@ -616,6 +666,88 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
       return this;
     }
 
+    private boolean force_;
+    /**
+     *
+     *
+     * <pre>
+     * 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.v3beta1.Form.Parameter] of the
+     *    entity type will be changed to
+     *    '&#64;sys.any' and intent
+     *    [parameter][google.cloud.dialogflow.cx.v3beta1.Intent.Parameter] of the
+     *    entity type will be removed).
+     * </pre>
+     *
+     * <code>bool force = 2;</code>
+     *
+     * @return The force.
+     */
+    @java.lang.Override
+    public boolean getForce() {
+      return force_;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * 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.v3beta1.Form.Parameter] of the
+     *    entity type will be changed to
+     *    '&#64;sys.any' and intent
+     *    [parameter][google.cloud.dialogflow.cx.v3beta1.Intent.Parameter] of the
+     *    entity type will be removed).
+     * </pre>
+     *
+     * <code>bool force = 2;</code>
+     *
+     * @param value The force to set.
+     * @return This builder for chaining.
+     */
+    public Builder setForce(boolean value) {
+
+      force_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * 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.v3beta1.Form.Parameter] of the
+     *    entity type will be changed to
+     *    '&#64;sys.any' and intent
+     *    [parameter][google.cloud.dialogflow.cx.v3beta1.Intent.Parameter] of the
+     *    entity type will be removed).
+     * </pre>
+     *
+     * <code>bool force = 2;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearForce() {
+
+      force_ = false;
+      onChanged();
+      return this;
+    }
+
     @java.lang.Override
     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
       return super.setUnknownFields(unknownFields);
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteEntityTypeRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteEntityTypeRequestOrBuilder.java
index f6ffcf650..bd22e696e 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteEntityTypeRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteEntityTypeRequestOrBuilder.java
@@ -55,4 +55,27 @@ public interface DeleteEntityTypeRequestOrBuilder
    * @return The bytes for name.
    */
   com.google.protobuf.ByteString getNameBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * 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.v3beta1.Form.Parameter] of the
+   *    entity type will be changed to
+   *    '&#64;sys.any' and intent
+   *    [parameter][google.cloud.dialogflow.cx.v3beta1.Intent.Parameter] of the
+   *    entity type will be removed).
+   * </pre>
+   *
+   * <code>bool force = 2;</code>
+   *
+   * @return The force.
+   */
+  boolean getForce();
 }
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteFlowRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteFlowRequest.java
index 094f6020c..1771cc513 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteFlowRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteFlowRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Flows.DeleteFlow][google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow].
+ * The request message for
+ * [Flows.DeleteFlow][google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeleteFlowRequest}
@@ -184,7 +185,10 @@ public com.google.protobuf.ByteString getNameBytes() {
    * *  If `force` is set to false, an error will be returned with message
    *    indicating the incoming transitions.
    * *  If `force` is set to true, Dialogflow will remove the flow, as well as
-   *    any transitions to the flow.
+   *    any transitions to the flow (i.e. [Target
+   *    flow][EventHandler.target_flow] in event handlers or [Target
+   *    flow][TransitionRoute.target_flow] in transition routes that point to
+   *    this flow will be cleared).
    * </pre>
    *
    * <code>bool force = 2;</code>
@@ -369,7 +373,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Flows.DeleteFlow][google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow].
+   * The request message for
+   * [Flows.DeleteFlow][google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeleteFlowRequest}
@@ -666,7 +671,10 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      * *  If `force` is set to false, an error will be returned with message
      *    indicating the incoming transitions.
      * *  If `force` is set to true, Dialogflow will remove the flow, as well as
-     *    any transitions to the flow.
+     *    any transitions to the flow (i.e. [Target
+     *    flow][EventHandler.target_flow] in event handlers or [Target
+     *    flow][TransitionRoute.target_flow] in transition routes that point to
+     *    this flow will be cleared).
      * </pre>
      *
      * <code>bool force = 2;</code>
@@ -686,7 +694,10 @@ public boolean getForce() {
      * *  If `force` is set to false, an error will be returned with message
      *    indicating the incoming transitions.
      * *  If `force` is set to true, Dialogflow will remove the flow, as well as
-     *    any transitions to the flow.
+     *    any transitions to the flow (i.e. [Target
+     *    flow][EventHandler.target_flow] in event handlers or [Target
+     *    flow][TransitionRoute.target_flow] in transition routes that point to
+     *    this flow will be cleared).
      * </pre>
      *
      * <code>bool force = 2;</code>
@@ -709,7 +720,10 @@ public Builder setForce(boolean value) {
      * *  If `force` is set to false, an error will be returned with message
      *    indicating the incoming transitions.
      * *  If `force` is set to true, Dialogflow will remove the flow, as well as
-     *    any transitions to the flow.
+     *    any transitions to the flow (i.e. [Target
+     *    flow][EventHandler.target_flow] in event handlers or [Target
+     *    flow][TransitionRoute.target_flow] in transition routes that point to
+     *    this flow will be cleared).
      * </pre>
      *
      * <code>bool force = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteFlowRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteFlowRequestOrBuilder.java
index 5fc906c52..3e558db65 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteFlowRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteFlowRequestOrBuilder.java
@@ -65,7 +65,10 @@ public interface DeleteFlowRequestOrBuilder
    * *  If `force` is set to false, an error will be returned with message
    *    indicating the incoming transitions.
    * *  If `force` is set to true, Dialogflow will remove the flow, as well as
-   *    any transitions to the flow.
+   *    any transitions to the flow (i.e. [Target
+   *    flow][EventHandler.target_flow] in event handlers or [Target
+   *    flow][TransitionRoute.target_flow] in transition routes that point to
+   *    this flow will be cleared).
    * </pre>
    *
    * <code>bool force = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeletePageRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeletePageRequest.java
index 5c32d8b2e..d73313b44 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeletePageRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeletePageRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Pages.DeletePage][google.cloud.dialogflow.cx.v3beta1.Pages.DeletePage].
+ * The request message for
+ * [Pages.DeletePage][google.cloud.dialogflow.cx.v3beta1.Pages.DeletePage].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeletePageRequest}
@@ -184,7 +185,10 @@ public com.google.protobuf.ByteString getNameBytes() {
    * *  If `force` is set to false, an error will be returned with message
    *    indicating the incoming transitions.
    * *  If `force` is set to true, Dialogflow will remove the page, as well as
-   *    any transitions to the page.
+   *    any transitions to the page (i.e. [Target
+   *    page][EventHandler.target_page] in event handlers or [Target
+   *    page][TransitionRoute.target_page] in transition routes that point to
+   *    this page will be cleared).
    * </pre>
    *
    * <code>bool force = 2;</code>
@@ -369,7 +373,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Pages.DeletePage][google.cloud.dialogflow.cx.v3beta1.Pages.DeletePage].
+   * The request message for
+   * [Pages.DeletePage][google.cloud.dialogflow.cx.v3beta1.Pages.DeletePage].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeletePageRequest}
@@ -666,7 +671,10 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      * *  If `force` is set to false, an error will be returned with message
      *    indicating the incoming transitions.
      * *  If `force` is set to true, Dialogflow will remove the page, as well as
-     *    any transitions to the page.
+     *    any transitions to the page (i.e. [Target
+     *    page][EventHandler.target_page] in event handlers or [Target
+     *    page][TransitionRoute.target_page] in transition routes that point to
+     *    this page will be cleared).
      * </pre>
      *
      * <code>bool force = 2;</code>
@@ -686,7 +694,10 @@ public boolean getForce() {
      * *  If `force` is set to false, an error will be returned with message
      *    indicating the incoming transitions.
      * *  If `force` is set to true, Dialogflow will remove the page, as well as
-     *    any transitions to the page.
+     *    any transitions to the page (i.e. [Target
+     *    page][EventHandler.target_page] in event handlers or [Target
+     *    page][TransitionRoute.target_page] in transition routes that point to
+     *    this page will be cleared).
      * </pre>
      *
      * <code>bool force = 2;</code>
@@ -709,7 +720,10 @@ public Builder setForce(boolean value) {
      * *  If `force` is set to false, an error will be returned with message
      *    indicating the incoming transitions.
      * *  If `force` is set to true, Dialogflow will remove the page, as well as
-     *    any transitions to the page.
+     *    any transitions to the page (i.e. [Target
+     *    page][EventHandler.target_page] in event handlers or [Target
+     *    page][TransitionRoute.target_page] in transition routes that point to
+     *    this page will be cleared).
      * </pre>
      *
      * <code>bool force = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeletePageRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeletePageRequestOrBuilder.java
index 70e780e4f..8ae0521ca 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeletePageRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeletePageRequestOrBuilder.java
@@ -65,7 +65,10 @@ public interface DeletePageRequestOrBuilder
    * *  If `force` is set to false, an error will be returned with message
    *    indicating the incoming transitions.
    * *  If `force` is set to true, Dialogflow will remove the page, as well as
-   *    any transitions to the page.
+   *    any transitions to the page (i.e. [Target
+   *    page][EventHandler.target_page] in event handlers or [Target
+   *    page][TransitionRoute.target_page] in transition routes that point to
+   *    this page will be cleared).
    * </pre>
    *
    * <code>bool force = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteSessionEntityTypeRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteSessionEntityTypeRequest.java
index 33b837da8..ff196a841 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteSessionEntityTypeRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteSessionEntityTypeRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [SessionEntityTypes.DeleteSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.DeleteSessionEntityType].
+ * The request message for
+ * [SessionEntityTypes.DeleteSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.DeleteSessionEntityType].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeleteSessionEntityTypeRequest}
@@ -120,7 +121,11 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * <pre>
    * Required. The name of the session entity type to delete.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -147,7 +152,11 @@ public java.lang.String getName() {
    * <pre>
    * Required. The name of the session entity type to delete.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -334,7 +343,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [SessionEntityTypes.DeleteSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.DeleteSessionEntityType].
+   * The request message for
+   * [SessionEntityTypes.DeleteSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.DeleteSessionEntityType].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeleteSessionEntityTypeRequest}
@@ -503,7 +513,11 @@ public Builder mergeFrom(
      * <pre>
      * Required. The name of the session entity type to delete.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -529,7 +543,11 @@ public java.lang.String getName() {
      * <pre>
      * Required. The name of the session entity type to delete.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -555,7 +573,11 @@ public com.google.protobuf.ByteString getNameBytes() {
      * <pre>
      * Required. The name of the session entity type to delete.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -580,7 +602,11 @@ public Builder setName(java.lang.String value) {
      * <pre>
      * Required. The name of the session entity type to delete.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -601,7 +627,11 @@ public Builder clearName() {
      * <pre>
      * Required. The name of the session entity type to delete.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteSessionEntityTypeRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteSessionEntityTypeRequestOrBuilder.java
index b28377c80..0dbefa1e3 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteSessionEntityTypeRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteSessionEntityTypeRequestOrBuilder.java
@@ -29,7 +29,11 @@ public interface DeleteSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The name of the session entity type to delete.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -45,7 +49,11 @@ public interface DeleteSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The name of the session entity type to delete.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteWebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteWebhookRequest.java
index 4a16f933e..3d542ae10 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteWebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteWebhookRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.DeleteWebhook].
+ * The request message for
+ * [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.DeleteWebhook].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeleteWebhookRequest}
@@ -77,6 +78,11 @@ private DeleteWebhookRequest(
               name_ = s;
               break;
             }
+          case 16:
+            {
+              force_ = input.readBool();
+              break;
+            }
           default:
             {
               if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
@@ -168,6 +174,32 @@ public com.google.protobuf.ByteString getNameBytes() {
     }
   }
 
+  public static final int FORCE_FIELD_NUMBER = 2;
+  private boolean force_;
+  /**
+   *
+   *
+   * <pre>
+   * This field has no effect for webhook not being used.
+   * For webhooks that are used by pages/flows/transition route groups:
+   * *  If `force` is set to false, an error will be returned with message
+   *    indicating the referenced resources.
+   * *  If `force` is set to true, Dialogflow will remove the webhook, as well
+   *    as any references to the webhook (i.e.
+   *    [Webhook][google.cloud.dialogflow.cx.v3beta1.Fulfillment.webhook] and
+   *    [tag][google.cloud.dialogflow.cx.v3beta1.Fulfillment.tag]in fulfillments
+   *    that point to this webhook will be removed).
+   * </pre>
+   *
+   * <code>bool force = 2;</code>
+   *
+   * @return The force.
+   */
+  @java.lang.Override
+  public boolean getForce() {
+    return force_;
+  }
+
   private byte memoizedIsInitialized = -1;
 
   @java.lang.Override
@@ -185,6 +217,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!getNameBytes().isEmpty()) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
+    if (force_ != false) {
+      output.writeBool(2, force_);
+    }
     unknownFields.writeTo(output);
   }
 
@@ -197,6 +232,9 @@ public int getSerializedSize() {
     if (!getNameBytes().isEmpty()) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
+    if (force_ != false) {
+      size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, force_);
+    }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
     return size;
@@ -214,6 +252,7 @@ public boolean equals(final java.lang.Object obj) {
         (com.google.cloud.dialogflow.cx.v3beta1.DeleteWebhookRequest) obj;
 
     if (!getName().equals(other.getName())) return false;
+    if (getForce() != other.getForce()) return false;
     if (!unknownFields.equals(other.unknownFields)) return false;
     return true;
   }
@@ -227,6 +266,8 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
+    hash = (37 * hash) + FORCE_FIELD_NUMBER;
+    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getForce());
     hash = (29 * hash) + unknownFields.hashCode();
     memoizedHashCode = hash;
     return hash;
@@ -332,7 +373,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.DeleteWebhook].
+   * The request message for
+   * [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.DeleteWebhook].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.DeleteWebhookRequest}
@@ -375,6 +417,8 @@ public Builder clear() {
       super.clear();
       name_ = "";
 
+      force_ = false;
+
       return this;
     }
 
@@ -403,6 +447,7 @@ public com.google.cloud.dialogflow.cx.v3beta1.DeleteWebhookRequest buildPartial(
       com.google.cloud.dialogflow.cx.v3beta1.DeleteWebhookRequest result =
           new com.google.cloud.dialogflow.cx.v3beta1.DeleteWebhookRequest(this);
       result.name_ = name_;
+      result.force_ = force_;
       onBuilt();
       return result;
     }
@@ -457,6 +502,9 @@ public Builder mergeFrom(com.google.cloud.dialogflow.cx.v3beta1.DeleteWebhookReq
         name_ = other.name_;
         onChanged();
       }
+      if (other.getForce() != false) {
+        setForce(other.getForce());
+      }
       this.mergeUnknownFields(other.unknownFields);
       onChanged();
       return this;
@@ -613,6 +661,82 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
       return this;
     }
 
+    private boolean force_;
+    /**
+     *
+     *
+     * <pre>
+     * This field has no effect for webhook not being used.
+     * For webhooks that are used by pages/flows/transition route groups:
+     * *  If `force` is set to false, an error will be returned with message
+     *    indicating the referenced resources.
+     * *  If `force` is set to true, Dialogflow will remove the webhook, as well
+     *    as any references to the webhook (i.e.
+     *    [Webhook][google.cloud.dialogflow.cx.v3beta1.Fulfillment.webhook] and
+     *    [tag][google.cloud.dialogflow.cx.v3beta1.Fulfillment.tag]in fulfillments
+     *    that point to this webhook will be removed).
+     * </pre>
+     *
+     * <code>bool force = 2;</code>
+     *
+     * @return The force.
+     */
+    @java.lang.Override
+    public boolean getForce() {
+      return force_;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * This field has no effect for webhook not being used.
+     * For webhooks that are used by pages/flows/transition route groups:
+     * *  If `force` is set to false, an error will be returned with message
+     *    indicating the referenced resources.
+     * *  If `force` is set to true, Dialogflow will remove the webhook, as well
+     *    as any references to the webhook (i.e.
+     *    [Webhook][google.cloud.dialogflow.cx.v3beta1.Fulfillment.webhook] and
+     *    [tag][google.cloud.dialogflow.cx.v3beta1.Fulfillment.tag]in fulfillments
+     *    that point to this webhook will be removed).
+     * </pre>
+     *
+     * <code>bool force = 2;</code>
+     *
+     * @param value The force to set.
+     * @return This builder for chaining.
+     */
+    public Builder setForce(boolean value) {
+
+      force_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * This field has no effect for webhook not being used.
+     * For webhooks that are used by pages/flows/transition route groups:
+     * *  If `force` is set to false, an error will be returned with message
+     *    indicating the referenced resources.
+     * *  If `force` is set to true, Dialogflow will remove the webhook, as well
+     *    as any references to the webhook (i.e.
+     *    [Webhook][google.cloud.dialogflow.cx.v3beta1.Fulfillment.webhook] and
+     *    [tag][google.cloud.dialogflow.cx.v3beta1.Fulfillment.tag]in fulfillments
+     *    that point to this webhook will be removed).
+     * </pre>
+     *
+     * <code>bool force = 2;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearForce() {
+
+      force_ = false;
+      onChanged();
+      return this;
+    }
+
     @java.lang.Override
     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
       return super.setUnknownFields(unknownFields);
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteWebhookRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteWebhookRequestOrBuilder.java
index a73a51099..7ccc848fb 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteWebhookRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DeleteWebhookRequestOrBuilder.java
@@ -55,4 +55,25 @@ public interface DeleteWebhookRequestOrBuilder
    * @return The bytes for name.
    */
   com.google.protobuf.ByteString getNameBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * This field has no effect for webhook not being used.
+   * For webhooks that are used by pages/flows/transition route groups:
+   * *  If `force` is set to false, an error will be returned with message
+   *    indicating the referenced resources.
+   * *  If `force` is set to true, Dialogflow will remove the webhook, as well
+   *    as any references to the webhook (i.e.
+   *    [Webhook][google.cloud.dialogflow.cx.v3beta1.Fulfillment.webhook] and
+   *    [tag][google.cloud.dialogflow.cx.v3beta1.Fulfillment.tag]in fulfillments
+   *    that point to this webhook will be removed).
+   * </pre>
+   *
+   * <code>bool force = 2;</code>
+   *
+   * @return The force.
+   */
+  boolean getForce();
 }
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentRequest.java
index 913ee2a95..cd9d1b466 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentRequest.java
@@ -170,7 +170,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * <pre>
    * Required. The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -200,7 +203,10 @@ public java.lang.String getSession() {
    * <pre>
    * Required. The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -786,7 +792,10 @@ public Builder mergeFrom(
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -815,7 +824,10 @@ public java.lang.String getSession() {
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -844,7 +856,10 @@ public com.google.protobuf.ByteString getSessionBytes() {
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -872,7 +887,10 @@ public Builder setSession(java.lang.String value) {
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -896,7 +914,10 @@ public Builder clearSession() {
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentRequestOrBuilder.java
index cb909fcf6..0a81c346f 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentRequestOrBuilder.java
@@ -29,7 +29,10 @@ public interface DetectIntentRequestOrBuilder
    * <pre>
    * Required. The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -48,7 +51,10 @@ public interface DetectIntentRequestOrBuilder
    * <pre>
    * Required. The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentResponse.java
index c144fbed4..20b81369c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentResponse.java
@@ -259,9 +259,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.QueryResultOrBuilder getQueryResul
    * The audio data bytes encoded as specified in the request.
    * Note: The output audio is generated based on the values of default platform
    * text responses found in the
-   * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-   * multiple default text responses exist, they will be concatenated when
-   * generating audio. If no default platform text responses exist, the
+   * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+   * field. If multiple default text responses exist, they will be concatenated
+   * when generating audio. If no default platform text responses exist, the
    * generated audio content will be empty.
    * In some scenarios, multiple output audio fields may be present in the
    * response structure. In these cases, only the top-most-level audio output
@@ -1021,9 +1021,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.QueryResultOrBuilder getQueryResul
      * The audio data bytes encoded as specified in the request.
      * Note: The output audio is generated based on the values of default platform
      * text responses found in the
-     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-     * multiple default text responses exist, they will be concatenated when
-     * generating audio. If no default platform text responses exist, the
+     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+     * field. If multiple default text responses exist, they will be concatenated
+     * when generating audio. If no default platform text responses exist, the
      * generated audio content will be empty.
      * In some scenarios, multiple output audio fields may be present in the
      * response structure. In these cases, only the top-most-level audio output
@@ -1045,9 +1045,9 @@ public com.google.protobuf.ByteString getOutputAudio() {
      * The audio data bytes encoded as specified in the request.
      * Note: The output audio is generated based on the values of default platform
      * text responses found in the
-     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-     * multiple default text responses exist, they will be concatenated when
-     * generating audio. If no default platform text responses exist, the
+     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+     * field. If multiple default text responses exist, they will be concatenated
+     * when generating audio. If no default platform text responses exist, the
      * generated audio content will be empty.
      * In some scenarios, multiple output audio fields may be present in the
      * response structure. In these cases, only the top-most-level audio output
@@ -1075,9 +1075,9 @@ public Builder setOutputAudio(com.google.protobuf.ByteString value) {
      * The audio data bytes encoded as specified in the request.
      * Note: The output audio is generated based on the values of default platform
      * text responses found in the
-     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-     * multiple default text responses exist, they will be concatenated when
-     * generating audio. If no default platform text responses exist, the
+     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+     * field. If multiple default text responses exist, they will be concatenated
+     * when generating audio. If no default platform text responses exist, the
      * generated audio content will be empty.
      * In some scenarios, multiple output audio fields may be present in the
      * response structure. In these cases, only the top-most-level audio output
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentResponseOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentResponseOrBuilder.java
index 0acc80768..cf5735378 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentResponseOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/DetectIntentResponseOrBuilder.java
@@ -92,9 +92,9 @@ public interface DetectIntentResponseOrBuilder
    * The audio data bytes encoded as specified in the request.
    * Note: The output audio is generated based on the values of default platform
    * text responses found in the
-   * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-   * multiple default text responses exist, they will be concatenated when
-   * generating audio. If no default platform text responses exist, the
+   * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+   * field. If multiple default text responses exist, they will be concatenated
+   * when generating audio. If no default platform text responses exist, the
    * generated audio content will be empty.
    * In some scenarios, multiple output audio fields may be present in the
    * response structure. In these cases, only the top-most-level audio output
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityType.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityType.java
index 029a4e3ca..815df81f7 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityType.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityType.java
@@ -40,7 +40,9 @@
  *     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.v3beta1.SessionEntityType] type.
+ *     represented by the
+ *     [SessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityType]
+ *     type.
  * For more information about entity types, see the [Dialogflow
  * documentation](https://cloud.google.com/dialogflow/docs/entities-overview).
  * </pre>
@@ -2318,7 +2320,8 @@ public com.google.protobuf.Parser<ExcludedPhrase> getParserForType() {
    *
    * <pre>
    * The unique identifier of the entity type.
-   * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+   * Required for
+   * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
    * </pre>
@@ -2344,7 +2347,8 @@ public java.lang.String getName() {
    *
    * <pre>
    * The unique identifier of the entity type.
-   * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+   * Required for
+   * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
    * </pre>
@@ -2372,7 +2376,8 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    *
    * <pre>
-   * Required. The human-readable name of the entity type, unique within the agent.
+   * Required. The human-readable name of the entity type, unique within the
+   * agent.
    * </pre>
    *
    * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -2395,7 +2400,8 @@ public java.lang.String getDisplayName() {
    *
    *
    * <pre>
-   * Required. The human-readable name of the entity type, unique within the agent.
+   * Required. The human-readable name of the entity type, unique within the
+   * agent.
    * </pre>
    *
    * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -2939,7 +2945,9 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *     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.v3beta1.SessionEntityType] type.
+   *     represented by the
+   *     [SessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityType]
+   *     type.
    * For more information about entity types, see the [Dialogflow
    * documentation](https://cloud.google.com/dialogflow/docs/entities-overview).
    * </pre>
@@ -3217,7 +3225,8 @@ public Builder mergeFrom(
      *
      * <pre>
      * The unique identifier of the entity type.
-     * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+     * Required for
+     * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
      * </pre>
@@ -3242,7 +3251,8 @@ public java.lang.String getName() {
      *
      * <pre>
      * The unique identifier of the entity type.
-     * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+     * Required for
+     * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
      * </pre>
@@ -3267,7 +3277,8 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      * <pre>
      * The unique identifier of the entity type.
-     * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+     * Required for
+     * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
      * </pre>
@@ -3291,7 +3302,8 @@ public Builder setName(java.lang.String value) {
      *
      * <pre>
      * The unique identifier of the entity type.
-     * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+     * Required for
+     * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
      * </pre>
@@ -3311,7 +3323,8 @@ public Builder clearName() {
      *
      * <pre>
      * The unique identifier of the entity type.
-     * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+     * Required for
+     * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
      * </pre>
@@ -3337,7 +3350,8 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Required. The human-readable name of the entity type, unique within the agent.
+     * Required. The human-readable name of the entity type, unique within the
+     * agent.
      * </pre>
      *
      * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -3359,7 +3373,8 @@ public java.lang.String getDisplayName() {
      *
      *
      * <pre>
-     * Required. The human-readable name of the entity type, unique within the agent.
+     * Required. The human-readable name of the entity type, unique within the
+     * agent.
      * </pre>
      *
      * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -3381,7 +3396,8 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
      *
      *
      * <pre>
-     * Required. The human-readable name of the entity type, unique within the agent.
+     * Required. The human-readable name of the entity type, unique within the
+     * agent.
      * </pre>
      *
      * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -3402,7 +3418,8 @@ public Builder setDisplayName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The human-readable name of the entity type, unique within the agent.
+     * Required. The human-readable name of the entity type, unique within the
+     * agent.
      * </pre>
      *
      * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -3419,7 +3436,8 @@ public Builder clearDisplayName() {
      *
      *
      * <pre>
-     * Required. The human-readable name of the entity type, unique within the agent.
+     * Required. The human-readable name of the entity type, unique within the
+     * agent.
      * </pre>
      *
      * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypeOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypeOrBuilder.java
index 6c2cdc66c..84405f653 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypeOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypeOrBuilder.java
@@ -28,7 +28,8 @@ public interface EntityTypeOrBuilder
    *
    * <pre>
    * The unique identifier of the entity type.
-   * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+   * Required for
+   * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
    * </pre>
@@ -43,7 +44,8 @@ public interface EntityTypeOrBuilder
    *
    * <pre>
    * The unique identifier of the entity type.
-   * Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+   * Required for
+   * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
    * </pre>
@@ -58,7 +60,8 @@ public interface EntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. The human-readable name of the entity type, unique within the agent.
+   * Required. The human-readable name of the entity type, unique within the
+   * agent.
    * </pre>
    *
    * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -70,7 +73,8 @@ public interface EntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. The human-readable name of the entity type, unique within the agent.
+   * Required. The human-readable name of the entity type, unique within the
+   * agent.
    * </pre>
    *
    * <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypeProto.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypeProto.java
index 2aa97ffe8..8dbe94c61 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypeProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EntityTypeProto.java
@@ -117,44 +117,45 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "\001 \001(\0132..google.cloud.dialogflow.cx.v3bet"
           + "a1.EntityTypeB\003\340A\002\022\025\n\rlanguage_code\030\002 \001("
           + "\t\022/\n\013update_mask\030\003 \001(\0132\032.google.protobuf"
-          + ".FieldMask\"U\n\027DeleteEntityTypeRequest\022:\n"
+          + ".FieldMask\"d\n\027DeleteEntityTypeRequest\022:\n"
           + "\004name\030\001 \001(\tB,\340A\002\372A&\n$dialogflow.googleap"
-          + "is.com/EntityType2\315\t\n\013EntityTypes\022\332\001\n\017Li"
-          + "stEntityTypes\022:.google.cloud.dialogflow."
-          + "cx.v3beta1.ListEntityTypesRequest\032;.goog"
-          + "le.cloud.dialogflow.cx.v3beta1.ListEntit"
-          + "yTypesResponse\"N\202\323\344\223\002?\022=/v3beta1/{parent"
-          + "=projects/*/locations/*/agents/*}/entity"
-          + "Types\332A\006parent\022\307\001\n\rGetEntityType\0228.googl"
-          + "e.cloud.dialogflow.cx.v3beta1.GetEntityT"
-          + "ypeRequest\032..google.cloud.dialogflow.cx."
-          + "v3beta1.EntityType\"L\202\323\344\223\002?\022=/v3beta1/{na"
-          + "me=projects/*/locations/*/agents/*/entit"
-          + "yTypes/*}\332A\004name\022\350\001\n\020CreateEntityType\022;."
-          + "google.cloud.dialogflow.cx.v3beta1.Creat"
-          + "eEntityTypeRequest\032..google.cloud.dialog"
-          + "flow.cx.v3beta1.EntityType\"g\202\323\344\223\002L\"=/v3b"
-          + "eta1/{parent=projects/*/locations/*/agen"
-          + "ts/*}/entityTypes:\013entity_type\332A\022parent,"
-          + "entity_type\022\371\001\n\020UpdateEntityType\022;.googl"
-          + "e.cloud.dialogflow.cx.v3beta1.UpdateEnti"
-          + "tyTypeRequest\032..google.cloud.dialogflow."
-          + "cx.v3beta1.EntityType\"x\202\323\344\223\002X2I/v3beta1/"
-          + "{entity_type.name=projects/*/locations/*"
-          + "/agents/*/entityTypes/*}:\013entity_type\332A\027"
-          + "entity_type,update_mask\022\265\001\n\020DeleteEntity"
-          + "Type\022;.google.cloud.dialogflow.cx.v3beta"
-          + "1.DeleteEntityTypeRequest\032\026.google.proto"
-          + "buf.Empty\"L\202\323\344\223\002?*=/v3beta1/{name=projec"
-          + "ts/*/locations/*/agents/*/entityTypes/*}"
-          + "\332A\004name\032x\312A\031dialogflow.googleapis.com\322AY"
-          + "https://www.googleapis.com/auth/cloud-pl"
-          + "atform,https://www.googleapis.com/auth/d"
-          + "ialogflowB\256\001\n&com.google.cloud.dialogflo"
-          + "w.cx.v3beta1B\017EntityTypeProtoP\001ZDgoogle."
-          + "golang.org/genproto/googleapis/cloud/dia"
-          + "logflow/cx/v3beta1;cx\370\001\001\242\002\002DF\252\002\"Google.C"
-          + "loud.Dialogflow.Cx.V3Beta1b\006proto3"
+          + "is.com/EntityType\022\r\n\005force\030\002 \001(\0102\315\t\n\013Ent"
+          + "ityTypes\022\332\001\n\017ListEntityTypes\022:.google.cl"
+          + "oud.dialogflow.cx.v3beta1.ListEntityType"
+          + "sRequest\032;.google.cloud.dialogflow.cx.v3"
+          + "beta1.ListEntityTypesResponse\"N\202\323\344\223\002?\022=/"
+          + "v3beta1/{parent=projects/*/locations/*/a"
+          + "gents/*}/entityTypes\332A\006parent\022\307\001\n\rGetEnt"
+          + "ityType\0228.google.cloud.dialogflow.cx.v3b"
+          + "eta1.GetEntityTypeRequest\032..google.cloud"
+          + ".dialogflow.cx.v3beta1.EntityType\"L\202\323\344\223\002"
+          + "?\022=/v3beta1/{name=projects/*/locations/*"
+          + "/agents/*/entityTypes/*}\332A\004name\022\350\001\n\020Crea"
+          + "teEntityType\022;.google.cloud.dialogflow.c"
+          + "x.v3beta1.CreateEntityTypeRequest\032..goog"
+          + "le.cloud.dialogflow.cx.v3beta1.EntityTyp"
+          + "e\"g\202\323\344\223\002L\"=/v3beta1/{parent=projects/*/l"
+          + "ocations/*/agents/*}/entityTypes:\013entity"
+          + "_type\332A\022parent,entity_type\022\371\001\n\020UpdateEnt"
+          + "ityType\022;.google.cloud.dialogflow.cx.v3b"
+          + "eta1.UpdateEntityTypeRequest\032..google.cl"
+          + "oud.dialogflow.cx.v3beta1.EntityType\"x\202\323"
+          + "\344\223\002X2I/v3beta1/{entity_type.name=project"
+          + "s/*/locations/*/agents/*/entityTypes/*}:"
+          + "\013entity_type\332A\027entity_type,update_mask\022\265"
+          + "\001\n\020DeleteEntityType\022;.google.cloud.dialo"
+          + "gflow.cx.v3beta1.DeleteEntityTypeRequest"
+          + "\032\026.google.protobuf.Empty\"L\202\323\344\223\002?*=/v3bet"
+          + "a1/{name=projects/*/locations/*/agents/*"
+          + "/entityTypes/*}\332A\004name\032x\312A\031dialogflow.go"
+          + "ogleapis.com\322AYhttps://www.googleapis.co"
+          + "m/auth/cloud-platform,https://www.google"
+          + "apis.com/auth/dialogflowB\256\001\n&com.google."
+          + "cloud.dialogflow.cx.v3beta1B\017EntityTypeP"
+          + "rotoP\001ZDgoogle.golang.org/genproto/googl"
+          + "eapis/cloud/dialogflow/cx/v3beta1;cx\370\001\001\242"
+          + "\002\002DF\252\002\"Google.Cloud.Dialogflow.Cx.V3Beta"
+          + "1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -247,7 +248,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_dialogflow_cx_v3beta1_DeleteEntityTypeRequest_descriptor,
             new java.lang.String[] {
-              "Name",
+              "Name", "Force",
             });
     com.google.protobuf.ExtensionRegistry registry =
         com.google.protobuf.ExtensionRegistry.newInstance();
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EventHandler.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EventHandler.java
index d20d16874..76bcfca35 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EventHandler.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/EventHandler.java
@@ -22,16 +22,21 @@
  *
  *
  * <pre>
- * An event handler specifies an [event][google.cloud.dialogflow.cx.v3beta1.EventHandler.event] that can be handled
- * during a session. When the specified event happens, the following actions are
- * taken in order:
+ * An event handler specifies an
+ * [event][google.cloud.dialogflow.cx.v3beta1.EventHandler.event] that can be
+ * handled during a session. When the specified event happens, the following
+ * actions are taken in order:
  * *   If there is a
- * [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.EventHandler.trigger_fulfillment] associated with
- * the event, it will be called.
- * *   If there is a [`target_page`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_page] associated
- * with the event, the session will transition into the specified page.
- * *   If there is a [`target_flow`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_flow] associated
- * with the event, the session will transition into the specified flow.
+ * [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.EventHandler.trigger_fulfillment]
+ * associated with the event, it will be called.
+ * *   If there is a
+ * [`target_page`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_page]
+ * associated with the event, the session will transition into the specified
+ * page.
+ * *   If there is a
+ * [`target_flow`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_flow]
+ * associated with the event, the session will transition into the specified
+ * flow.
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.EventHandler}
@@ -703,16 +708,21 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * An event handler specifies an [event][google.cloud.dialogflow.cx.v3beta1.EventHandler.event] that can be handled
-   * during a session. When the specified event happens, the following actions are
-   * taken in order:
+   * An event handler specifies an
+   * [event][google.cloud.dialogflow.cx.v3beta1.EventHandler.event] that can be
+   * handled during a session. When the specified event happens, the following
+   * actions are taken in order:
+   * *   If there is a
+   * [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.EventHandler.trigger_fulfillment]
+   * associated with the event, it will be called.
+   * *   If there is a
+   * [`target_page`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_page]
+   * associated with the event, the session will transition into the specified
+   * page.
    * *   If there is a
-   * [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.EventHandler.trigger_fulfillment] associated with
-   * the event, it will be called.
-   * *   If there is a [`target_page`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_page] associated
-   * with the event, the session will transition into the specified page.
-   * *   If there is a [`target_flow`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_flow] associated
-   * with the event, the session will transition into the specified flow.
+   * [`target_flow`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_flow]
+   * associated with the event, the session will transition into the specified
+   * flow.
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.EventHandler}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Flow.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Flow.java
index e4ddacffb..5365f41a9 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Flow.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Flow.java
@@ -488,9 +488,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.TransitionRoute getTransitionRoute
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -511,9 +512,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.TransitionRoute getTransitionRoute
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -534,9 +536,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.TransitionRoute getTransitionRoute
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -556,9 +559,10 @@ public int getEventHandlersCount() {
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -578,9 +582,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.EventHandler getEventHandlers(int
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2081,9 +2086,10 @@ private void ensureEventHandlersIsMutable() {
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2107,9 +2113,10 @@ private void ensureEventHandlersIsMutable() {
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2132,9 +2139,10 @@ public int getEventHandlersCount() {
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2157,9 +2165,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.EventHandler getEventHandlers(int
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2189,9 +2198,10 @@ public Builder setEventHandlers(
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2218,9 +2228,10 @@ public Builder setEventHandlers(
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2249,9 +2260,10 @@ public Builder addEventHandlers(com.google.cloud.dialogflow.cx.v3beta1.EventHand
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2281,9 +2293,10 @@ public Builder addEventHandlers(
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2310,9 +2323,10 @@ public Builder addEventHandlers(
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2339,9 +2353,10 @@ public Builder addEventHandlers(
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2368,9 +2383,10 @@ public Builder addAllEventHandlers(
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2396,9 +2412,10 @@ public Builder clearEventHandlers() {
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2424,9 +2441,10 @@ public Builder removeEventHandlers(int index) {
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2446,9 +2464,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.EventHandler.Builder getEventHandl
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2472,9 +2491,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.EventHandlerOrBuilder getEventHand
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2498,9 +2518,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.EventHandlerOrBuilder getEventHand
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2520,9 +2541,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.EventHandler.Builder addEventHandl
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -2544,9 +2566,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.EventHandler.Builder addEventHandl
      * handlers][Page.event_handlers], which can be used to handle common events
      * regardless of the current page. Event handlers defined in the page
      * have higher priority than those defined in the flow.
-     * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-     * evaluated on a first-match basis. The first one that matches the event
-     * get executed, with the rest being ignored.
+     * Unlike
+     * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+     * these handlers are evaluated on a first-match basis. The first one that
+     * matches the event get executed, with the rest being ignored.
      * </pre>
      *
      * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FlowOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FlowOrBuilder.java
index 1d4f81ae0..aa224295c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FlowOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FlowOrBuilder.java
@@ -228,9 +228,10 @@ com.google.cloud.dialogflow.cx.v3beta1.TransitionRouteOrBuilder getTransitionRou
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -247,9 +248,10 @@ com.google.cloud.dialogflow.cx.v3beta1.TransitionRouteOrBuilder getTransitionRou
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -266,9 +268,10 @@ com.google.cloud.dialogflow.cx.v3beta1.TransitionRouteOrBuilder getTransitionRou
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -285,9 +288,10 @@ com.google.cloud.dialogflow.cx.v3beta1.TransitionRouteOrBuilder getTransitionRou
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
@@ -305,9 +309,10 @@ com.google.cloud.dialogflow.cx.v3beta1.TransitionRouteOrBuilder getTransitionRou
    * handlers][Page.event_handlers], which can be used to handle common events
    * regardless of the current page. Event handlers defined in the page
    * have higher priority than those defined in the flow.
-   * Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-   * evaluated on a first-match basis. The first one that matches the event
-   * get executed, with the rest being ignored.
+   * Unlike
+   * [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+   * these handlers are evaluated on a first-match basis. The first one that
+   * matches the event get executed, with the rest being ignored.
    * </pre>
    *
    * <code>repeated .google.cloud.dialogflow.cx.v3beta1.EventHandler event_handlers = 10;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FlowProto.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FlowProto.java
index 658336130..60db1ba49 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FlowProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FlowProto.java
@@ -80,87 +80,87 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "google/cloud/dialogflow/cx/v3beta1/page."
           + "proto\032#google/longrunning/operations.pro"
           + "to\032\033google/protobuf/empty.proto\032 google/"
-          + "protobuf/field_mask.proto\"\362\003\n\013NluSetting"
+          + "protobuf/field_mask.proto\"\333\003\n\013NluSetting"
           + "s\022M\n\nmodel_type\030\001 \001(\01629.google.cloud.dia"
           + "logflow.cx.v3beta1.NluSettings.ModelType"
           + "\022 \n\030classification_threshold\030\003 \001(\002\022^\n\023mo"
           + "del_training_mode\030\004 \001(\0162A.google.cloud.d"
           + "ialogflow.cx.v3beta1.NluSettings.ModelTr"
           + "ainingMode\022#\n\027enable_spell_correction\030\005 "
-          + "\001(\010B\002\030\001\"p\n\tModelType\022\032\n\026MODEL_TYPE_UNSPE"
-          + "CIFIED\020\000\022\027\n\023MODEL_TYPE_STANDARD\020\001\022\025\n\021MOD"
-          + "EL_TYPE_CUSTOM\020\002\022\027\n\023MODEL_TYPE_ADVANCED\020"
-          + "\003\"{\n\021ModelTrainingMode\022#\n\037MODEL_TRAINING"
-          + "_MODE_UNSPECIFIED\020\000\022!\n\035MODEL_TRAINING_MO"
-          + "DE_AUTOMATIC\020\001\022\036\n\032MODEL_TRAINING_MODE_MA"
-          + "NUAL\020\002\"\217\003\n\004Flow\022\014\n\004name\030\001 \001(\t\022\031\n\014display"
-          + "_name\030\002 \001(\tB\003\340A\002\022\023\n\013description\030\003 \001(\t\022N\n"
-          + "\021transition_routes\030\004 \003(\01323.google.cloud."
-          + "dialogflow.cx.v3beta1.TransitionRoute\022H\n"
-          + "\016event_handlers\030\n \003(\01320.google.cloud.dia"
-          + "logflow.cx.v3beta1.EventHandler\022E\n\014nlu_s"
-          + "ettings\030\013 \001(\0132/.google.cloud.dialogflow."
-          + "cx.v3beta1.NluSettings:h\352Ae\n\036dialogflow."
-          + "googleapis.com/Flow\022Cprojects/{project}/"
-          + "locations/{location}/agents/{agent}/flow"
-          + "s/{flow}\"\237\001\n\021CreateFlowRequest\0226\n\006parent"
-          + "\030\001 \001(\tB&\340A\002\372A \022\036dialogflow.googleapis.co"
-          + "m/Flow\022;\n\004flow\030\002 \001(\0132(.google.cloud.dial"
-          + "ogflow.cx.v3beta1.FlowB\003\340A\002\022\025\n\rlanguage_"
-          + "code\030\003 \001(\t\"X\n\021DeleteFlowRequest\0224\n\004name\030"
-          + "\001 \001(\tB&\340A\002\372A \n\036dialogflow.googleapis.com"
-          + "/Flow\022\r\n\005force\030\002 \001(\010\"\210\001\n\020ListFlowsReques"
-          + "t\0226\n\006parent\030\001 \001(\tB&\340A\002\372A \022\036dialogflow.go"
-          + "ogleapis.com/Flow\022\021\n\tpage_size\030\002 \001(\005\022\022\n\n"
-          + "page_token\030\003 \001(\t\022\025\n\rlanguage_code\030\004 \001(\t\""
-          + "e\n\021ListFlowsResponse\0227\n\005flows\030\001 \003(\0132(.go"
-          + "ogle.cloud.dialogflow.cx.v3beta1.Flow\022\027\n"
-          + "\017next_page_token\030\002 \001(\t\"]\n\016GetFlowRequest"
-          + "\0224\n\004name\030\001 \001(\tB&\340A\002\372A \n\036dialogflow.googl"
-          + "eapis.com/Flow\022\025\n\rlanguage_code\030\002 \001(\t\"\235\001"
-          + "\n\021UpdateFlowRequest\022;\n\004flow\030\001 \001(\0132(.goog"
-          + "le.cloud.dialogflow.cx.v3beta1.FlowB\003\340A\002"
-          + "\0224\n\013update_mask\030\002 \001(\0132\032.google.protobuf."
-          + "FieldMaskB\003\340A\002\022\025\n\rlanguage_code\030\003 \001(\t\"H\n"
-          + "\020TrainFlowRequest\0224\n\004name\030\001 \001(\tB&\340A\002\372A \n"
-          + "\036dialogflow.googleapis.com/Flow2\231\n\n\005Flow"
-          + "s\022\302\001\n\nCreateFlow\0225.google.cloud.dialogfl"
-          + "ow.cx.v3beta1.CreateFlowRequest\032(.google"
-          + ".cloud.dialogflow.cx.v3beta1.Flow\"S\202\323\344\223\002"
-          + "?\"7/v3beta1/{parent=projects/*/locations"
-          + "/*/agents/*}/flows:\004flow\332A\013parent,flow\022\243"
-          + "\001\n\nDeleteFlow\0225.google.cloud.dialogflow."
-          + "cx.v3beta1.DeleteFlowRequest\032\026.google.pr"
-          + "otobuf.Empty\"F\202\323\344\223\0029*7/v3beta1/{name=pro"
-          + "jects/*/locations/*/agents/*/flows/*}\332A\004"
-          + "name\022\302\001\n\tListFlows\0224.google.cloud.dialog"
-          + "flow.cx.v3beta1.ListFlowsRequest\0325.googl"
-          + "e.cloud.dialogflow.cx.v3beta1.ListFlowsR"
-          + "esponse\"H\202\323\344\223\0029\0227/v3beta1/{parent=projec"
-          + "ts/*/locations/*/agents/*}/flows\332A\006paren"
-          + "t\022\257\001\n\007GetFlow\0222.google.cloud.dialogflow."
-          + "cx.v3beta1.GetFlowRequest\032(.google.cloud"
-          + ".dialogflow.cx.v3beta1.Flow\"F\202\323\344\223\0029\0227/v3"
-          + "beta1/{name=projects/*/locations/*/agent"
-          + "s/*/flows/*}\332A\004name\022\314\001\n\nUpdateFlow\0225.goo"
-          + "gle.cloud.dialogflow.cx.v3beta1.UpdateFl"
-          + "owRequest\032(.google.cloud.dialogflow.cx.v"
-          + "3beta1.Flow\"]\202\323\344\223\002D2</v3beta1/{flow.name"
-          + "=projects/*/locations/*/agents/*/flows/*"
-          + "}:\004flow\332A\020flow,update_mask\022\344\001\n\tTrainFlow"
-          + "\0224.google.cloud.dialogflow.cx.v3beta1.Tr"
-          + "ainFlowRequest\032\035.google.longrunning.Oper"
-          + "ation\"\201\001\202\323\344\223\002B\"=/v3beta1/{name=projects/"
-          + "*/locations/*/agents/*/flows/*}:train:\001*"
-          + "\332A\004name\312A/\n\025google.protobuf.Empty\022\026googl"
-          + "e.protobuf.Struct\032x\312A\031dialogflow.googlea"
-          + "pis.com\322AYhttps://www.googleapis.com/aut"
-          + "h/cloud-platform,https://www.googleapis."
-          + "com/auth/dialogflowB\250\001\n&com.google.cloud"
-          + ".dialogflow.cx.v3beta1B\tFlowProtoP\001ZDgoo"
-          + "gle.golang.org/genproto/googleapis/cloud"
-          + "/dialogflow/cx/v3beta1;cx\370\001\001\242\002\002DF\252\002\"Goog"
-          + "le.Cloud.Dialogflow.Cx.V3Beta1b\006proto3"
+          + "\001(\010B\002\030\001\"Y\n\tModelType\022\032\n\026MODEL_TYPE_UNSPE"
+          + "CIFIED\020\000\022\027\n\023MODEL_TYPE_STANDARD\020\001\022\027\n\023MOD"
+          + "EL_TYPE_ADVANCED\020\003\"{\n\021ModelTrainingMode\022"
+          + "#\n\037MODEL_TRAINING_MODE_UNSPECIFIED\020\000\022!\n\035"
+          + "MODEL_TRAINING_MODE_AUTOMATIC\020\001\022\036\n\032MODEL"
+          + "_TRAINING_MODE_MANUAL\020\002\"\217\003\n\004Flow\022\014\n\004name"
+          + "\030\001 \001(\t\022\031\n\014display_name\030\002 \001(\tB\003\340A\002\022\023\n\013des"
+          + "cription\030\003 \001(\t\022N\n\021transition_routes\030\004 \003("
+          + "\01323.google.cloud.dialogflow.cx.v3beta1.T"
+          + "ransitionRoute\022H\n\016event_handlers\030\n \003(\01320"
+          + ".google.cloud.dialogflow.cx.v3beta1.Even"
+          + "tHandler\022E\n\014nlu_settings\030\013 \001(\0132/.google."
+          + "cloud.dialogflow.cx.v3beta1.NluSettings:"
+          + "h\352Ae\n\036dialogflow.googleapis.com/Flow\022Cpr"
+          + "ojects/{project}/locations/{location}/ag"
+          + "ents/{agent}/flows/{flow}\"\237\001\n\021CreateFlow"
+          + "Request\0226\n\006parent\030\001 \001(\tB&\340A\002\372A \022\036dialogf"
+          + "low.googleapis.com/Flow\022;\n\004flow\030\002 \001(\0132(."
+          + "google.cloud.dialogflow.cx.v3beta1.FlowB"
+          + "\003\340A\002\022\025\n\rlanguage_code\030\003 \001(\t\"X\n\021DeleteFlo"
+          + "wRequest\0224\n\004name\030\001 \001(\tB&\340A\002\372A \n\036dialogfl"
+          + "ow.googleapis.com/Flow\022\r\n\005force\030\002 \001(\010\"\210\001"
+          + "\n\020ListFlowsRequest\0226\n\006parent\030\001 \001(\tB&\340A\002\372"
+          + "A \022\036dialogflow.googleapis.com/Flow\022\021\n\tpa"
+          + "ge_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\022\025\n\rlan"
+          + "guage_code\030\004 \001(\t\"e\n\021ListFlowsResponse\0227\n"
+          + "\005flows\030\001 \003(\0132(.google.cloud.dialogflow.c"
+          + "x.v3beta1.Flow\022\027\n\017next_page_token\030\002 \001(\t\""
+          + "]\n\016GetFlowRequest\0224\n\004name\030\001 \001(\tB&\340A\002\372A \n"
+          + "\036dialogflow.googleapis.com/Flow\022\025\n\rlangu"
+          + "age_code\030\002 \001(\t\"\235\001\n\021UpdateFlowRequest\022;\n\004"
+          + "flow\030\001 \001(\0132(.google.cloud.dialogflow.cx."
+          + "v3beta1.FlowB\003\340A\002\0224\n\013update_mask\030\002 \001(\0132\032"
+          + ".google.protobuf.FieldMaskB\003\340A\002\022\025\n\rlangu"
+          + "age_code\030\003 \001(\t\"H\n\020TrainFlowRequest\0224\n\004na"
+          + "me\030\001 \001(\tB&\340A\002\372A \n\036dialogflow.googleapis."
+          + "com/Flow2\231\n\n\005Flows\022\302\001\n\nCreateFlow\0225.goog"
+          + "le.cloud.dialogflow.cx.v3beta1.CreateFlo"
+          + "wRequest\032(.google.cloud.dialogflow.cx.v3"
+          + "beta1.Flow\"S\202\323\344\223\002?\"7/v3beta1/{parent=pro"
+          + "jects/*/locations/*/agents/*}/flows:\004flo"
+          + "w\332A\013parent,flow\022\243\001\n\nDeleteFlow\0225.google."
+          + "cloud.dialogflow.cx.v3beta1.DeleteFlowRe"
+          + "quest\032\026.google.protobuf.Empty\"F\202\323\344\223\0029*7/"
+          + "v3beta1/{name=projects/*/locations/*/age"
+          + "nts/*/flows/*}\332A\004name\022\302\001\n\tListFlows\0224.go"
+          + "ogle.cloud.dialogflow.cx.v3beta1.ListFlo"
+          + "wsRequest\0325.google.cloud.dialogflow.cx.v"
+          + "3beta1.ListFlowsResponse\"H\202\323\344\223\0029\0227/v3bet"
+          + "a1/{parent=projects/*/locations/*/agents"
+          + "/*}/flows\332A\006parent\022\257\001\n\007GetFlow\0222.google."
+          + "cloud.dialogflow.cx.v3beta1.GetFlowReque"
+          + "st\032(.google.cloud.dialogflow.cx.v3beta1."
+          + "Flow\"F\202\323\344\223\0029\0227/v3beta1/{name=projects/*/"
+          + "locations/*/agents/*/flows/*}\332A\004name\022\314\001\n"
+          + "\nUpdateFlow\0225.google.cloud.dialogflow.cx"
+          + ".v3beta1.UpdateFlowRequest\032(.google.clou"
+          + "d.dialogflow.cx.v3beta1.Flow\"]\202\323\344\223\002D2</v"
+          + "3beta1/{flow.name=projects/*/locations/*"
+          + "/agents/*/flows/*}:\004flow\332A\020flow,update_m"
+          + "ask\022\344\001\n\tTrainFlow\0224.google.cloud.dialogf"
+          + "low.cx.v3beta1.TrainFlowRequest\032\035.google"
+          + ".longrunning.Operation\"\201\001\202\323\344\223\002B\"=/v3beta"
+          + "1/{name=projects/*/locations/*/agents/*/"
+          + "flows/*}:train:\001*\332A\004name\312A/\n\025google.prot"
+          + "obuf.Empty\022\026google.protobuf.Struct\032x\312A\031d"
+          + "ialogflow.googleapis.com\322AYhttps://www.g"
+          + "oogleapis.com/auth/cloud-platform,https:"
+          + "//www.googleapis.com/auth/dialogflowB\250\001\n"
+          + "&com.google.cloud.dialogflow.cx.v3beta1B"
+          + "\tFlowProtoP\001ZDgoogle.golang.org/genproto"
+          + "/googleapis/cloud/dialogflow/cx/v3beta1;"
+          + "cx\370\001\001\242\002\002DF\252\002\"Google.Cloud.Dialogflow.Cx."
+          + "V3Beta1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Form.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Form.java
index bf447ccb2..16ac0b973 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Form.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Form.java
@@ -25,8 +25,9 @@
  * A form is a data model that groups related parameters that can be collected
  * from the user. The process in which the agent prompts the user and collects
  * parameter values from the user is called form filling. A form can be added to
- * a [page][google.cloud.dialogflow.cx.v3beta1.Page]. When form filling is done, the filled parameters will be
- * written to the [session][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+ * a [page][google.cloud.dialogflow.cx.v3beta1.Page]. When form filling is done,
+ * the filled parameters will be written to the
+ * [session][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.Form}
@@ -4379,8 +4380,9 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    * A form is a data model that groups related parameters that can be collected
    * from the user. The process in which the agent prompts the user and collects
    * parameter values from the user is called form filling. A form can be added to
-   * a [page][google.cloud.dialogflow.cx.v3beta1.Page]. When form filling is done, the filled parameters will be
-   * written to the [session][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * a [page][google.cloud.dialogflow.cx.v3beta1.Page]. When form filling is done,
+   * the filled parameters will be written to the
+   * [session][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.Form}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FulfillIntentResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FulfillIntentResponse.java
index e602ce21f..d095798bc 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FulfillIntentResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FulfillIntentResponse.java
@@ -259,9 +259,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.QueryResultOrBuilder getQueryResul
    * The audio data bytes encoded as specified in the request.
    * Note: The output audio is generated based on the values of default platform
    * text responses found in the
-   * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-   * multiple default text responses exist, they will be concatenated when
-   * generating audio. If no default platform text responses exist, the
+   * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+   * field. If multiple default text responses exist, they will be concatenated
+   * when generating audio. If no default platform text responses exist, the
    * generated audio content will be empty.
    * In some scenarios, multiple output audio fields may be present in the
    * response structure. In these cases, only the top-most-level audio output
@@ -1023,9 +1023,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.QueryResultOrBuilder getQueryResul
      * The audio data bytes encoded as specified in the request.
      * Note: The output audio is generated based on the values of default platform
      * text responses found in the
-     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-     * multiple default text responses exist, they will be concatenated when
-     * generating audio. If no default platform text responses exist, the
+     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+     * field. If multiple default text responses exist, they will be concatenated
+     * when generating audio. If no default platform text responses exist, the
      * generated audio content will be empty.
      * In some scenarios, multiple output audio fields may be present in the
      * response structure. In these cases, only the top-most-level audio output
@@ -1047,9 +1047,9 @@ public com.google.protobuf.ByteString getOutputAudio() {
      * The audio data bytes encoded as specified in the request.
      * Note: The output audio is generated based on the values of default platform
      * text responses found in the
-     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-     * multiple default text responses exist, they will be concatenated when
-     * generating audio. If no default platform text responses exist, the
+     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+     * field. If multiple default text responses exist, they will be concatenated
+     * when generating audio. If no default platform text responses exist, the
      * generated audio content will be empty.
      * In some scenarios, multiple output audio fields may be present in the
      * response structure. In these cases, only the top-most-level audio output
@@ -1077,9 +1077,9 @@ public Builder setOutputAudio(com.google.protobuf.ByteString value) {
      * The audio data bytes encoded as specified in the request.
      * Note: The output audio is generated based on the values of default platform
      * text responses found in the
-     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-     * multiple default text responses exist, they will be concatenated when
-     * generating audio. If no default platform text responses exist, the
+     * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+     * field. If multiple default text responses exist, they will be concatenated
+     * when generating audio. If no default platform text responses exist, the
      * generated audio content will be empty.
      * In some scenarios, multiple output audio fields may be present in the
      * response structure. In these cases, only the top-most-level audio output
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FulfillIntentResponseOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FulfillIntentResponseOrBuilder.java
index 7c9a92b54..ede5f0e55 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FulfillIntentResponseOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/FulfillIntentResponseOrBuilder.java
@@ -92,9 +92,9 @@ public interface FulfillIntentResponseOrBuilder
    * The audio data bytes encoded as specified in the request.
    * Note: The output audio is generated based on the values of default platform
    * text responses found in the
-   * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-   * multiple default text responses exist, they will be concatenated when
-   * generating audio. If no default platform text responses exist, the
+   * [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+   * field. If multiple default text responses exist, they will be concatenated
+   * when generating audio. If no default platform text responses exist, the
    * generated audio content will be empty.
    * In some scenarios, multiple output audio fields may be present in the
    * response structure. In these cases, only the top-most-level audio output
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetEntityTypeRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetEntityTypeRequest.java
index cfe896b79..68ed1a7d1 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetEntityTypeRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetEntityTypeRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType].
+ * The request message for
+ * [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetEntityTypeRequest}
@@ -416,7 +417,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType].
+   * The request message for
+   * [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetEntityTypeRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetFlowRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetFlowRequest.java
index c2595d2ff..c6a71b34c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetFlowRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetFlowRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The response message for [Flows.GetFlow][google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow].
+ * The response message for
+ * [Flows.GetFlow][google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetFlowRequest}
@@ -414,7 +415,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The response message for [Flows.GetFlow][google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow].
+   * The response message for
+   * [Flows.GetFlow][google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetFlowRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetPageRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetPageRequest.java
index 5c86aabd1..22c6265fa 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetPageRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetPageRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Pages.GetPage][google.cloud.dialogflow.cx.v3beta1.Pages.GetPage].
+ * The request message for
+ * [Pages.GetPage][google.cloud.dialogflow.cx.v3beta1.Pages.GetPage].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetPageRequest}
@@ -187,7 +188,7 @@ public com.google.protobuf.ByteString getNameBytes() {
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -222,7 +223,7 @@ public java.lang.String getLanguageCode() {
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -422,7 +423,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Pages.GetPage][google.cloud.dialogflow.cx.v3beta1.Pages.GetPage].
+   * The request message for
+   * [Pages.GetPage][google.cloud.dialogflow.cx.v3beta1.Pages.GetPage].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetPageRequest}
@@ -720,7 +722,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -754,7 +756,7 @@ public java.lang.String getLanguageCode() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -788,7 +790,7 @@ public com.google.protobuf.ByteString getLanguageCodeBytes() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -821,7 +823,7 @@ public Builder setLanguageCode(java.lang.String value) {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -850,7 +852,7 @@ public Builder clearLanguageCode() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetPageRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetPageRequestOrBuilder.java
index 28ae2bf8d..c2db8cf64 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetPageRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetPageRequestOrBuilder.java
@@ -65,7 +65,7 @@ public interface GetPageRequestOrBuilder
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -89,7 +89,7 @@ public interface GetPageRequestOrBuilder
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetSessionEntityTypeRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetSessionEntityTypeRequest.java
index a7b4433e1..23a944d76 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetSessionEntityTypeRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetSessionEntityTypeRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [SessionEntityTypes.GetSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.GetSessionEntityType].
+ * The request message for
+ * [SessionEntityTypes.GetSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.GetSessionEntityType].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetSessionEntityTypeRequest}
@@ -119,7 +120,11 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * <pre>
    * Required. The name of the session entity type.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -146,7 +151,11 @@ public java.lang.String getName() {
    * <pre>
    * Required. The name of the session entity type.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -333,7 +342,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [SessionEntityTypes.GetSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.GetSessionEntityType].
+   * The request message for
+   * [SessionEntityTypes.GetSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.GetSessionEntityType].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetSessionEntityTypeRequest}
@@ -502,7 +512,11 @@ public Builder mergeFrom(
      * <pre>
      * Required. The name of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -528,7 +542,11 @@ public java.lang.String getName() {
      * <pre>
      * Required. The name of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -554,7 +572,11 @@ public com.google.protobuf.ByteString getNameBytes() {
      * <pre>
      * Required. The name of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -579,7 +601,11 @@ public Builder setName(java.lang.String value) {
      * <pre>
      * Required. The name of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -600,7 +626,11 @@ public Builder clearName() {
      * <pre>
      * Required. The name of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetSessionEntityTypeRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetSessionEntityTypeRequestOrBuilder.java
index d02e20f56..01e55a87c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetSessionEntityTypeRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetSessionEntityTypeRequestOrBuilder.java
@@ -29,7 +29,11 @@ public interface GetSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The name of the session entity type.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -45,7 +49,11 @@ public interface GetSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The name of the session entity type.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetWebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetWebhookRequest.java
index fad0e1648..1a784451b 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetWebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/GetWebhookRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.GetWebhook].
+ * The request message for
+ * [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.GetWebhook].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetWebhookRequest}
@@ -332,7 +333,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.GetWebhook].
+   * The request message for
+   * [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.GetWebhook].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.GetWebhookRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/InputAudioConfig.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/InputAudioConfig.java
index 40c7cb901..7214be0ed 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/InputAudioConfig.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/InputAudioConfig.java
@@ -227,10 +227,12 @@ public int getSampleRateHertz() {
    *
    *
    * <pre>
-   * Optional. If `true`, Dialogflow returns [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
-   * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
+   * Optional. If `true`, Dialogflow returns
+   * [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
+   * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
    * </pre>
    *
    * <code>bool enable_word_info = 13;</code>
@@ -394,7 +396,8 @@ public com.google.protobuf.ByteString getModelBytes() {
    *
    *
    * <pre>
-   * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+   * Optional. Which variant of the [Speech
+   * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
@@ -409,7 +412,8 @@ public int getModelVariantValue() {
    *
    *
    * <pre>
-   * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+   * Optional. Which variant of the [Speech
+   * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
@@ -1063,10 +1067,12 @@ public Builder clearSampleRateHertz() {
      *
      *
      * <pre>
-     * Optional. If `true`, Dialogflow returns [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
-     * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
+     * Optional. If `true`, Dialogflow returns
+     * [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
+     * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
      * </pre>
      *
      * <code>bool enable_word_info = 13;</code>
@@ -1081,10 +1087,12 @@ public boolean getEnableWordInfo() {
      *
      *
      * <pre>
-     * Optional. If `true`, Dialogflow returns [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
-     * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
+     * Optional. If `true`, Dialogflow returns
+     * [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
+     * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
      * </pre>
      *
      * <code>bool enable_word_info = 13;</code>
@@ -1102,10 +1110,12 @@ public Builder setEnableWordInfo(boolean value) {
      *
      *
      * <pre>
-     * Optional. If `true`, Dialogflow returns [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
-     * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
+     * Optional. If `true`, Dialogflow returns
+     * [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
+     * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
      * </pre>
      *
      * <code>bool enable_word_info = 13;</code>
@@ -1484,7 +1494,8 @@ public Builder setModelBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+     * Optional. Which variant of the [Speech
+     * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
@@ -1499,7 +1510,8 @@ public int getModelVariantValue() {
      *
      *
      * <pre>
-     * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+     * Optional. Which variant of the [Speech
+     * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
@@ -1517,7 +1529,8 @@ public Builder setModelVariantValue(int value) {
      *
      *
      * <pre>
-     * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+     * Optional. Which variant of the [Speech
+     * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
@@ -1537,7 +1550,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant getModelVariant
      *
      *
      * <pre>
-     * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+     * Optional. Which variant of the [Speech
+     * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
@@ -1559,7 +1573,8 @@ public Builder setModelVariant(
      *
      *
      * <pre>
-     * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+     * Optional. Which variant of the [Speech
+     * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/InputAudioConfigOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/InputAudioConfigOrBuilder.java
index c01a08850..534e4021b 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/InputAudioConfigOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/InputAudioConfigOrBuilder.java
@@ -73,10 +73,12 @@ public interface InputAudioConfigOrBuilder
    *
    *
    * <pre>
-   * Optional. If `true`, Dialogflow returns [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
-   * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
+   * Optional. If `true`, Dialogflow returns
+   * [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
+   * [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
    * </pre>
    *
    * <code>bool enable_word_info = 13;</code>
@@ -201,7 +203,8 @@ public interface InputAudioConfigOrBuilder
    *
    *
    * <pre>
-   * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+   * Optional. Which variant of the [Speech
+   * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
@@ -213,7 +216,8 @@ public interface InputAudioConfigOrBuilder
    *
    *
    * <pre>
-   * Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+   * Optional. Which variant of the [Speech
+   * model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.SpeechModelVariant model_variant = 10;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListEntityTypesRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListEntityTypesRequest.java
index 6e975123a..9d3d60fbe 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListEntityTypesRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListEntityTypesRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
+ * The request message for
+ * [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListEntityTypesRequest}
@@ -513,7 +514,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
+   * The request message for
+   * [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListEntityTypesRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListEntityTypesResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListEntityTypesResponse.java
index d2145c7e0..247c41109 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListEntityTypesResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListEntityTypesResponse.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The response message for [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
+ * The response message for
+ * [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListEntityTypesResponse}
@@ -430,7 +431,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The response message for [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
+   * The response message for
+   * [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListEntityTypesResponse}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListFlowsRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListFlowsRequest.java
index 4b88dfbdb..bd0b5979e 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListFlowsRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListFlowsRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
+ * The request message for
+ * [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListFlowsRequest}
@@ -511,7 +512,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
+   * The request message for
+   * [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListFlowsRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListFlowsResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListFlowsResponse.java
index e9c3879e1..fc28db242 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListFlowsResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListFlowsResponse.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The response message for [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
+ * The response message for
+ * [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListFlowsResponse}
@@ -427,7 +428,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The response message for [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
+   * The response message for
+   * [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListFlowsResponse}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesRequest.java
index e71aac1d9..0c926d5e5 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
+ * The request message for
+ * [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListPagesRequest}
@@ -200,7 +201,7 @@ public com.google.protobuf.ByteString getParentBytes() {
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -235,7 +236,7 @@ public java.lang.String getLanguageCode() {
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -521,7 +522,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
+   * The request message for
+   * [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListPagesRequest}
@@ -832,7 +834,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -866,7 +868,7 @@ public java.lang.String getLanguageCode() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -900,7 +902,7 @@ public com.google.protobuf.ByteString getLanguageCodeBytes() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -933,7 +935,7 @@ public Builder setLanguageCode(java.lang.String value) {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -962,7 +964,7 @@ public Builder clearLanguageCode() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesRequestOrBuilder.java
index 3f2485ac3..40fe02f4b 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesRequestOrBuilder.java
@@ -65,7 +65,7 @@ public interface ListPagesRequestOrBuilder
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -89,7 +89,7 @@ public interface ListPagesRequestOrBuilder
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesResponse.java
index 3f7469217..7fa22566e 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListPagesResponse.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The response message for [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
+ * The response message for
+ * [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListPagesResponse}
@@ -427,7 +428,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The response message for [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
+   * The response message for
+   * [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListPagesResponse}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesRequest.java
index 66675c529..1677f176b 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
+ * The request message for
+ * [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListSessionEntityTypesRequest}
@@ -132,7 +133,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * <pre>
    * Required. The session to list all session entity types from.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -159,7 +163,10 @@ public java.lang.String getParent() {
    * <pre>
    * Required. The session to list all session entity types from.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -432,7 +439,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
+   * The request message for
+   * [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListSessionEntityTypesRequest}
@@ -614,7 +622,10 @@ public Builder mergeFrom(
      * <pre>
      * Required. The session to list all session entity types from.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -640,7 +651,10 @@ public java.lang.String getParent() {
      * <pre>
      * Required. The session to list all session entity types from.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -666,7 +680,10 @@ public com.google.protobuf.ByteString getParentBytes() {
      * <pre>
      * Required. The session to list all session entity types from.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -691,7 +708,10 @@ public Builder setParent(java.lang.String value) {
      * <pre>
      * Required. The session to list all session entity types from.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -712,7 +732,10 @@ public Builder clearParent() {
      * <pre>
      * Required. The session to list all session entity types from.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesRequestOrBuilder.java
index 549b41054..f8962f345 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesRequestOrBuilder.java
@@ -29,7 +29,10 @@ public interface ListSessionEntityTypesRequestOrBuilder
    * <pre>
    * Required. The session to list all session entity types from.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -45,7 +48,10 @@ public interface ListSessionEntityTypesRequestOrBuilder
    * <pre>
    * Required. The session to list all session entity types from.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesResponse.java
index 8ca058dab..c96a6ac86 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListSessionEntityTypesResponse.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The response message for [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
+ * The response message for
+ * [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListSessionEntityTypesResponse}
@@ -441,7 +442,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The response message for [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
+   * The response message for
+   * [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListSessionEntityTypesResponse}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListWebhooksRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListWebhooksRequest.java
index 1433052f8..0dde3d739 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListWebhooksRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListWebhooksRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
+ * The request message for
+ * [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListWebhooksRequest}
@@ -429,7 +430,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
+   * The request message for
+   * [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListWebhooksRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListWebhooksResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListWebhooksResponse.java
index cc964672d..de3e31a13 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListWebhooksResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ListWebhooksResponse.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The response message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
+ * The response message for
+ * [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListWebhooksResponse}
@@ -428,7 +429,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The response message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
+   * The response message for
+   * [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ListWebhooksResponse}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Match.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Match.java
index 6b8650c66..53ad1eed9 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Match.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Match.java
@@ -384,9 +384,10 @@ private MatchType(int value) {
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-   * this message, including but not limited to: `name` and `display_name`. Only
-   * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * query. Some, not all fields are filled in this message, including but not
+   * limited to: `name` and `display_name`. Only filled for
+   * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -401,9 +402,10 @@ public boolean hasIntent() {
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-   * this message, including but not limited to: `name` and `display_name`. Only
-   * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * query. Some, not all fields are filled in this message, including but not
+   * limited to: `name` and `display_name`. Only filled for
+   * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -420,9 +422,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.Intent getIntent() {
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-   * this message, including but not limited to: `name` and `display_name`. Only
-   * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * query. Some, not all fields are filled in this message, including but not
+   * limited to: `name` and `display_name`. Only filled for
+   * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1045,9 +1048,10 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1061,9 +1065,10 @@ public boolean hasIntent() {
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1083,9 +1088,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.Intent getIntent() {
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1107,9 +1113,10 @@ public Builder setIntent(com.google.cloud.dialogflow.cx.v3beta1.Intent value) {
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1129,9 +1136,10 @@ public Builder setIntent(
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1157,9 +1165,10 @@ public Builder mergeIntent(com.google.cloud.dialogflow.cx.v3beta1.Intent value)
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1179,9 +1188,10 @@ public Builder clearIntent() {
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1195,9 +1205,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.Intent.Builder getIntentBuilder()
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -1215,9 +1226,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.IntentOrBuilder getIntentOrBuilder
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-     * this message, including but not limited to: `name` and `display_name`. Only
-     * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * query. Some, not all fields are filled in this message, including but not
+     * limited to: `name` and `display_name`. Only filled for
+     * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentRequest.java
index 875251914..a4a648bef 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentRequest.java
@@ -153,7 +153,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * <pre>
    * Required. The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -183,7 +186,10 @@ public java.lang.String getSession() {
    * <pre>
    * Required. The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -692,7 +698,10 @@ public Builder mergeFrom(
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -721,7 +730,10 @@ public java.lang.String getSession() {
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -750,7 +762,10 @@ public com.google.protobuf.ByteString getSessionBytes() {
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -778,7 +793,10 @@ public Builder setSession(java.lang.String value) {
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -802,7 +820,10 @@ public Builder clearSession() {
      * <pre>
      * Required. The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentRequestOrBuilder.java
index 9b4872bfc..ec01ba02f 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentRequestOrBuilder.java
@@ -29,7 +29,10 @@ public interface MatchIntentRequestOrBuilder
    * <pre>
    * Required. The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -48,7 +51,10 @@ public interface MatchIntentRequestOrBuilder
    * <pre>
    * Required. The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentResponse.java
index 02a3f205c..8ba5f7b0b 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentResponse.java
@@ -211,8 +211,8 @@ public QueryCase getQueryCase() {
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+   * was provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 1;</code>
@@ -239,8 +239,8 @@ public java.lang.String getText() {
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+   * was provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 1;</code>
@@ -269,8 +269,9 @@ public com.google.protobuf.ByteString getTextBytes() {
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
+   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+   * provided as input, this field will contain a copy of the intent
+   * identifier.
    * </pre>
    *
    * <code>string trigger_intent = 2;</code>
@@ -297,8 +298,9 @@ public java.lang.String getTriggerIntent() {
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
+   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+   * provided as input, this field will contain a copy of the intent
+   * identifier.
    * </pre>
    *
    * <code>string trigger_intent = 2;</code>
@@ -327,8 +329,9 @@ public com.google.protobuf.ByteString getTriggerIntentBytes() {
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-   * this field will contain the trascript for the audio.
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+   * input, this field will contain the trascript for the audio.
    * </pre>
    *
    * <code>string transcript = 3;</code>
@@ -355,8 +358,9 @@ public java.lang.String getTranscript() {
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-   * this field will contain the trascript for the audio.
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+   * input, this field will contain the trascript for the audio.
    * </pre>
    *
    * <code>string transcript = 3;</code>
@@ -460,8 +464,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.MatchOrBuilder getMatchesOrBuilder
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -476,8 +481,9 @@ public boolean hasCurrentPage() {
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -494,8 +500,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.Page getCurrentPage() {
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -999,8 +1006,8 @@ public Builder clearQuery() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -1028,8 +1035,8 @@ public java.lang.String getText() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -1057,8 +1064,8 @@ public com.google.protobuf.ByteString getTextBytes() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -1079,8 +1086,8 @@ public Builder setText(java.lang.String value) {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -1099,8 +1106,8 @@ public Builder clearText() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -1123,8 +1130,9 @@ public Builder setTextBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 2;</code>
@@ -1152,8 +1160,9 @@ public java.lang.String getTriggerIntent() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 2;</code>
@@ -1181,8 +1190,9 @@ public com.google.protobuf.ByteString getTriggerIntentBytes() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 2;</code>
@@ -1203,8 +1213,9 @@ public Builder setTriggerIntent(java.lang.String value) {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 2;</code>
@@ -1223,8 +1234,9 @@ public Builder clearTriggerIntent() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 2;</code>
@@ -1247,8 +1259,9 @@ public Builder setTriggerIntentBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 3;</code>
@@ -1276,8 +1289,9 @@ public java.lang.String getTranscript() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 3;</code>
@@ -1305,8 +1319,9 @@ public com.google.protobuf.ByteString getTranscriptBytes() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 3;</code>
@@ -1327,8 +1342,9 @@ public Builder setTranscript(java.lang.String value) {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 3;</code>
@@ -1347,8 +1363,9 @@ public Builder clearTranscript() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 3;</code>
@@ -1745,8 +1762,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.Match.Builder addMatchesBuilder(in
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -1760,8 +1778,9 @@ public boolean hasCurrentPage() {
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -1781,8 +1800,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.Page getCurrentPage() {
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -1804,8 +1824,9 @@ public Builder setCurrentPage(com.google.cloud.dialogflow.cx.v3beta1.Page value)
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -1825,8 +1846,9 @@ public Builder setCurrentPage(
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -1852,8 +1874,9 @@ public Builder mergeCurrentPage(com.google.cloud.dialogflow.cx.v3beta1.Page valu
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -1873,8 +1896,9 @@ public Builder clearCurrentPage() {
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -1888,8 +1912,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.Page.Builder getCurrentPageBuilder
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -1907,8 +1932,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageOrBuilder getCurrentPageOrBuil
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentResponseOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentResponseOrBuilder.java
index 50fb2bcae..7c381578e 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentResponseOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchIntentResponseOrBuilder.java
@@ -27,8 +27,8 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+   * was provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 1;</code>
@@ -40,8 +40,8 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+   * was provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 1;</code>
@@ -54,8 +54,9 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
+   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+   * provided as input, this field will contain a copy of the intent
+   * identifier.
    * </pre>
    *
    * <code>string trigger_intent = 2;</code>
@@ -67,8 +68,9 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
+   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+   * provided as input, this field will contain a copy of the intent
+   * identifier.
    * </pre>
    *
    * <code>string trigger_intent = 2;</code>
@@ -81,8 +83,9 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-   * this field will contain the trascript for the audio.
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+   * input, this field will contain the trascript for the audio.
    * </pre>
    *
    * <code>string transcript = 3;</code>
@@ -94,8 +97,9 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-   * this field will contain the trascript for the audio.
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+   * input, this field will contain the trascript for the audio.
    * </pre>
    *
    * <code>string transcript = 3;</code>
@@ -165,8 +169,9 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -178,8 +183,9 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
@@ -191,8 +197,9 @@ public interface MatchIntentResponseOrBuilder
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 5;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchOrBuilder.java
index 633982743..43be1ec4d 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/MatchOrBuilder.java
@@ -27,9 +27,10 @@ public interface MatchOrBuilder
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-   * this message, including but not limited to: `name` and `display_name`. Only
-   * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * query. Some, not all fields are filled in this message, including but not
+   * limited to: `name` and `display_name`. Only filled for
+   * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -41,9 +42,10 @@ public interface MatchOrBuilder
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-   * this message, including but not limited to: `name` and `display_name`. Only
-   * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * query. Some, not all fields are filled in this message, including but not
+   * limited to: `name` and `display_name`. Only filled for
+   * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
@@ -55,9 +57,10 @@ public interface MatchOrBuilder
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-   * this message, including but not limited to: `name` and `display_name`. Only
-   * filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * query. Some, not all fields are filled in this message, including but not
+   * limited to: `name` and `display_name`. Only filled for
+   * [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 1;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/NluSettings.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/NluSettings.java
index 253a48f1f..faad46fe6 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/NluSettings.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/NluSettings.java
@@ -159,16 +159,6 @@ public enum ModelType implements com.google.protobuf.ProtocolMessageEnum {
      * <code>MODEL_TYPE_STANDARD = 1;</code>
      */
     MODEL_TYPE_STANDARD(1),
-    /**
-     *
-     *
-     * <pre>
-     * Use custom NLU model.
-     * </pre>
-     *
-     * <code>MODEL_TYPE_CUSTOM = 2;</code>
-     */
-    MODEL_TYPE_CUSTOM(2),
     /**
      *
      *
@@ -202,16 +192,6 @@ public enum ModelType implements com.google.protobuf.ProtocolMessageEnum {
      * <code>MODEL_TYPE_STANDARD = 1;</code>
      */
     public static final int MODEL_TYPE_STANDARD_VALUE = 1;
-    /**
-     *
-     *
-     * <pre>
-     * Use custom NLU model.
-     * </pre>
-     *
-     * <code>MODEL_TYPE_CUSTOM = 2;</code>
-     */
-    public static final int MODEL_TYPE_CUSTOM_VALUE = 2;
     /**
      *
      *
@@ -251,8 +231,6 @@ public static ModelType forNumber(int value) {
           return MODEL_TYPE_UNSPECIFIED;
         case 1:
           return MODEL_TYPE_STANDARD;
-        case 2:
-          return MODEL_TYPE_CUSTOM;
         case 3:
           return MODEL_TYPE_ADVANCED;
         default:
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Page.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Page.java
index 4cb13bdd4..b5ae7f2a4 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Page.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Page.java
@@ -221,7 +221,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    * <pre>
    * The unique identifier of the page.
-   * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+   * Required for the
+   * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+   * method.
+   * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
    * populates the name automatically.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -248,7 +251,10 @@ public java.lang.String getName() {
    *
    * <pre>
    * The unique identifier of the page.
-   * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+   * Required for the
+   * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+   * method.
+   * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
    * populates the name automatically.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -424,8 +430,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.FormOrBuilder getFormOrBuilder() {
    *
    *
    * <pre>
-   * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-   * with the page. Transition route groups must be unique within a page.
+   * Ordered list of
+   * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+   * associated with the page. Transition route groups must be unique within a
+   * page.
    * *   If multiple transition routes within a page scope refer to the same
    *     intent, then the precedence order is: page's transition route -&gt; page's
    *     transition route group -&gt; flow's transition routes.
@@ -447,8 +455,10 @@ public com.google.protobuf.ProtocolStringList getTransitionRouteGroupsList() {
    *
    *
    * <pre>
-   * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-   * with the page. Transition route groups must be unique within a page.
+   * Ordered list of
+   * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+   * associated with the page. Transition route groups must be unique within a
+   * page.
    * *   If multiple transition routes within a page scope refer to the same
    *     intent, then the precedence order is: page's transition route -&gt; page's
    *     transition route group -&gt; flow's transition routes.
@@ -470,8 +480,10 @@ public int getTransitionRouteGroupsCount() {
    *
    *
    * <pre>
-   * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-   * with the page. Transition route groups must be unique within a page.
+   * Ordered list of
+   * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+   * associated with the page. Transition route groups must be unique within a
+   * page.
    * *   If multiple transition routes within a page scope refer to the same
    *     intent, then the precedence order is: page's transition route -&gt; page's
    *     transition route group -&gt; flow's transition routes.
@@ -494,8 +506,10 @@ public java.lang.String getTransitionRouteGroups(int index) {
    *
    *
    * <pre>
-   * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-   * with the page. Transition route groups must be unique within a page.
+   * Ordered list of
+   * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+   * associated with the page. Transition route groups must be unique within a
+   * page.
    * *   If multiple transition routes within a page scope refer to the same
    *     intent, then the precedence order is: page's transition route -&gt; page's
    *     transition route group -&gt; flow's transition routes.
@@ -528,7 +542,8 @@ public com.google.protobuf.ByteString getTransitionRouteGroupsBytes(int index) {
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -552,7 +567,8 @@ public com.google.protobuf.ByteString getTransitionRouteGroupsBytes(int index) {
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -576,7 +592,8 @@ public com.google.protobuf.ByteString getTransitionRouteGroupsBytes(int index) {
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -599,7 +616,8 @@ public int getTransitionRoutesCount() {
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -622,7 +640,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.TransitionRoute getTransitionRoute
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -1264,7 +1283,10 @@ public Builder mergeFrom(
      *
      * <pre>
      * The unique identifier of the page.
-     * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+     * Required for the
+     * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+     * method.
+     * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
      * populates the name automatically.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -1290,7 +1312,10 @@ public java.lang.String getName() {
      *
      * <pre>
      * The unique identifier of the page.
-     * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+     * Required for the
+     * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+     * method.
+     * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
      * populates the name automatically.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -1316,7 +1341,10 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      * <pre>
      * The unique identifier of the page.
-     * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+     * Required for the
+     * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+     * method.
+     * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
      * populates the name automatically.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -1341,7 +1369,10 @@ public Builder setName(java.lang.String value) {
      *
      * <pre>
      * The unique identifier of the page.
-     * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+     * Required for the
+     * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+     * method.
+     * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
      * populates the name automatically.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -1362,7 +1393,10 @@ public Builder clearName() {
      *
      * <pre>
      * The unique identifier of the page.
-     * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+     * Required for the
+     * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+     * method.
+     * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
      * populates the name automatically.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -1885,8 +1919,10 @@ private void ensureTransitionRouteGroupsIsMutable() {
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -1909,8 +1945,10 @@ public com.google.protobuf.ProtocolStringList getTransitionRouteGroupsList() {
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -1933,8 +1971,10 @@ public int getTransitionRouteGroupsCount() {
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -1958,8 +1998,10 @@ public java.lang.String getTransitionRouteGroups(int index) {
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -1983,8 +2025,10 @@ public com.google.protobuf.ByteString getTransitionRouteGroupsBytes(int index) {
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -2015,8 +2059,10 @@ public Builder setTransitionRouteGroups(int index, java.lang.String value) {
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -2046,8 +2092,10 @@ public Builder addTransitionRouteGroups(java.lang.String value) {
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -2074,8 +2122,10 @@ public Builder addAllTransitionRouteGroups(java.lang.Iterable<java.lang.String>
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -2101,8 +2151,10 @@ public Builder clearTransitionRouteGroups() {
      *
      *
      * <pre>
-     * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-     * with the page. Transition route groups must be unique within a page.
+     * Ordered list of
+     * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+     * associated with the page. Transition route groups must be unique within a
+     * page.
      * *   If multiple transition routes within a page scope refer to the same
      *     intent, then the precedence order is: page's transition route -&gt; page's
      *     transition route group -&gt; flow's transition routes.
@@ -2159,7 +2211,8 @@ private void ensureTransitionRoutesIsMutable() {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2186,7 +2239,8 @@ private void ensureTransitionRoutesIsMutable() {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2212,7 +2266,8 @@ public int getTransitionRoutesCount() {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2238,7 +2293,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.TransitionRoute getTransitionRoute
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2271,7 +2327,8 @@ public Builder setTransitionRoutes(
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2301,7 +2358,8 @@ public Builder setTransitionRoutes(
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2334,7 +2392,8 @@ public Builder addTransitionRoutes(
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2367,7 +2426,8 @@ public Builder addTransitionRoutes(
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2397,7 +2457,8 @@ public Builder addTransitionRoutes(
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2427,7 +2488,8 @@ public Builder addTransitionRoutes(
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2458,7 +2520,8 @@ public Builder addAllTransitionRoutes(
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2487,7 +2550,8 @@ public Builder clearTransitionRoutes() {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2516,7 +2580,8 @@ public Builder removeTransitionRoutes(int index) {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2539,7 +2604,8 @@ public Builder removeTransitionRoutes(int index) {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2566,7 +2632,8 @@ public Builder removeTransitionRoutes(int index) {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2593,7 +2660,8 @@ public Builder removeTransitionRoutes(int index) {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2617,7 +2685,8 @@ public Builder removeTransitionRoutes(int index) {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
@@ -2642,7 +2711,8 @@ public Builder removeTransitionRoutes(int index) {
      * following order:
      * *   TransitionRoutes defined in the page with intent specified.
      * *   TransitionRoutes defined in the
-     * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+     * [transition route
+     * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
      * *   TransitionRoutes defined in flow with intent specified.
      * *   TransitionRoutes defined in the page with only condition specified.
      * </pre>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageInfo.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageInfo.java
index 6283429c9..3d4feb37b 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageInfo.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageInfo.java
@@ -137,7 +137,9 @@ public interface FormInfoOrBuilder
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -152,7 +154,9 @@ public interface FormInfoOrBuilder
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -167,7 +171,9 @@ com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo getParame
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -181,7 +187,9 @@ com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo getParame
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -198,7 +206,9 @@ com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo getParame
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -324,7 +334,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Required for
        * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The human-readable name of the parameter, unique within the form. This
        * field cannot be modified by the webhook.
@@ -339,7 +351,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Required for
        * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The human-readable name of the parameter, unique within the form. This
        * field cannot be modified by the webhook.
@@ -355,7 +369,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * Indicates whether the parameter is required. Optional parameters will
        * not trigger prompts; however, they are filled if the user specifies
        * them. Required parameters must be filled before form filling concludes.
@@ -371,10 +387,13 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-       * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-       * the webhook to invalidate the parameter; other values set by the
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Required for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * The state of the parameter. This field can be set to
+       * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+       * by the webhook to invalidate the parameter; other values set by the
        * webhook will be ignored.
        * </pre>
        *
@@ -389,10 +408,13 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-       * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-       * the webhook to invalidate the parameter; other values set by the
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Required for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * The state of the parameter. This field can be set to
+       * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+       * by the webhook to invalidate the parameter; other values set by the
        * webhook will be ignored.
        * </pre>
        *
@@ -409,7 +431,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The value of the parameter. This field can be set by the webhook to
        * change the parameter value.
        * </pre>
@@ -423,7 +447,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The value of the parameter. This field can be set by the webhook to
        * change the parameter value.
        * </pre>
@@ -437,7 +463,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The value of the parameter. This field can be set by the webhook to
        * change the parameter value.
        * </pre>
@@ -450,7 +478,10 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Ignored for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * Indicates if the parameter value was just collected on the last
        * conversation turn.
        * </pre>
@@ -785,7 +816,9 @@ private ParameterState(int value) {
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Required for
        * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The human-readable name of the parameter, unique within the form. This
        * field cannot be modified by the webhook.
@@ -811,7 +844,9 @@ public java.lang.String getDisplayName() {
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Required for
        * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The human-readable name of the parameter, unique within the form. This
        * field cannot be modified by the webhook.
@@ -840,7 +875,9 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * Indicates whether the parameter is required. Optional parameters will
        * not trigger prompts; however, they are filled if the user specifies
        * them. Required parameters must be filled before form filling concludes.
@@ -861,10 +898,13 @@ public boolean getRequired() {
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-       * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-       * the webhook to invalidate the parameter; other values set by the
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Required for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * The state of the parameter. This field can be set to
+       * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+       * by the webhook to invalidate the parameter; other values set by the
        * webhook will be ignored.
        * </pre>
        *
@@ -882,10 +922,13 @@ public int getStateValue() {
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-       * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-       * the webhook to invalidate the parameter; other values set by the
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Required for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * The state of the parameter. This field can be set to
+       * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+       * by the webhook to invalidate the parameter; other values set by the
        * webhook will be ignored.
        * </pre>
        *
@@ -915,7 +958,9 @@ public int getStateValue() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The value of the parameter. This field can be set by the webhook to
        * change the parameter value.
        * </pre>
@@ -932,7 +977,9 @@ public boolean hasValue() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The value of the parameter. This field can be set by the webhook to
        * change the parameter value.
        * </pre>
@@ -949,7 +996,9 @@ public com.google.protobuf.Value getValue() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The value of the parameter. This field can be set by the webhook to
        * change the parameter value.
        * </pre>
@@ -967,7 +1016,10 @@ public com.google.protobuf.ValueOrBuilder getValueOrBuilder() {
        *
        *
        * <pre>
-       * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+       * Ignored for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * Indicates if the parameter value was just collected on the last
        * conversation turn.
        * </pre>
@@ -1409,7 +1461,9 @@ public Builder mergeFrom(
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1434,7 +1488,9 @@ public java.lang.String getDisplayName() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1459,7 +1515,9 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1483,7 +1541,9 @@ public Builder setDisplayName(java.lang.String value) {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1503,7 +1563,9 @@ public Builder clearDisplayName() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1530,7 +1592,9 @@ public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * Indicates whether the parameter is required. Optional parameters will
          * not trigger prompts; however, they are filled if the user specifies
          * them. Required parameters must be filled before form filling concludes.
@@ -1548,7 +1612,9 @@ public boolean getRequired() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * Indicates whether the parameter is required. Optional parameters will
          * not trigger prompts; however, they are filled if the user specifies
          * them. Required parameters must be filled before form filling concludes.
@@ -1569,7 +1635,9 @@ public Builder setRequired(boolean value) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * Indicates whether the parameter is required. Optional parameters will
          * not trigger prompts; however, they are filled if the user specifies
          * them. Required parameters must be filled before form filling concludes.
@@ -1591,10 +1659,13 @@ public Builder clearRequired() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-         * the webhook to invalidate the parameter; other values set by the
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * The state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1612,10 +1683,13 @@ public int getStateValue() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-         * the webhook to invalidate the parameter; other values set by the
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * The state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1636,10 +1710,13 @@ public Builder setStateValue(int value) {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-         * the webhook to invalidate the parameter; other values set by the
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * The state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1666,10 +1743,13 @@ public Builder setStateValue(int value) {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-         * the webhook to invalidate the parameter; other values set by the
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * The state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1695,10 +1775,13 @@ public Builder setState(
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-         * the webhook to invalidate the parameter; other values set by the
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * The state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1725,7 +1808,9 @@ public Builder clearState() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1741,7 +1826,9 @@ public boolean hasValue() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1761,7 +1848,9 @@ public com.google.protobuf.Value getValue() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1785,7 +1874,9 @@ public Builder setValue(com.google.protobuf.Value value) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1806,7 +1897,9 @@ public Builder setValue(com.google.protobuf.Value.Builder builderForValue) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1831,7 +1924,9 @@ public Builder mergeValue(com.google.protobuf.Value value) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1853,7 +1948,9 @@ public Builder clearValue() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1869,7 +1966,9 @@ public com.google.protobuf.Value.Builder getValueBuilder() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1887,7 +1986,9 @@ public com.google.protobuf.ValueOrBuilder getValueOrBuilder() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * The value of the parameter. This field can be set by the webhook to
          * change the parameter value.
          * </pre>
@@ -1916,7 +2017,10 @@ public com.google.protobuf.ValueOrBuilder getValueOrBuilder() {
          *
          *
          * <pre>
-         * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Ignored for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * Indicates if the parameter value was just collected on the last
          * conversation turn.
          * </pre>
@@ -1933,7 +2037,10 @@ public boolean getJustCollected() {
          *
          *
          * <pre>
-         * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Ignored for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * Indicates if the parameter value was just collected on the last
          * conversation turn.
          * </pre>
@@ -1953,7 +2060,10 @@ public Builder setJustCollected(boolean value) {
          *
          *
          * <pre>
-         * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+         * Optional for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+         * Ignored for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
          * Indicates if the parameter value was just collected on the last
          * conversation turn.
          * </pre>
@@ -2032,7 +2142,9 @@ public com.google.protobuf.Parser<ParameterInfo> getParserForType() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -2050,7 +2162,9 @@ public com.google.protobuf.Parser<ParameterInfo> getParserForType() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -2070,7 +2184,9 @@ public com.google.protobuf.Parser<ParameterInfo> getParserForType() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -2087,7 +2203,9 @@ public int getParameterInfoCount() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -2105,7 +2223,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo ge
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * The parameters contained in the form. Note that the webhook cannot add
      * or remove any form parameter.
      * </pre>
@@ -2508,7 +2628,9 @@ private void ensureParameterInfoIsMutable() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2529,7 +2651,9 @@ private void ensureParameterInfoIsMutable() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2549,7 +2673,9 @@ public int getParameterInfoCount() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2570,7 +2696,9 @@ public int getParameterInfoCount() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2597,7 +2725,9 @@ public Builder setParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2623,7 +2753,9 @@ public Builder setParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2650,7 +2782,9 @@ public Builder addParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2677,7 +2811,9 @@ public Builder addParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2702,7 +2838,9 @@ public Builder addParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2728,7 +2866,9 @@ public Builder addParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2754,7 +2894,9 @@ public Builder addAllParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2777,7 +2919,9 @@ public Builder clearParameterInfo() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2800,7 +2944,9 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2817,7 +2963,9 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2838,7 +2986,9 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2861,7 +3011,9 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2881,7 +3033,9 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2902,7 +3056,9 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
        * The parameters contained in the form. Note that the webhook cannot add
        * or remove any form parameter.
        * </pre>
@@ -2995,10 +3151,13 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo getDefaultInstan
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * The unique identifier of the current page.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * unique identifier of the current page. Format: `projects/&lt;Project
+   * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+   * ID&gt;`.
    * </pre>
    *
    * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -3021,10 +3180,13 @@ public java.lang.String getCurrentPage() {
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * The unique identifier of the current page.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * unique identifier of the current page. Format: `projects/&lt;Project
+   * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+   * ID&gt;`.
    * </pre>
    *
    * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -3050,7 +3212,9 @@ public com.google.protobuf.ByteString getCurrentPageBytes() {
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -3066,7 +3230,9 @@ public boolean hasFormInfo() {
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -3084,7 +3250,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo getFormInfo() {
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -3445,10 +3613,13 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the current page.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the current page. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+     * ID&gt;`.
      * </pre>
      *
      * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -3470,10 +3641,13 @@ public java.lang.String getCurrentPage() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the current page.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the current page. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+     * ID&gt;`.
      * </pre>
      *
      * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -3495,10 +3669,13 @@ public com.google.protobuf.ByteString getCurrentPageBytes() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the current page.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the current page. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+     * ID&gt;`.
      * </pre>
      *
      * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -3519,10 +3696,13 @@ public Builder setCurrentPage(java.lang.String value) {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the current page.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the current page. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+     * ID&gt;`.
      * </pre>
      *
      * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -3539,10 +3719,13 @@ public Builder clearCurrentPage() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the current page.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the current page. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+     * ID&gt;`.
      * </pre>
      *
      * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -3571,7 +3754,9 @@ public Builder setCurrentPageBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3586,7 +3771,9 @@ public boolean hasFormInfo() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3607,7 +3794,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo getFormInfo() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3630,7 +3819,9 @@ public Builder setFormInfo(com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormI
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3651,7 +3842,9 @@ public Builder setFormInfo(
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3678,7 +3871,9 @@ public Builder mergeFormInfo(com.google.cloud.dialogflow.cx.v3beta1.PageInfo.For
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3699,7 +3894,9 @@ public Builder clearFormInfo() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3714,7 +3911,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.Builder getFormI
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3734,7 +3933,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.Builder getFormI
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
      * Information about the form.
      * </pre>
      *
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageInfoOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageInfoOrBuilder.java
index a6608831f..17f3aaf00 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageInfoOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageInfoOrBuilder.java
@@ -27,10 +27,13 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * The unique identifier of the current page.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * unique identifier of the current page. Format: `projects/&lt;Project
+   * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+   * ID&gt;`.
    * </pre>
    *
    * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -42,10 +45,13 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * The unique identifier of the current page.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * unique identifier of the current page. Format: `projects/&lt;Project
+   * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page
+   * ID&gt;`.
    * </pre>
    *
    * <code>string current_page = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -58,7 +64,9 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -71,7 +79,9 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -84,7 +94,9 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
    * Information about the form.
    * </pre>
    *
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageOrBuilder.java
index 9ea6020db..f11be7964 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/PageOrBuilder.java
@@ -28,7 +28,10 @@ public interface PageOrBuilder
    *
    * <pre>
    * The unique identifier of the page.
-   * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+   * Required for the
+   * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+   * method.
+   * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
    * populates the name automatically.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -44,7 +47,10 @@ public interface PageOrBuilder
    *
    * <pre>
    * The unique identifier of the page.
-   * Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+   * Required for the
+   * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+   * method.
+   * [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
    * populates the name automatically.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/flows/&lt;Flow ID&gt;/pages/&lt;Page ID&gt;`.
@@ -158,8 +164,10 @@ public interface PageOrBuilder
    *
    *
    * <pre>
-   * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-   * with the page. Transition route groups must be unique within a page.
+   * Ordered list of
+   * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+   * associated with the page. Transition route groups must be unique within a
+   * page.
    * *   If multiple transition routes within a page scope refer to the same
    *     intent, then the precedence order is: page's transition route -&gt; page's
    *     transition route group -&gt; flow's transition routes.
@@ -179,8 +187,10 @@ public interface PageOrBuilder
    *
    *
    * <pre>
-   * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-   * with the page. Transition route groups must be unique within a page.
+   * Ordered list of
+   * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+   * associated with the page. Transition route groups must be unique within a
+   * page.
    * *   If multiple transition routes within a page scope refer to the same
    *     intent, then the precedence order is: page's transition route -&gt; page's
    *     transition route group -&gt; flow's transition routes.
@@ -200,8 +210,10 @@ public interface PageOrBuilder
    *
    *
    * <pre>
-   * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-   * with the page. Transition route groups must be unique within a page.
+   * Ordered list of
+   * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+   * associated with the page. Transition route groups must be unique within a
+   * page.
    * *   If multiple transition routes within a page scope refer to the same
    *     intent, then the precedence order is: page's transition route -&gt; page's
    *     transition route group -&gt; flow's transition routes.
@@ -222,8 +234,10 @@ public interface PageOrBuilder
    *
    *
    * <pre>
-   * Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-   * with the page. Transition route groups must be unique within a page.
+   * Ordered list of
+   * [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+   * associated with the page. Transition route groups must be unique within a
+   * page.
    * *   If multiple transition routes within a page scope refer to the same
    *     intent, then the precedence order is: page's transition route -&gt; page's
    *     transition route group -&gt; flow's transition routes.
@@ -252,7 +266,8 @@ public interface PageOrBuilder
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -272,7 +287,8 @@ public interface PageOrBuilder
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -292,7 +308,8 @@ public interface PageOrBuilder
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -312,7 +329,8 @@ public interface PageOrBuilder
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
@@ -333,7 +351,8 @@ public interface PageOrBuilder
    * following order:
    * *   TransitionRoutes defined in the page with intent specified.
    * *   TransitionRoutes defined in the
-   * [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+   * [transition route
+   * groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
    * *   TransitionRoutes defined in flow with intent specified.
    * *   TransitionRoutes defined in the page with only condition specified.
    * </pre>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/QueryResult.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/QueryResult.java
index ce42da2a7..56b95baf7 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/QueryResult.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/QueryResult.java
@@ -327,8 +327,8 @@ public QueryCase getQueryCase() {
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+   * was provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 1;</code>
@@ -355,8 +355,8 @@ public java.lang.String getText() {
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+   * was provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 1;</code>
@@ -385,8 +385,9 @@ public com.google.protobuf.ByteString getTextBytes() {
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
+   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+   * provided as input, this field will contain a copy of the intent
+   * identifier.
    * </pre>
    *
    * <code>string trigger_intent = 11;</code>
@@ -413,8 +414,9 @@ public java.lang.String getTriggerIntent() {
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
+   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+   * provided as input, this field will contain a copy of the intent
+   * identifier.
    * </pre>
    *
    * <code>string trigger_intent = 11;</code>
@@ -443,8 +445,9 @@ public com.google.protobuf.ByteString getTriggerIntentBytes() {
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-   * this field will contain the trascript for the audio.
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+   * input, this field will contain the trascript for the audio.
    * </pre>
    *
    * <code>string transcript = 12;</code>
@@ -471,8 +474,9 @@ public java.lang.String getTranscript() {
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-   * this field will contain the trascript for the audio.
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+   * input, this field will contain the trascript for the audio.
    * </pre>
    *
    * <code>string transcript = 12;</code>
@@ -501,8 +505,8 @@ public com.google.protobuf.ByteString getTranscriptBytes() {
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+   * as input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -529,8 +533,8 @@ public java.lang.String getTriggerEvent() {
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+   * as input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -615,7 +619,8 @@ public com.google.protobuf.ByteString getLanguageCodeBytes() {
    *
    *
    * <pre>
-   * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The collected [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * Depending on your protocol or client library language, this is a
    * map, associative array, symbol table, dictionary, or JSON object
    * composed of a collection of (MapKey, MapValue) pairs:
@@ -642,7 +647,8 @@ public boolean hasParameters() {
    *
    *
    * <pre>
-   * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The collected [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * Depending on your protocol or client library language, this is a
    * map, associative array, symbol table, dictionary, or JSON object
    * composed of a collection of (MapKey, MapValue) pairs:
@@ -669,7 +675,8 @@ public com.google.protobuf.Struct getParameters() {
    *
    *
    * <pre>
-   * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The collected [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * Depending on your protocol or client library language, this is a
    * map, associative array, symbol table, dictionary, or JSON object
    * composed of a collection of (MapKey, MapValue) pairs:
@@ -852,8 +859,9 @@ public com.google.rpc.StatusOrBuilder getWebhookStatusesOrBuilder(int index) {
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -867,8 +875,9 @@ public java.util.List<com.google.protobuf.Struct> getWebhookPayloadsList() {
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -883,8 +892,9 @@ public java.util.List<com.google.protobuf.Struct> getWebhookPayloadsList() {
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -898,8 +908,9 @@ public int getWebhookPayloadsCount() {
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -913,8 +924,9 @@ public com.google.protobuf.Struct getWebhookPayloads(int index) {
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -931,8 +943,9 @@ public com.google.protobuf.StructOrBuilder getWebhookPayloadsOrBuilder(int index
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -947,8 +960,9 @@ public boolean hasCurrentPage() {
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -965,8 +979,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.Page getCurrentPage() {
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -982,10 +997,12 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageOrBuilder getCurrentPageOrBuil
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-   * are filled in this message, including but not limited to: `name` and
-   * `display_name`.
-   * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * conversational query. Some, not all fields are filled in this message,
+   * including but not limited to: `name` and `display_name`. This field is
+   * deprecated, please use
+   * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+   * instead.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -1001,10 +1018,12 @@ public boolean hasIntent() {
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-   * are filled in this message, including but not limited to: `name` and
-   * `display_name`.
-   * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * conversational query. Some, not all fields are filled in this message,
+   * including but not limited to: `name` and `display_name`. This field is
+   * deprecated, please use
+   * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+   * instead.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -1022,10 +1041,12 @@ public com.google.cloud.dialogflow.cx.v3beta1.Intent getIntent() {
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-   * are filled in this message, including but not limited to: `name` and
-   * `display_name`.
-   * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * conversational query. Some, not all fields are filled in this message,
+   * including but not limited to: `name` and `display_name`. This field is
+   * deprecated, please use
+   * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+   * instead.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -1048,7 +1069,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.IntentOrBuilder getIntentOrBuilder
    * help match the best intent within the classification threshold.
    * This value may change for the same end-user expression at any time due to a
    * model retraining or change in implementation.
-   * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+   * This field is deprecated, please use
+   * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+   * instead.
    * </pre>
    *
    * <code>float intent_detection_confidence = 9 [deprecated = true];</code>
@@ -1931,8 +1954,8 @@ public Builder clearQuery() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -1960,8 +1983,8 @@ public java.lang.String getText() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -1989,8 +2012,8 @@ public com.google.protobuf.ByteString getTextBytes() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -2011,8 +2034,8 @@ public Builder setText(java.lang.String value) {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -2031,8 +2054,8 @@ public Builder clearText() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+     * was provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 1;</code>
@@ -2055,8 +2078,9 @@ public Builder setTextBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 11;</code>
@@ -2084,8 +2108,9 @@ public java.lang.String getTriggerIntent() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 11;</code>
@@ -2113,8 +2138,9 @@ public com.google.protobuf.ByteString getTriggerIntentBytes() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 11;</code>
@@ -2135,8 +2161,9 @@ public Builder setTriggerIntent(java.lang.String value) {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 11;</code>
@@ -2155,8 +2182,9 @@ public Builder clearTriggerIntent() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
+     * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+     * provided as input, this field will contain a copy of the intent
+     * identifier.
      * </pre>
      *
      * <code>string trigger_intent = 11;</code>
@@ -2179,8 +2207,9 @@ public Builder setTriggerIntentBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 12;</code>
@@ -2208,8 +2237,9 @@ public java.lang.String getTranscript() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 12;</code>
@@ -2237,8 +2267,9 @@ public com.google.protobuf.ByteString getTranscriptBytes() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 12;</code>
@@ -2259,8 +2290,9 @@ public Builder setTranscript(java.lang.String value) {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 12;</code>
@@ -2279,8 +2311,9 @@ public Builder clearTranscript() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-     * this field will contain the trascript for the audio.
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+     * input, this field will contain the trascript for the audio.
      * </pre>
      *
      * <code>string transcript = 12;</code>
@@ -2303,8 +2336,8 @@ public Builder setTranscriptBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+     * as input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -2332,8 +2365,8 @@ public java.lang.String getTriggerEvent() {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+     * as input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -2361,8 +2394,8 @@ public com.google.protobuf.ByteString getTriggerEventBytes() {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+     * as input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -2383,8 +2416,8 @@ public Builder setTriggerEvent(java.lang.String value) {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+     * as input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -2403,8 +2436,8 @@ public Builder clearTriggerEvent() {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+     * as input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -2554,7 +2587,8 @@ public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -2580,7 +2614,8 @@ public boolean hasParameters() {
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -2610,7 +2645,8 @@ public com.google.protobuf.Struct getParameters() {
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -2644,7 +2680,8 @@ public Builder setParameters(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -2675,7 +2712,8 @@ public Builder setParameters(com.google.protobuf.Struct.Builder builderForValue)
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -2711,7 +2749,8 @@ public Builder mergeParameters(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -2743,7 +2782,8 @@ public Builder clearParameters() {
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -2769,7 +2809,8 @@ public com.google.protobuf.Struct.Builder getParametersBuilder() {
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -2797,7 +2838,8 @@ public com.google.protobuf.StructOrBuilder getParametersOrBuilder() {
      *
      *
      * <pre>
-     * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The collected [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * Depending on your protocol or client library language, this is a
      * map, associative array, symbol table, dictionary, or JSON object
      * composed of a collection of (MapKey, MapValue) pairs:
@@ -3615,8 +3657,9 @@ private void ensureWebhookPayloadsIsMutable() {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3633,8 +3676,9 @@ public java.util.List<com.google.protobuf.Struct> getWebhookPayloadsList() {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3651,8 +3695,9 @@ public int getWebhookPayloadsCount() {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3669,8 +3714,9 @@ public com.google.protobuf.Struct getWebhookPayloads(int index) {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3693,8 +3739,9 @@ public Builder setWebhookPayloads(int index, com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3715,8 +3762,9 @@ public Builder setWebhookPayloads(
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3739,8 +3787,9 @@ public Builder addWebhookPayloads(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3763,8 +3812,9 @@ public Builder addWebhookPayloads(int index, com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3784,8 +3834,9 @@ public Builder addWebhookPayloads(com.google.protobuf.Struct.Builder builderForV
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3806,8 +3857,9 @@ public Builder addWebhookPayloads(
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3828,8 +3880,9 @@ public Builder addAllWebhookPayloads(
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3849,8 +3902,9 @@ public Builder clearWebhookPayloads() {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3870,8 +3924,9 @@ public Builder removeWebhookPayloads(int index) {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3884,8 +3939,9 @@ public com.google.protobuf.Struct.Builder getWebhookPayloadsBuilder(int index) {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3902,8 +3958,9 @@ public com.google.protobuf.StructOrBuilder getWebhookPayloadsOrBuilder(int index
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3921,8 +3978,9 @@ public com.google.protobuf.StructOrBuilder getWebhookPayloadsOrBuilder(int index
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3936,8 +3994,9 @@ public com.google.protobuf.Struct.Builder addWebhookPayloadsBuilder() {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3951,8 +4010,9 @@ public com.google.protobuf.Struct.Builder addWebhookPayloadsBuilder(int index) {
      *
      *
      * <pre>
-     * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-     * the order of call sequence. If some webhook call fails or doesn't return
+     * The list of webhook payload in
+     * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+     * in the order of call sequence. If some webhook call fails or doesn't return
      * any payload, an empty `Struct` would be used instead.
      * </pre>
      *
@@ -3992,8 +4052,9 @@ public java.util.List<com.google.protobuf.Struct.Builder> getWebhookPayloadsBuil
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4007,8 +4068,9 @@ public boolean hasCurrentPage() {
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4028,8 +4090,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.Page getCurrentPage() {
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4051,8 +4114,9 @@ public Builder setCurrentPage(com.google.cloud.dialogflow.cx.v3beta1.Page value)
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4072,8 +4136,9 @@ public Builder setCurrentPage(
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4099,8 +4164,9 @@ public Builder mergeCurrentPage(com.google.cloud.dialogflow.cx.v3beta1.Page valu
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4120,8 +4186,9 @@ public Builder clearCurrentPage() {
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4135,8 +4202,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.Page.Builder getCurrentPageBuilder
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4154,8 +4222,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageOrBuilder getCurrentPageOrBuil
      *
      *
      * <pre>
-     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-     * including but not limited to `name` and `display_name`.
+     * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+     * fields are filled in this message, including but not limited to `name` and
+     * `display_name`.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -4187,10 +4256,12 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageOrBuilder getCurrentPageOrBuil
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4205,10 +4276,12 @@ public boolean hasIntent() {
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4229,10 +4302,12 @@ public com.google.cloud.dialogflow.cx.v3beta1.Intent getIntent() {
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4255,10 +4330,12 @@ public Builder setIntent(com.google.cloud.dialogflow.cx.v3beta1.Intent value) {
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4279,10 +4356,12 @@ public Builder setIntent(
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4309,10 +4388,12 @@ public Builder mergeIntent(com.google.cloud.dialogflow.cx.v3beta1.Intent value)
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4333,10 +4414,12 @@ public Builder clearIntent() {
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4351,10 +4434,12 @@ public com.google.cloud.dialogflow.cx.v3beta1.Intent.Builder getIntentBuilder()
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4373,10 +4458,12 @@ public com.google.cloud.dialogflow.cx.v3beta1.IntentOrBuilder getIntentOrBuilder
      *
      *
      * <pre>
-     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-     * are filled in this message, including but not limited to: `name` and
-     * `display_name`.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+     * conversational query. Some, not all fields are filled in this message,
+     * including but not limited to: `name` and `display_name`. This field is
+     * deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -4409,7 +4496,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.IntentOrBuilder getIntentOrBuilder
      * help match the best intent within the classification threshold.
      * This value may change for the same end-user expression at any time due to a
      * model retraining or change in implementation.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * This field is deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>float intent_detection_confidence = 9 [deprecated = true];</code>
@@ -4431,7 +4520,9 @@ public float getIntentDetectionConfidence() {
      * help match the best intent within the classification threshold.
      * This value may change for the same end-user expression at any time due to a
      * model retraining or change in implementation.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * This field is deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>float intent_detection_confidence = 9 [deprecated = true];</code>
@@ -4456,7 +4547,9 @@ public Builder setIntentDetectionConfidence(float value) {
      * help match the best intent within the classification threshold.
      * This value may change for the same end-user expression at any time due to a
      * model retraining or change in implementation.
-     * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+     * This field is deprecated, please use
+     * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+     * instead.
      * </pre>
      *
      * <code>float intent_detection_confidence = 9 [deprecated = true];</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/QueryResultOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/QueryResultOrBuilder.java
index 13c0bf7fc..a5d685fd8 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/QueryResultOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/QueryResultOrBuilder.java
@@ -27,8 +27,8 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+   * was provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 1;</code>
@@ -40,8 +40,8 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+   * was provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 1;</code>
@@ -54,8 +54,9 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
+   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+   * provided as input, this field will contain a copy of the intent
+   * identifier.
    * </pre>
    *
    * <code>string trigger_intent = 11;</code>
@@ -67,8 +68,9 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
+   * If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+   * provided as input, this field will contain a copy of the intent
+   * identifier.
    * </pre>
    *
    * <code>string trigger_intent = 11;</code>
@@ -81,8 +83,9 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-   * this field will contain the trascript for the audio.
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+   * input, this field will contain the trascript for the audio.
    * </pre>
    *
    * <code>string transcript = 12;</code>
@@ -94,8 +97,9 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-   * this field will contain the trascript for the audio.
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+   * input, this field will contain the trascript for the audio.
    * </pre>
    *
    * <code>string transcript = 12;</code>
@@ -108,8 +112,8 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+   * as input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -121,8 +125,8 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+   * as input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -166,7 +170,8 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The collected [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * Depending on your protocol or client library language, this is a
    * map, associative array, symbol table, dictionary, or JSON object
    * composed of a collection of (MapKey, MapValue) pairs:
@@ -190,7 +195,8 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The collected [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * Depending on your protocol or client library language, this is a
    * map, associative array, symbol table, dictionary, or JSON object
    * composed of a collection of (MapKey, MapValue) pairs:
@@ -214,7 +220,8 @@ public interface QueryResultOrBuilder
    *
    *
    * <pre>
-   * The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The collected [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * Depending on your protocol or client library language, this is a
    * map, associative array, symbol table, dictionary, or JSON object
    * composed of a collection of (MapKey, MapValue) pairs:
@@ -356,8 +363,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -368,8 +376,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -380,8 +389,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -392,8 +402,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -404,8 +415,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-   * the order of call sequence. If some webhook call fails or doesn't return
+   * The list of webhook payload in
+   * [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+   * in the order of call sequence. If some webhook call fails or doesn't return
    * any payload, an empty `Struct` would be used instead.
    * </pre>
    *
@@ -417,8 +429,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -430,8 +443,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -443,8 +457,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-   * including but not limited to `name` and `display_name`.
+   * The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+   * fields are filled in this message, including but not limited to `name` and
+   * `display_name`.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Page current_page = 7;</code>
@@ -455,10 +470,12 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-   * are filled in this message, including but not limited to: `name` and
-   * `display_name`.
-   * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * conversational query. Some, not all fields are filled in this message,
+   * including but not limited to: `name` and `display_name`. This field is
+   * deprecated, please use
+   * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+   * instead.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -471,10 +488,12 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-   * are filled in this message, including but not limited to: `name` and
-   * `display_name`.
-   * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * conversational query. Some, not all fields are filled in this message,
+   * including but not limited to: `name` and `display_name`. This field is
+   * deprecated, please use
+   * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+   * instead.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -487,10 +506,12 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    *
    *
    * <pre>
-   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-   * are filled in this message, including but not limited to: `name` and
-   * `display_name`.
-   * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+   * The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+   * conversational query. Some, not all fields are filled in this message,
+   * including but not limited to: `name` and `display_name`. This field is
+   * deprecated, please use
+   * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+   * instead.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.Intent intent = 8 [deprecated = true];</code>
@@ -508,7 +529,9 @@ com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getResponseMessa
    * help match the best intent within the classification threshold.
    * This value may change for the same end-user expression at any time due to a
    * model retraining or change in implementation.
-   * This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+   * This field is deprecated, please use
+   * [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+   * instead.
    * </pre>
    *
    * <code>float intent_detection_confidence = 9 [deprecated = true];</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessage.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessage.java
index 704ccc694..51000c456 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessage.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessage.java
@@ -115,30 +115,6 @@ private ResponseMessage(
               messageCase_ = 2;
               break;
             }
-          case 50:
-            {
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.Builder
-                  subBuilder = null;
-              if (messageCase_ == 6) {
-                subBuilder =
-                    ((com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
-                            message_)
-                        .toBuilder();
-              }
-              message_ =
-                  input.readMessage(
-                      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-                          .parser(),
-                      extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(
-                    (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
-                        message_);
-                message_ = subBuilder.buildPartial();
-              }
-              messageCase_ = 6;
-              break;
-            }
           case 66:
             {
               com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.Builder
@@ -371,12 +347,13 @@ public interface TextOrBuilder
      *
      *
      * <pre>
-     * Whether the playback of this message can be interrupted by the end
-     * user's speech and the client can then starts the next Dialogflow
+     * Output only. Whether the playback of this message can be interrupted by
+     * the end user's speech and the client can then starts the next Dialogflow
      * request.
      * </pre>
      *
-     * <code>bool allow_playback_interruption = 2;</code>
+     * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      *
      * @return The allowPlaybackInterruption.
      */
@@ -554,12 +531,13 @@ public com.google.protobuf.ByteString getTextBytes(int index) {
      *
      *
      * <pre>
-     * Whether the playback of this message can be interrupted by the end
-     * user's speech and the client can then starts the next Dialogflow
+     * Output only. Whether the playback of this message can be interrupted by
+     * the end user's speech and the client can then starts the next Dialogflow
      * request.
      * </pre>
      *
-     * <code>bool allow_playback_interruption = 2;</code>
+     * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
      *
      * @return The allowPlaybackInterruption.
      */
@@ -1103,12 +1081,13 @@ public Builder addTextBytes(com.google.protobuf.ByteString value) {
        *
        *
        * <pre>
-       * Whether the playback of this message can be interrupted by the end
-       * user's speech and the client can then starts the next Dialogflow
+       * Output only. Whether the playback of this message can be interrupted by
+       * the end user's speech and the client can then starts the next Dialogflow
        * request.
        * </pre>
        *
-       * <code>bool allow_playback_interruption = 2;</code>
+       * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+       * </code>
        *
        * @return The allowPlaybackInterruption.
        */
@@ -1120,12 +1099,13 @@ public boolean getAllowPlaybackInterruption() {
        *
        *
        * <pre>
-       * Whether the playback of this message can be interrupted by the end
-       * user's speech and the client can then starts the next Dialogflow
+       * Output only. Whether the playback of this message can be interrupted by
+       * the end user's speech and the client can then starts the next Dialogflow
        * request.
        * </pre>
        *
-       * <code>bool allow_playback_interruption = 2;</code>
+       * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+       * </code>
        *
        * @param value The allowPlaybackInterruption to set.
        * @return This builder for chaining.
@@ -1140,12 +1120,13 @@ public Builder setAllowPlaybackInterruption(boolean value) {
        *
        *
        * <pre>
-       * Whether the playback of this message can be interrupted by the end
-       * user's speech and the client can then starts the next Dialogflow
+       * Output only. Whether the playback of this message can be interrupted by
+       * the end user's speech and the client can then starts the next Dialogflow
        * request.
        * </pre>
        *
-       * <code>bool allow_playback_interruption = 2;</code>
+       * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+       * </code>
        *
        * @return This builder for chaining.
        */
@@ -1209,10 +1190,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.Text getDefaultIns
     }
   }
 
-  @java.lang.Deprecated
-  public interface HumanAgentHandoffOrBuilder
+  public interface LiveAgentHandoffOrBuilder
       extends
-      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
+      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
       com.google.protobuf.MessageOrBuilder {
 
     /**
@@ -1257,37 +1237,38 @@ public interface HumanAgentHandoffOrBuilder
    *
    *
    * <pre>
-   * Indicates that the conversation should be handed off to a human agent.
+   * Indicates that the conversation should be handed off to a live agent.
    * Dialogflow only uses this to determine which conversations were handed off
    * to a human agent for measurement purposes. What else to do with this signal
    * is up to you and your handoff procedures.
    * You may set this, for example:
-   * * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
+   * * In the
+   * [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment]
+   * of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
    *   entering the page indicates something went extremely wrong in the
    *   conversation.
    * * In a webhook response when you determine that the customer issue can only
    *   be handled by a human.
    * </pre>
    *
-   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff}
+   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff}
    */
-  @java.lang.Deprecated
-  public static final class HumanAgentHandoff extends com.google.protobuf.GeneratedMessageV3
+  public static final class LiveAgentHandoff extends com.google.protobuf.GeneratedMessageV3
       implements
-      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
-      HumanAgentHandoffOrBuilder {
+      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
+      LiveAgentHandoffOrBuilder {
     private static final long serialVersionUID = 0L;
-    // Use HumanAgentHandoff.newBuilder() to construct.
-    private HumanAgentHandoff(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    // Use LiveAgentHandoff.newBuilder() to construct.
+    private LiveAgentHandoff(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
       super(builder);
     }
 
-    private HumanAgentHandoff() {}
+    private LiveAgentHandoff() {}
 
     @java.lang.Override
     @SuppressWarnings({"unused"})
     protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
-      return new HumanAgentHandoff();
+      return new LiveAgentHandoff();
     }
 
     @java.lang.Override
@@ -1295,7 +1276,7 @@ public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
       return this.unknownFields;
     }
 
-    private HumanAgentHandoff(
+    private LiveAgentHandoff(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
@@ -1349,17 +1330,17 @@ private HumanAgentHandoff(
 
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_descriptor;
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_fieldAccessorTable
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.class,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.Builder
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.class,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.Builder
                   .class);
     }
 
@@ -1452,11 +1433,11 @@ public boolean equals(final java.lang.Object obj) {
         return true;
       }
       if (!(obj
-          instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)) {
+          instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)) {
         return super.equals(obj);
       }
-      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff other =
-          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff) obj;
+      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff other =
+          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff) obj;
 
       if (hasMetadata() != other.hasMetadata()) return false;
       if (hasMetadata()) {
@@ -1482,63 +1463,59 @@ public int hashCode() {
       return hash;
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(java.nio.ByteBuffer data)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(
-            java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(com.google.protobuf.ByteString data)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(
-            com.google.protobuf.ByteString data,
-            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(java.io.InputStream input) throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(
-            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
         parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
         parseDelimitedFrom(
             java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
@@ -1546,16 +1523,15 @@ public int hashCode() {
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        parseFrom(
-            com.google.protobuf.CodedInputStream input,
-            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
           PARSER, input, extensionRegistry);
     }
@@ -1570,7 +1546,7 @@ public static Builder newBuilder() {
     }
 
     public static Builder newBuilder(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff prototype) {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
 
@@ -1589,43 +1565,45 @@ protected Builder newBuilderForType(
      *
      *
      * <pre>
-     * Indicates that the conversation should be handed off to a human agent.
+     * Indicates that the conversation should be handed off to a live agent.
      * Dialogflow only uses this to determine which conversations were handed off
      * to a human agent for measurement purposes. What else to do with this signal
      * is up to you and your handoff procedures.
      * You may set this, for example:
-     * * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
+     * * In the
+     * [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment]
+     * of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
      *   entering the page indicates something went extremely wrong in the
      *   conversation.
      * * In a webhook response when you determine that the customer issue can only
      *   be handled by a human.
      * </pre>
      *
-     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff}
+     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff}
      */
     public static final class Builder
         extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
         implements
-        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoffOrBuilder {
+        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoffOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
           internalGetFieldAccessorTable() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_fieldAccessorTable
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.class,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.Builder
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.class,
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.Builder
                     .class);
       }
 
       // Construct using
-      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.newBuilder()
+      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -1654,19 +1632,19 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor;
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
           getDefaultInstanceForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
             .getDefaultInstance();
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff build() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff result =
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff build() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff result =
             buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
@@ -1675,10 +1653,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
           buildPartial() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff result =
-            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff(this);
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff result =
+            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff(this);
         if (metadataBuilder_ == null) {
           result.metadata_ = metadata_;
         } else {
@@ -1726,9 +1704,9 @@ public Builder addRepeatedField(
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other
-            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff) {
+            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff) {
           return mergeFrom(
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff) other);
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff) other);
         } else {
           super.mergeFrom(other);
           return this;
@@ -1736,9 +1714,9 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       }
 
       public Builder mergeFrom(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff other) {
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff other) {
         if (other
-            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
                 .getDefaultInstance()) return this;
         if (other.hasMetadata()) {
           mergeMetadata(other.getMetadata());
@@ -1758,13 +1736,13 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff parsedMessage =
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parsedMessage =
             null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
           parsedMessage =
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
                   e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
@@ -1975,61 +1953,60 @@ public final Builder mergeUnknownFields(
         return super.mergeUnknownFields(unknownFields);
       }
 
-      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
+      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
     }
 
-    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
-    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
+    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
         DEFAULT_INSTANCE;
 
     static {
       DEFAULT_INSTANCE =
-          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff();
+          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff();
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
         getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
-    private static final com.google.protobuf.Parser<HumanAgentHandoff> PARSER =
-        new com.google.protobuf.AbstractParser<HumanAgentHandoff>() {
+    private static final com.google.protobuf.Parser<LiveAgentHandoff> PARSER =
+        new com.google.protobuf.AbstractParser<LiveAgentHandoff>() {
           @java.lang.Override
-          public HumanAgentHandoff parsePartialFrom(
+          public LiveAgentHandoff parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            return new HumanAgentHandoff(input, extensionRegistry);
+            return new LiveAgentHandoff(input, extensionRegistry);
           }
         };
 
-    public static com.google.protobuf.Parser<HumanAgentHandoff> parser() {
+    public static com.google.protobuf.Parser<LiveAgentHandoff> parser() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.protobuf.Parser<HumanAgentHandoff> getParserForType() {
+    public com.google.protobuf.Parser<LiveAgentHandoff> getParserForType() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
         getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
   }
 
-  public interface LiveAgentHandoffOrBuilder
+  public interface ConversationSuccessOrBuilder
       extends
-      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
+      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
       com.google.protobuf.MessageOrBuilder {
 
     /**
      *
      *
      * <pre>
-     * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-     * any structure on this.
+     * Custom metadata. Dialogflow doesn't impose any structure on this.
      * </pre>
      *
      * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2041,8 +2018,7 @@ public interface LiveAgentHandoffOrBuilder
      *
      *
      * <pre>
-     * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-     * any structure on this.
+     * Custom metadata. Dialogflow doesn't impose any structure on this.
      * </pre>
      *
      * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2054,8 +2030,7 @@ public interface LiveAgentHandoffOrBuilder
      *
      *
      * <pre>
-     * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-     * any structure on this.
+     * Custom metadata. Dialogflow doesn't impose any structure on this.
      * </pre>
      *
      * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2066,36 +2041,40 @@ public interface LiveAgentHandoffOrBuilder
    *
    *
    * <pre>
-   * Indicates that the conversation should be handed off to a live agent.
-   * Dialogflow only uses this to determine which conversations were handed off
-   * to a human agent for measurement purposes. What else to do with this signal
-   * is up to you and your handoff procedures.
+   * Indicates that the conversation succeeded, i.e., the bot handled the issue
+   * that the customer talked to it about.
+   * Dialogflow only uses this to determine which conversations should be
+   * counted as successful and doesn't process the metadata in this message in
+   * any way. Note that Dialogflow also considers conversations that get to the
+   * conversation end page as successful even if they don't return
+   * [ConversationSuccess][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess].
    * You may set this, for example:
-   * * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
-   *   entering the page indicates something went extremely wrong in the
-   *   conversation.
-   * * In a webhook response when you determine that the customer issue can only
-   *   be handled by a human.
+   * * In the
+   * [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment]
+   * of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
+   *   entering the page indicates that the conversation succeeded.
+   * * In a webhook response when you determine that you handled the customer
+   *   issue.
    * </pre>
    *
-   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff}
+   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess}
    */
-  public static final class LiveAgentHandoff extends com.google.protobuf.GeneratedMessageV3
+  public static final class ConversationSuccess extends com.google.protobuf.GeneratedMessageV3
       implements
-      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
-      LiveAgentHandoffOrBuilder {
+      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
+      ConversationSuccessOrBuilder {
     private static final long serialVersionUID = 0L;
-    // Use LiveAgentHandoff.newBuilder() to construct.
-    private LiveAgentHandoff(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    // Use ConversationSuccess.newBuilder() to construct.
+    private ConversationSuccess(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
       super(builder);
     }
 
-    private LiveAgentHandoff() {}
+    private ConversationSuccess() {}
 
     @java.lang.Override
     @SuppressWarnings({"unused"})
     protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
-      return new LiveAgentHandoff();
+      return new ConversationSuccess();
     }
 
     @java.lang.Override
@@ -2103,7 +2082,7 @@ public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
       return this.unknownFields;
     }
 
-    private LiveAgentHandoff(
+    private ConversationSuccess(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
@@ -2157,17 +2136,17 @@ private LiveAgentHandoff(
 
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor;
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_fieldAccessorTable
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.class,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.Builder
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.class,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.Builder
                   .class);
     }
 
@@ -2177,8 +2156,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      *
      *
      * <pre>
-     * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-     * any structure on this.
+     * Custom metadata. Dialogflow doesn't impose any structure on this.
      * </pre>
      *
      * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2193,8 +2171,7 @@ public boolean hasMetadata() {
      *
      *
      * <pre>
-     * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-     * any structure on this.
+     * Custom metadata. Dialogflow doesn't impose any structure on this.
      * </pre>
      *
      * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2209,8 +2186,7 @@ public com.google.protobuf.Struct getMetadata() {
      *
      *
      * <pre>
-     * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-     * any structure on this.
+     * Custom metadata. Dialogflow doesn't impose any structure on this.
      * </pre>
      *
      * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2260,11 +2236,11 @@ public boolean equals(final java.lang.Object obj) {
         return true;
       }
       if (!(obj
-          instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)) {
+          instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)) {
         return super.equals(obj);
       }
-      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff other =
-          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff) obj;
+      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess other =
+          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess) obj;
 
       if (hasMetadata() != other.hasMetadata()) return false;
       if (hasMetadata()) {
@@ -2290,59 +2266,63 @@ public int hashCode() {
       return hash;
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(java.nio.ByteBuffer data)
+            throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(
+            java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(com.google.protobuf.ByteString data)
+            throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(
+            com.google.protobuf.ByteString data,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        java.io.InputStream input) throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(
+            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
         parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
         parseDelimitedFrom(
             java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
@@ -2350,15 +2330,16 @@ public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHa
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        parseFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
           PARSER, input, extensionRegistry);
     }
@@ -2373,7 +2354,7 @@ public static Builder newBuilder() {
     }
 
     public static Builder newBuilder(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff prototype) {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
 
@@ -2392,43 +2373,47 @@ protected Builder newBuilderForType(
      *
      *
      * <pre>
-     * Indicates that the conversation should be handed off to a live agent.
-     * Dialogflow only uses this to determine which conversations were handed off
-     * to a human agent for measurement purposes. What else to do with this signal
-     * is up to you and your handoff procedures.
+     * Indicates that the conversation succeeded, i.e., the bot handled the issue
+     * that the customer talked to it about.
+     * Dialogflow only uses this to determine which conversations should be
+     * counted as successful and doesn't process the metadata in this message in
+     * any way. Note that Dialogflow also considers conversations that get to the
+     * conversation end page as successful even if they don't return
+     * [ConversationSuccess][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess].
      * You may set this, for example:
-     * * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
-     *   entering the page indicates something went extremely wrong in the
-     *   conversation.
-     * * In a webhook response when you determine that the customer issue can only
-     *   be handled by a human.
+     * * In the
+     * [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment]
+     * of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
+     *   entering the page indicates that the conversation succeeded.
+     * * In a webhook response when you determine that you handled the customer
+     *   issue.
      * </pre>
      *
-     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff}
+     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess}
      */
     public static final class Builder
         extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
         implements
-        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoffOrBuilder {
+        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccessOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
           internalGetFieldAccessorTable() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_fieldAccessorTable
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.class,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.Builder
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.class,
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.Builder
                     .class);
       }
 
       // Construct using
-      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.newBuilder()
+      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -2457,19 +2442,19 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor;
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
           getDefaultInstanceForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
             .getDefaultInstance();
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff build() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff result =
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess build() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess result =
             buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
@@ -2478,10 +2463,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff b
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
           buildPartial() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff result =
-            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff(this);
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess result =
+            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess(this);
         if (metadataBuilder_ == null) {
           result.metadata_ = metadata_;
         } else {
@@ -2529,9 +2514,9 @@ public Builder addRepeatedField(
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other
-            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff) {
+            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess) {
           return mergeFrom(
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff) other);
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess) other);
         } else {
           super.mergeFrom(other);
           return this;
@@ -2539,9 +2524,9 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       }
 
       public Builder mergeFrom(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff other) {
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess other) {
         if (other
-            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
                 .getDefaultInstance()) return this;
         if (other.hasMetadata()) {
           mergeMetadata(other.getMetadata());
@@ -2561,13 +2546,13 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff parsedMessage =
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess parsedMessage =
             null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
           parsedMessage =
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
                   e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
@@ -2588,8 +2573,7 @@ public Builder mergeFrom(
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2603,8 +2587,7 @@ public boolean hasMetadata() {
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2622,8 +2605,7 @@ public com.google.protobuf.Struct getMetadata() {
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2645,8 +2627,7 @@ public Builder setMetadata(com.google.protobuf.Struct value) {
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2665,8 +2646,7 @@ public Builder setMetadata(com.google.protobuf.Struct.Builder builderForValue) {
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2690,8 +2670,7 @@ public Builder mergeMetadata(com.google.protobuf.Struct value) {
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2711,8 +2690,7 @@ public Builder clearMetadata() {
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2726,8 +2704,7 @@ public com.google.protobuf.Struct.Builder getMetadataBuilder() {
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2743,8 +2720,7 @@ public com.google.protobuf.StructOrBuilder getMetadataOrBuilder() {
        *
        *
        * <pre>
-       * Custom metadata for your handoff procedure. Dialogflow doesn't impose
-       * any structure on this.
+       * Custom metadata. Dialogflow doesn't impose any structure on this.
        * </pre>
        *
        * <code>.google.protobuf.Struct metadata = 1;</code>
@@ -2778,126 +2754,136 @@ public final Builder mergeUnknownFields(
         return super.mergeUnknownFields(unknownFields);
       }
 
-      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
+      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
     }
 
-    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff)
-    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
+    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
         DEFAULT_INSTANCE;
 
     static {
       DEFAULT_INSTANCE =
-          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff();
+          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess();
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
         getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
-    private static final com.google.protobuf.Parser<LiveAgentHandoff> PARSER =
-        new com.google.protobuf.AbstractParser<LiveAgentHandoff>() {
+    private static final com.google.protobuf.Parser<ConversationSuccess> PARSER =
+        new com.google.protobuf.AbstractParser<ConversationSuccess>() {
           @java.lang.Override
-          public LiveAgentHandoff parsePartialFrom(
+          public ConversationSuccess parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            return new LiveAgentHandoff(input, extensionRegistry);
+            return new ConversationSuccess(input, extensionRegistry);
           }
         };
 
-    public static com.google.protobuf.Parser<LiveAgentHandoff> parser() {
+    public static com.google.protobuf.Parser<ConversationSuccess> parser() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.protobuf.Parser<LiveAgentHandoff> getParserForType() {
+    public com.google.protobuf.Parser<ConversationSuccess> getParserForType() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
         getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
   }
 
-  public interface ConversationSuccessOrBuilder
+  public interface OutputAudioTextOrBuilder
       extends
-      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
+      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
       com.google.protobuf.MessageOrBuilder {
 
     /**
      *
      *
      * <pre>
-     * Custom metadata. Dialogflow doesn't impose any structure on this.
+     * The raw text to be synthesized.
      * </pre>
      *
-     * <code>.google.protobuf.Struct metadata = 1;</code>
+     * <code>string text = 1;</code>
      *
-     * @return Whether the metadata field is set.
+     * @return The text.
      */
-    boolean hasMetadata();
+    java.lang.String getText();
     /**
      *
      *
      * <pre>
-     * Custom metadata. Dialogflow doesn't impose any structure on this.
+     * The raw text to be synthesized.
      * </pre>
      *
-     * <code>.google.protobuf.Struct metadata = 1;</code>
+     * <code>string text = 1;</code>
      *
-     * @return The metadata.
+     * @return The bytes for text.
      */
-    com.google.protobuf.Struct getMetadata();
+    com.google.protobuf.ByteString getTextBytes();
+
     /**
      *
      *
      * <pre>
-     * Custom metadata. Dialogflow doesn't impose any structure on this.
+     * The SSML text to be synthesized. For more information, see
+     * [SSML](/speech/text-to-speech/docs/ssml).
      * </pre>
      *
-     * <code>.google.protobuf.Struct metadata = 1;</code>
+     * <code>string ssml = 2;</code>
+     *
+     * @return The ssml.
      */
-    com.google.protobuf.StructOrBuilder getMetadataOrBuilder();
+    java.lang.String getSsml();
+    /**
+     *
+     *
+     * <pre>
+     * The SSML text to be synthesized. For more information, see
+     * [SSML](/speech/text-to-speech/docs/ssml).
+     * </pre>
+     *
+     * <code>string ssml = 2;</code>
+     *
+     * @return The bytes for ssml.
+     */
+    com.google.protobuf.ByteString getSsmlBytes();
+
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.SourceCase
+        getSourceCase();
   }
   /**
    *
    *
    * <pre>
-   * Indicates that the conversation succeeded, i.e., the bot handled the issue
-   * that the customer talked to it about.
-   * Dialogflow only uses this to determine which conversations should be
-   * counted as successful and doesn't process the metadata in this message in
-   * any way. Note that Dialogflow also considers conversations that get to the
-   * conversation end page as successful even if they don't return
-   * [ConversationSuccess][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess].
-   * You may set this, for example:
-   * * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
-   *   entering the page indicates that the conversation succeeded.
-   * * In a webhook response when you determine that you handled the customer
-   *   issue.
+   * A text or ssml response that is preferentially used for TTS output audio
+   * synthesis, as described in the comment on the ResponseMessage message.
    * </pre>
    *
-   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess}
+   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText}
    */
-  public static final class ConversationSuccess extends com.google.protobuf.GeneratedMessageV3
+  public static final class OutputAudioText extends com.google.protobuf.GeneratedMessageV3
       implements
-      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
-      ConversationSuccessOrBuilder {
+      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
+      OutputAudioTextOrBuilder {
     private static final long serialVersionUID = 0L;
-    // Use ConversationSuccess.newBuilder() to construct.
-    private ConversationSuccess(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    // Use OutputAudioText.newBuilder() to construct.
+    private OutputAudioText(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
       super(builder);
     }
 
-    private ConversationSuccess() {}
+    private OutputAudioText() {}
 
     @java.lang.Override
     @SuppressWarnings({"unused"})
     protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
-      return new ConversationSuccess();
+      return new OutputAudioText();
     }
 
     @java.lang.Override
@@ -2905,7 +2891,7 @@ public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
       return this.unknownFields;
     }
 
-    private ConversationSuccess(
+    private OutputAudioText(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
@@ -2925,17 +2911,16 @@ private ConversationSuccess(
               break;
             case 10:
               {
-                com.google.protobuf.Struct.Builder subBuilder = null;
-                if (metadata_ != null) {
-                  subBuilder = metadata_.toBuilder();
-                }
-                metadata_ =
-                    input.readMessage(com.google.protobuf.Struct.parser(), extensionRegistry);
-                if (subBuilder != null) {
-                  subBuilder.mergeFrom(metadata_);
-                  metadata_ = subBuilder.buildPartial();
-                }
-
+                java.lang.String s = input.readStringRequireUtf8();
+                sourceCase_ = 1;
+                source_ = s;
+                break;
+              }
+            case 18:
+              {
+                java.lang.String s = input.readStringRequireUtf8();
+                sourceCase_ = 2;
+                source_ = s;
                 break;
               }
             default:
@@ -2959,64 +2944,178 @@ private ConversationSuccess(
 
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor;
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_fieldAccessorTable
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.class,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.Builder
-                  .class);
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.class,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.Builder.class);
     }
 
-    public static final int METADATA_FIELD_NUMBER = 1;
-    private com.google.protobuf.Struct metadata_;
-    /**
-     *
-     *
-     * <pre>
-     * Custom metadata. Dialogflow doesn't impose any structure on this.
-     * </pre>
-     *
-     * <code>.google.protobuf.Struct metadata = 1;</code>
-     *
-     * @return Whether the metadata field is set.
-     */
-    @java.lang.Override
-    public boolean hasMetadata() {
-      return metadata_ != null;
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Custom metadata. Dialogflow doesn't impose any structure on this.
-     * </pre>
+    private int sourceCase_ = 0;
+    private java.lang.Object source_;
+
+    public enum SourceCase
+        implements
+            com.google.protobuf.Internal.EnumLite,
+            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
+      TEXT(1),
+      SSML(2),
+      SOURCE_NOT_SET(0);
+      private final int value;
+
+      private SourceCase(int value) {
+        this.value = value;
+      }
+      /**
+       * @param value The number of the enum to look for.
+       * @return The enum associated with the given number.
+       * @deprecated Use {@link #forNumber(int)} instead.
+       */
+      @java.lang.Deprecated
+      public static SourceCase valueOf(int value) {
+        return forNumber(value);
+      }
+
+      public static SourceCase forNumber(int value) {
+        switch (value) {
+          case 1:
+            return TEXT;
+          case 2:
+            return SSML;
+          case 0:
+            return SOURCE_NOT_SET;
+          default:
+            return null;
+        }
+      }
+
+      public int getNumber() {
+        return this.value;
+      }
+    };
+
+    public SourceCase getSourceCase() {
+      return SourceCase.forNumber(sourceCase_);
+    }
+
+    public static final int TEXT_FIELD_NUMBER = 1;
+    /**
      *
-     * <code>.google.protobuf.Struct metadata = 1;</code>
      *
-     * @return The metadata.
+     * <pre>
+     * The raw text to be synthesized.
+     * </pre>
+     *
+     * <code>string text = 1;</code>
+     *
+     * @return The text.
      */
-    @java.lang.Override
-    public com.google.protobuf.Struct getMetadata() {
-      return metadata_ == null ? com.google.protobuf.Struct.getDefaultInstance() : metadata_;
+    public java.lang.String getText() {
+      java.lang.Object ref = "";
+      if (sourceCase_ == 1) {
+        ref = source_;
+      }
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (sourceCase_ == 1) {
+          source_ = s;
+        }
+        return s;
+      }
     }
     /**
      *
      *
      * <pre>
-     * Custom metadata. Dialogflow doesn't impose any structure on this.
+     * The raw text to be synthesized.
      * </pre>
      *
-     * <code>.google.protobuf.Struct metadata = 1;</code>
+     * <code>string text = 1;</code>
+     *
+     * @return The bytes for text.
      */
-    @java.lang.Override
-    public com.google.protobuf.StructOrBuilder getMetadataOrBuilder() {
-      return getMetadata();
+    public com.google.protobuf.ByteString getTextBytes() {
+      java.lang.Object ref = "";
+      if (sourceCase_ == 1) {
+        ref = source_;
+      }
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        if (sourceCase_ == 1) {
+          source_ = b;
+        }
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SSML_FIELD_NUMBER = 2;
+    /**
+     *
+     *
+     * <pre>
+     * The SSML text to be synthesized. For more information, see
+     * [SSML](/speech/text-to-speech/docs/ssml).
+     * </pre>
+     *
+     * <code>string ssml = 2;</code>
+     *
+     * @return The ssml.
+     */
+    public java.lang.String getSsml() {
+      java.lang.Object ref = "";
+      if (sourceCase_ == 2) {
+        ref = source_;
+      }
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (sourceCase_ == 2) {
+          source_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The SSML text to be synthesized. For more information, see
+     * [SSML](/speech/text-to-speech/docs/ssml).
+     * </pre>
+     *
+     * <code>string ssml = 2;</code>
+     *
+     * @return The bytes for ssml.
+     */
+    public com.google.protobuf.ByteString getSsmlBytes() {
+      java.lang.Object ref = "";
+      if (sourceCase_ == 2) {
+        ref = source_;
+      }
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        if (sourceCase_ == 2) {
+          source_ = b;
+        }
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
     }
 
     private byte memoizedIsInitialized = -1;
@@ -3033,8 +3132,11 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (metadata_ != null) {
-        output.writeMessage(1, getMetadata());
+      if (sourceCase_ == 1) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, source_);
+      }
+      if (sourceCase_ == 2) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, source_);
       }
       unknownFields.writeTo(output);
     }
@@ -3045,8 +3147,11 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (metadata_ != null) {
-        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
+      if (sourceCase_ == 1) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, source_);
+      }
+      if (sourceCase_ == 2) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, source_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -3059,15 +3164,22 @@ public boolean equals(final java.lang.Object obj) {
         return true;
       }
       if (!(obj
-          instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)) {
+          instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)) {
         return super.equals(obj);
       }
-      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess other =
-          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess) obj;
+      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText other =
+          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText) obj;
 
-      if (hasMetadata() != other.hasMetadata()) return false;
-      if (hasMetadata()) {
-        if (!getMetadata().equals(other.getMetadata())) return false;
+      if (!getSourceCase().equals(other.getSourceCase())) return false;
+      switch (sourceCase_) {
+        case 1:
+          if (!getText().equals(other.getText())) return false;
+          break;
+        case 2:
+          if (!getSsml().equals(other.getSsml())) return false;
+          break;
+        case 0:
+        default:
       }
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
@@ -3080,72 +3192,76 @@ public int hashCode() {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      if (hasMetadata()) {
-        hash = (37 * hash) + METADATA_FIELD_NUMBER;
-        hash = (53 * hash) + getMetadata().hashCode();
+      switch (sourceCase_) {
+        case 1:
+          hash = (37 * hash) + TEXT_FIELD_NUMBER;
+          hash = (53 * hash) + getText().hashCode();
+          break;
+        case 2:
+          hash = (37 * hash) + SSML_FIELD_NUMBER;
+          hash = (53 * hash) + getSsml().hashCode();
+          break;
+        case 0:
+        default:
       }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(java.nio.ByteBuffer data)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(
-            java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(com.google.protobuf.ByteString data)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(
-            com.google.protobuf.ByteString data,
-            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.protobuf.InvalidProtocolBufferException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(java.io.InputStream input) throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(
-            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
         parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
         parseDelimitedFrom(
             java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
@@ -3153,16 +3269,15 @@ public int hashCode() {
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-        parseFrom(
-            com.google.protobuf.CodedInputStream input,
-            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
           PARSER, input, extensionRegistry);
     }
@@ -3177,7 +3292,7 @@ public static Builder newBuilder() {
     }
 
     public static Builder newBuilder(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess prototype) {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
 
@@ -3196,45 +3311,35 @@ protected Builder newBuilderForType(
      *
      *
      * <pre>
-     * Indicates that the conversation succeeded, i.e., the bot handled the issue
-     * that the customer talked to it about.
-     * Dialogflow only uses this to determine which conversations should be
-     * counted as successful and doesn't process the metadata in this message in
-     * any way. Note that Dialogflow also considers conversations that get to the
-     * conversation end page as successful even if they don't return
-     * [ConversationSuccess][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess].
-     * You may set this, for example:
-     * * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
-     *   entering the page indicates that the conversation succeeded.
-     * * In a webhook response when you determine that you handled the customer
-     *   issue.
+     * A text or ssml response that is preferentially used for TTS output audio
+     * synthesis, as described in the comment on the ResponseMessage message.
      * </pre>
      *
-     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess}
+     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText}
      */
     public static final class Builder
         extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
         implements
-        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccessOrBuilder {
+        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioTextOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
           internalGetFieldAccessorTable() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_fieldAccessorTable
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.class,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.Builder
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.class,
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.Builder
                     .class);
       }
 
       // Construct using
-      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.newBuilder()
+      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -3251,31 +3356,27 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (metadataBuilder_ == null) {
-          metadata_ = null;
-        } else {
-          metadata_ = null;
-          metadataBuilder_ = null;
-        }
+        sourceCase_ = 0;
+        source_ = null;
         return this;
       }
 
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor;
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
           getDefaultInstanceForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
             .getDefaultInstance();
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess build() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess result =
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText build() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText result =
             buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
@@ -3284,15 +3385,16 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSucces
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
-          buildPartial() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess result =
-            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess(this);
-        if (metadataBuilder_ == null) {
-          result.metadata_ = metadata_;
-        } else {
-          result.metadata_ = metadataBuilder_.build();
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText buildPartial() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText result =
+            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText(this);
+        if (sourceCase_ == 1) {
+          result.source_ = source_;
         }
+        if (sourceCase_ == 2) {
+          result.source_ = source_;
+        }
+        result.sourceCase_ = sourceCase_;
         onBuilt();
         return result;
       }
@@ -3335,9 +3437,9 @@ public Builder addRepeatedField(
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other
-            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess) {
+            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText) {
           return mergeFrom(
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess) other);
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText) other);
         } else {
           super.mergeFrom(other);
           return this;
@@ -3345,12 +3447,29 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       }
 
       public Builder mergeFrom(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess other) {
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText other) {
         if (other
-            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
                 .getDefaultInstance()) return this;
-        if (other.hasMetadata()) {
-          mergeMetadata(other.getMetadata());
+        switch (other.getSourceCase()) {
+          case TEXT:
+            {
+              sourceCase_ = 1;
+              source_ = other.source_;
+              onChanged();
+              break;
+            }
+          case SSML:
+            {
+              sourceCase_ = 2;
+              source_ = other.source_;
+              onChanged();
+              break;
+            }
+          case SOURCE_NOT_SET:
+            {
+              break;
+            }
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -3367,13 +3486,12 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess parsedMessage =
-            null;
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
           parsedMessage =
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
                   e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
@@ -3384,183 +3502,261 @@ public Builder mergeFrom(
         return this;
       }
 
-      private com.google.protobuf.Struct metadata_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-              com.google.protobuf.Struct,
-              com.google.protobuf.Struct.Builder,
-              com.google.protobuf.StructOrBuilder>
-          metadataBuilder_;
+      private int sourceCase_ = 0;
+      private java.lang.Object source_;
+
+      public SourceCase getSourceCase() {
+        return SourceCase.forNumber(sourceCase_);
+      }
+
+      public Builder clearSource() {
+        sourceCase_ = 0;
+        source_ = null;
+        onChanged();
+        return this;
+      }
+
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The raw text to be synthesized.
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string text = 1;</code>
        *
-       * @return Whether the metadata field is set.
+       * @return The text.
        */
-      public boolean hasMetadata() {
-        return metadataBuilder_ != null || metadata_ != null;
+      @java.lang.Override
+      public java.lang.String getText() {
+        java.lang.Object ref = "";
+        if (sourceCase_ == 1) {
+          ref = source_;
+        }
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          if (sourceCase_ == 1) {
+            source_ = s;
+          }
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
       }
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The raw text to be synthesized.
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string text = 1;</code>
        *
-       * @return The metadata.
+       * @return The bytes for text.
        */
-      public com.google.protobuf.Struct getMetadata() {
-        if (metadataBuilder_ == null) {
-          return metadata_ == null ? com.google.protobuf.Struct.getDefaultInstance() : metadata_;
+      @java.lang.Override
+      public com.google.protobuf.ByteString getTextBytes() {
+        java.lang.Object ref = "";
+        if (sourceCase_ == 1) {
+          ref = source_;
+        }
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+          if (sourceCase_ == 1) {
+            source_ = b;
+          }
+          return b;
         } else {
-          return metadataBuilder_.getMessage();
+          return (com.google.protobuf.ByteString) ref;
         }
       }
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The raw text to be synthesized.
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string text = 1;</code>
+       *
+       * @param value The text to set.
+       * @return This builder for chaining.
        */
-      public Builder setMetadata(com.google.protobuf.Struct value) {
-        if (metadataBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          metadata_ = value;
-          onChanged();
-        } else {
-          metadataBuilder_.setMessage(value);
+      public Builder setText(java.lang.String value) {
+        if (value == null) {
+          throw new NullPointerException();
         }
-
+        sourceCase_ = 1;
+        source_ = value;
+        onChanged();
         return this;
       }
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The raw text to be synthesized.
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string text = 1;</code>
+       *
+       * @return This builder for chaining.
        */
-      public Builder setMetadata(com.google.protobuf.Struct.Builder builderForValue) {
-        if (metadataBuilder_ == null) {
-          metadata_ = builderForValue.build();
+      public Builder clearText() {
+        if (sourceCase_ == 1) {
+          sourceCase_ = 0;
+          source_ = null;
           onChanged();
-        } else {
-          metadataBuilder_.setMessage(builderForValue.build());
         }
-
         return this;
       }
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The raw text to be synthesized.
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string text = 1;</code>
+       *
+       * @param value The bytes for text to set.
+       * @return This builder for chaining.
        */
-      public Builder mergeMetadata(com.google.protobuf.Struct value) {
-        if (metadataBuilder_ == null) {
-          if (metadata_ != null) {
-            metadata_ =
-                com.google.protobuf.Struct.newBuilder(metadata_).mergeFrom(value).buildPartial();
-          } else {
-            metadata_ = value;
-          }
-          onChanged();
-        } else {
-          metadataBuilder_.mergeFrom(value);
+      public Builder setTextBytes(com.google.protobuf.ByteString value) {
+        if (value == null) {
+          throw new NullPointerException();
         }
-
+        checkByteStringIsUtf8(value);
+        sourceCase_ = 1;
+        source_ = value;
+        onChanged();
         return this;
       }
+
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The SSML text to be synthesized. For more information, see
+       * [SSML](/speech/text-to-speech/docs/ssml).
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string ssml = 2;</code>
+       *
+       * @return The ssml.
        */
-      public Builder clearMetadata() {
-        if (metadataBuilder_ == null) {
-          metadata_ = null;
-          onChanged();
+      @java.lang.Override
+      public java.lang.String getSsml() {
+        java.lang.Object ref = "";
+        if (sourceCase_ == 2) {
+          ref = source_;
+        }
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          if (sourceCase_ == 2) {
+            source_ = s;
+          }
+          return s;
         } else {
-          metadata_ = null;
-          metadataBuilder_ = null;
+          return (java.lang.String) ref;
         }
-
-        return this;
       }
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The SSML text to be synthesized. For more information, see
+       * [SSML](/speech/text-to-speech/docs/ssml).
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string ssml = 2;</code>
+       *
+       * @return The bytes for ssml.
        */
-      public com.google.protobuf.Struct.Builder getMetadataBuilder() {
-
+      @java.lang.Override
+      public com.google.protobuf.ByteString getSsmlBytes() {
+        java.lang.Object ref = "";
+        if (sourceCase_ == 2) {
+          ref = source_;
+        }
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+          if (sourceCase_ == 2) {
+            source_ = b;
+          }
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       *
+       *
+       * <pre>
+       * The SSML text to be synthesized. For more information, see
+       * [SSML](/speech/text-to-speech/docs/ssml).
+       * </pre>
+       *
+       * <code>string ssml = 2;</code>
+       *
+       * @param value The ssml to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSsml(java.lang.String value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        sourceCase_ = 2;
+        source_ = value;
         onChanged();
-        return getMetadataFieldBuilder().getBuilder();
+        return this;
       }
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The SSML text to be synthesized. For more information, see
+       * [SSML](/speech/text-to-speech/docs/ssml).
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string ssml = 2;</code>
+       *
+       * @return This builder for chaining.
        */
-      public com.google.protobuf.StructOrBuilder getMetadataOrBuilder() {
-        if (metadataBuilder_ != null) {
-          return metadataBuilder_.getMessageOrBuilder();
-        } else {
-          return metadata_ == null ? com.google.protobuf.Struct.getDefaultInstance() : metadata_;
+      public Builder clearSsml() {
+        if (sourceCase_ == 2) {
+          sourceCase_ = 0;
+          source_ = null;
+          onChanged();
         }
+        return this;
       }
       /**
        *
        *
        * <pre>
-       * Custom metadata. Dialogflow doesn't impose any structure on this.
+       * The SSML text to be synthesized. For more information, see
+       * [SSML](/speech/text-to-speech/docs/ssml).
        * </pre>
        *
-       * <code>.google.protobuf.Struct metadata = 1;</code>
+       * <code>string ssml = 2;</code>
+       *
+       * @param value The bytes for ssml to set.
+       * @return This builder for chaining.
        */
-      private com.google.protobuf.SingleFieldBuilderV3<
-              com.google.protobuf.Struct,
-              com.google.protobuf.Struct.Builder,
-              com.google.protobuf.StructOrBuilder>
-          getMetadataFieldBuilder() {
-        if (metadataBuilder_ == null) {
-          metadataBuilder_ =
-              new com.google.protobuf.SingleFieldBuilderV3<
-                  com.google.protobuf.Struct,
-                  com.google.protobuf.Struct.Builder,
-                  com.google.protobuf.StructOrBuilder>(
-                  getMetadata(), getParentForChildren(), isClean());
-          metadata_ = null;
+      public Builder setSsmlBytes(com.google.protobuf.ByteString value) {
+        if (value == null) {
+          throw new NullPointerException();
         }
-        return metadataBuilder_;
+        checkByteStringIsUtf8(value);
+        sourceCase_ = 2;
+        source_ = value;
+        onChanged();
+        return this;
       }
 
       @java.lang.Override
@@ -3575,124 +3771,81 @@ public final Builder mergeUnknownFields(
         return super.mergeUnknownFields(unknownFields);
       }
 
-      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
+      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
     }
 
-    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess)
-    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
+    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
         DEFAULT_INSTANCE;
 
     static {
       DEFAULT_INSTANCE =
-          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess();
+          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText();
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
         getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
-    private static final com.google.protobuf.Parser<ConversationSuccess> PARSER =
-        new com.google.protobuf.AbstractParser<ConversationSuccess>() {
+    private static final com.google.protobuf.Parser<OutputAudioText> PARSER =
+        new com.google.protobuf.AbstractParser<OutputAudioText>() {
           @java.lang.Override
-          public ConversationSuccess parsePartialFrom(
+          public OutputAudioText parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            return new ConversationSuccess(input, extensionRegistry);
+            return new OutputAudioText(input, extensionRegistry);
           }
         };
 
-    public static com.google.protobuf.Parser<ConversationSuccess> parser() {
+    public static com.google.protobuf.Parser<OutputAudioText> parser() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.protobuf.Parser<ConversationSuccess> getParserForType() {
+    public com.google.protobuf.Parser<OutputAudioText> getParserForType() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
         getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
   }
 
-  public interface PlayAudioOrBuilder
+  public interface EndInteractionOrBuilder
       extends
-      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     *
-     *
-     * <pre>
-     * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-     * value. It is specific to the client that reads it.
-     * </pre>
-     *
-     * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-     *
-     * @return The audioUri.
-     */
-    java.lang.String getAudioUri();
-    /**
-     *
-     *
-     * <pre>
-     * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-     * value. It is specific to the client that reads it.
-     * </pre>
-     *
-     * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-     *
-     * @return The bytes for audioUri.
-     */
-    com.google.protobuf.ByteString getAudioUriBytes();
-
-    /**
-     *
-     *
-     * <pre>
-     * Whether the playback of this message can be interrupted by the end
-     * user's speech and the client can then starts the next Dialogflow
-     * request.
-     * </pre>
-     *
-     * <code>bool allow_playback_interruption = 2;</code>
-     *
-     * @return The allowPlaybackInterruption.
-     */
-    boolean getAllowPlaybackInterruption();
-  }
+      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
+      com.google.protobuf.MessageOrBuilder {}
   /**
    *
    *
    * <pre>
-   * Specifies an audio clip to be played by the client as part of the response.
+   * Indicates that interaction with the Dialogflow agent has ended.
+   * This message is generated by Dialogflow only and not supposed to be
+   * defined by the user.
    * </pre>
    *
-   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio}
+   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction}
    */
-  public static final class PlayAudio extends com.google.protobuf.GeneratedMessageV3
+  public static final class EndInteraction extends com.google.protobuf.GeneratedMessageV3
       implements
-      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
-      PlayAudioOrBuilder {
+      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
+      EndInteractionOrBuilder {
     private static final long serialVersionUID = 0L;
-    // Use PlayAudio.newBuilder() to construct.
-    private PlayAudio(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    // Use EndInteraction.newBuilder() to construct.
+    private EndInteraction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
       super(builder);
     }
 
-    private PlayAudio() {
-      audioUri_ = "";
-    }
+    private EndInteraction() {}
 
     @java.lang.Override
     @SuppressWarnings({"unused"})
     protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
-      return new PlayAudio();
+      return new EndInteraction();
     }
 
     @java.lang.Override
@@ -3700,7 +3853,7 @@ public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
       return this.unknownFields;
     }
 
-    private PlayAudio(
+    private EndInteraction(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
@@ -3718,18 +3871,6 @@ private PlayAudio(
             case 0:
               done = true;
               break;
-            case 10:
-              {
-                java.lang.String s = input.readStringRequireUtf8();
-
-                audioUri_ = s;
-                break;
-              }
-            case 16:
-              {
-                allowPlaybackInterruption_ = input.readBool();
-                break;
-              }
             default:
               {
                 if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
@@ -3751,92 +3892,21 @@ private PlayAudio(
 
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor;
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_fieldAccessorTable
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.class,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.Builder.class);
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.class,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.Builder.class);
     }
 
-    public static final int AUDIO_URI_FIELD_NUMBER = 1;
-    private volatile java.lang.Object audioUri_;
-    /**
-     *
-     *
-     * <pre>
-     * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-     * value. It is specific to the client that reads it.
-     * </pre>
-     *
-     * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-     *
-     * @return The audioUri.
-     */
-    @java.lang.Override
-    public java.lang.String getAudioUri() {
-      java.lang.Object ref = audioUri_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        audioUri_ = s;
-        return s;
-      }
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-     * value. It is specific to the client that reads it.
-     * </pre>
-     *
-     * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-     *
-     * @return The bytes for audioUri.
-     */
-    @java.lang.Override
-    public com.google.protobuf.ByteString getAudioUriBytes() {
-      java.lang.Object ref = audioUri_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b =
-            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
-        audioUri_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-
-    public static final int ALLOW_PLAYBACK_INTERRUPTION_FIELD_NUMBER = 2;
-    private boolean allowPlaybackInterruption_;
-    /**
-     *
-     *
-     * <pre>
-     * Whether the playback of this message can be interrupted by the end
-     * user's speech and the client can then starts the next Dialogflow
-     * request.
-     * </pre>
-     *
-     * <code>bool allow_playback_interruption = 2;</code>
-     *
-     * @return The allowPlaybackInterruption.
-     */
-    @java.lang.Override
-    public boolean getAllowPlaybackInterruption() {
-      return allowPlaybackInterruption_;
-    }
-
-    private byte memoizedIsInitialized = -1;
-
+    private byte memoizedIsInitialized = -1;
+
     @java.lang.Override
     public final boolean isInitialized() {
       byte isInitialized = memoizedIsInitialized;
@@ -3849,12 +3919,6 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (!getAudioUriBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, audioUri_);
-      }
-      if (allowPlaybackInterruption_ != false) {
-        output.writeBool(2, allowPlaybackInterruption_);
-      }
       unknownFields.writeTo(output);
     }
 
@@ -3864,13 +3928,6 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (!getAudioUriBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, audioUri_);
-      }
-      if (allowPlaybackInterruption_ != false) {
-        size +=
-            com.google.protobuf.CodedOutputStream.computeBoolSize(2, allowPlaybackInterruption_);
-      }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
@@ -3881,14 +3938,12 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
         return true;
       }
-      if (!(obj instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)) {
+      if (!(obj instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)) {
         return super.equals(obj);
       }
-      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio other =
-          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio) obj;
+      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction other =
+          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction) obj;
 
-      if (!getAudioUri().equals(other.getAudioUri())) return false;
-      if (getAllowPlaybackInterruption() != other.getAllowPlaybackInterruption()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -3900,68 +3955,64 @@ public int hashCode() {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + AUDIO_URI_FIELD_NUMBER;
-      hash = (53 * hash) + getAudioUri().hashCode();
-      hash = (37 * hash) + ALLOW_PLAYBACK_INTERRUPTION_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllowPlaybackInterruption());
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
         parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
         parseDelimitedFrom(
             java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
@@ -3969,12 +4020,12 @@ public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio p
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         com.google.protobuf.CodedInputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -3992,7 +4043,7 @@ public static Builder newBuilder() {
     }
 
     public static Builder newBuilder(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio prototype) {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
 
@@ -4011,33 +4062,36 @@ protected Builder newBuilderForType(
      *
      *
      * <pre>
-     * Specifies an audio clip to be played by the client as part of the response.
+     * Indicates that interaction with the Dialogflow agent has ended.
+     * This message is generated by Dialogflow only and not supposed to be
+     * defined by the user.
      * </pre>
      *
-     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio}
+     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction}
      */
     public static final class Builder
         extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
         implements
-        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudioOrBuilder {
+        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteractionOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
           internalGetFieldAccessorTable() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_fieldAccessorTable
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.class,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.Builder.class);
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.class,
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.Builder
+                    .class);
       }
 
       // Construct using
-      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.newBuilder()
+      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -4054,29 +4108,26 @@ private void maybeForceBuilderInitialization() {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        audioUri_ = "";
-
-        allowPlaybackInterruption_ = false;
-
         return this;
       }
 
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_descriptor;
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
           getDefaultInstanceForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
             .getDefaultInstance();
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio build() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio result = buildPartial();
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction build() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction result =
+            buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -4084,11 +4135,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio build()
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio buildPartial() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio result =
-            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio(this);
-        result.audioUri_ = audioUri_;
-        result.allowPlaybackInterruption_ = allowPlaybackInterruption_;
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction buildPartial() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction result =
+            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction(this);
         onBuilt();
         return result;
       }
@@ -4130,9 +4179,10 @@ public Builder addRepeatedField(
 
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio) {
+        if (other
+            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction) {
           return mergeFrom(
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio) other);
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction) other);
         } else {
           super.mergeFrom(other);
           return this;
@@ -4140,17 +4190,10 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       }
 
       public Builder mergeFrom(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio other) {
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction other) {
         if (other
-            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
+            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
                 .getDefaultInstance()) return this;
-        if (!other.getAudioUri().isEmpty()) {
-          audioUri_ = other.audioUri_;
-          onChanged();
-        }
-        if (other.getAllowPlaybackInterruption() != false) {
-          setAllowPlaybackInterruption(other.getAllowPlaybackInterruption());
-        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -4166,12 +4209,12 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parsedMessage = null;
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
           parsedMessage =
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
                   e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
@@ -4182,316 +4225,167 @@ public Builder mergeFrom(
         return this;
       }
 
-      private java.lang.Object audioUri_ = "";
-      /**
-       *
-       *
-       * <pre>
-       * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-       * value. It is specific to the client that reads it.
-       * </pre>
-       *
-       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-       *
-       * @return The audioUri.
-       */
-      public java.lang.String getAudioUri() {
-        java.lang.Object ref = audioUri_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          audioUri_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-       * value. It is specific to the client that reads it.
-       * </pre>
-       *
-       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-       *
-       * @return The bytes for audioUri.
-       */
-      public com.google.protobuf.ByteString getAudioUriBytes() {
-        java.lang.Object ref = audioUri_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b =
-              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
-          audioUri_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
       }
-      /**
-       *
-       *
-       * <pre>
-       * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-       * value. It is specific to the client that reads it.
-       * </pre>
-       *
-       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-       *
-       * @param value The audioUri to set.
-       * @return This builder for chaining.
-       */
-      public Builder setAudioUri(java.lang.String value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
 
-        audioUri_ = value;
-        onChanged();
-        return this;
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
       }
-      /**
-       *
-       *
-       * <pre>
-       * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-       * value. It is specific to the client that reads it.
-       * </pre>
-       *
-       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-       *
-       * @return This builder for chaining.
-       */
-      public Builder clearAudioUri() {
 
-        audioUri_ = getDefaultInstance().getAudioUri();
-        onChanged();
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Required. URI of the audio clip. Dialogflow does not impose any validation on this
-       * value. It is specific to the client that reads it.
-       * </pre>
-       *
-       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
-       *
-       * @param value The bytes for audioUri to set.
-       * @return This builder for chaining.
-       */
-      public Builder setAudioUriBytes(com.google.protobuf.ByteString value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        checkByteStringIsUtf8(value);
+      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
+    }
 
-        audioUri_ = value;
-        onChanged();
-        return this;
-      }
-
-      private boolean allowPlaybackInterruption_;
-      /**
-       *
-       *
-       * <pre>
-       * Whether the playback of this message can be interrupted by the end
-       * user's speech and the client can then starts the next Dialogflow
-       * request.
-       * </pre>
-       *
-       * <code>bool allow_playback_interruption = 2;</code>
-       *
-       * @return The allowPlaybackInterruption.
-       */
-      @java.lang.Override
-      public boolean getAllowPlaybackInterruption() {
-        return allowPlaybackInterruption_;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Whether the playback of this message can be interrupted by the end
-       * user's speech and the client can then starts the next Dialogflow
-       * request.
-       * </pre>
-       *
-       * <code>bool allow_playback_interruption = 2;</code>
-       *
-       * @param value The allowPlaybackInterruption to set.
-       * @return This builder for chaining.
-       */
-      public Builder setAllowPlaybackInterruption(boolean value) {
-
-        allowPlaybackInterruption_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Whether the playback of this message can be interrupted by the end
-       * user's speech and the client can then starts the next Dialogflow
-       * request.
-       * </pre>
-       *
-       * <code>bool allow_playback_interruption = 2;</code>
-       *
-       * @return This builder for chaining.
-       */
-      public Builder clearAllowPlaybackInterruption() {
-
-        allowPlaybackInterruption_ = false;
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
-    }
-
-    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
-    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
+    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
+    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
         DEFAULT_INSTANCE;
 
     static {
-      DEFAULT_INSTANCE = new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio();
+      DEFAULT_INSTANCE =
+          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction();
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
         getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
-    private static final com.google.protobuf.Parser<PlayAudio> PARSER =
-        new com.google.protobuf.AbstractParser<PlayAudio>() {
+    private static final com.google.protobuf.Parser<EndInteraction> PARSER =
+        new com.google.protobuf.AbstractParser<EndInteraction>() {
           @java.lang.Override
-          public PlayAudio parsePartialFrom(
+          public EndInteraction parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            return new PlayAudio(input, extensionRegistry);
+            return new EndInteraction(input, extensionRegistry);
           }
         };
 
-    public static com.google.protobuf.Parser<PlayAudio> parser() {
+    public static com.google.protobuf.Parser<EndInteraction> parser() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.protobuf.Parser<PlayAudio> getParserForType() {
+    public com.google.protobuf.Parser<EndInteraction> getParserForType() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
         getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
   }
 
-  public interface OutputAudioTextOrBuilder
+  public interface MixedAudioOrBuilder
       extends
-      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
+      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
       com.google.protobuf.MessageOrBuilder {
 
     /**
      *
      *
      * <pre>
-     * The raw text to be synthesized.
+     * Segments this audio response is composed of.
      * </pre>
      *
-     * <code>string text = 1;</code>
-     *
-     * @return The text.
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
      */
-    java.lang.String getText();
+    java.util.List<com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
+        getSegmentsList();
     /**
      *
      *
      * <pre>
-     * The raw text to be synthesized.
+     * Segments this audio response is composed of.
      * </pre>
      *
-     * <code>string text = 1;</code>
-     *
-     * @return The bytes for text.
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
      */
-    com.google.protobuf.ByteString getTextBytes();
-
+    com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment getSegments(
+        int index);
     /**
      *
      *
      * <pre>
-     * The SSML text to be synthesized. For more information, see
-     * [SSML](/speech/text-to-speech/docs/ssml).
+     * Segments this audio response is composed of.
      * </pre>
      *
-     * <code>string ssml = 2;</code>
-     *
-     * @return The ssml.
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
      */
-    java.lang.String getSsml();
+    int getSegmentsCount();
     /**
      *
      *
      * <pre>
-     * The SSML text to be synthesized. For more information, see
-     * [SSML](/speech/text-to-speech/docs/ssml).
+     * Segments this audio response is composed of.
      * </pre>
      *
-     * <code>string ssml = 2;</code>
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
+     */
+    java.util.List<
+            ? extends
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder>
+        getSegmentsOrBuilderList();
+    /**
      *
-     * @return The bytes for ssml.
+     *
+     * <pre>
+     * Segments this audio response is composed of.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
      */
-    com.google.protobuf.ByteString getSsmlBytes();
-
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.SourceCase
-        getSourceCase();
+    com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder
+        getSegmentsOrBuilder(int index);
   }
   /**
    *
    *
    * <pre>
-   * A text or ssml response that is preferentially used for TTS output audio
-   * synthesis, as described in the comment on the ResponseMessage message.
+   * Represents an audio message that is composed of both segments
+   * synthesized from the Dialogflow agent prompts and ones hosted externally
+   * at the specified URIs.
+   * The external URIs are specified via
+   * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
+   * This message is generated by Dialogflow only and not supposed to be
+   * defined by the user.
    * </pre>
    *
-   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText}
+   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio}
    */
-  public static final class OutputAudioText extends com.google.protobuf.GeneratedMessageV3
+  public static final class MixedAudio extends com.google.protobuf.GeneratedMessageV3
       implements
-      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
-      OutputAudioTextOrBuilder {
+      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
+      MixedAudioOrBuilder {
     private static final long serialVersionUID = 0L;
-    // Use OutputAudioText.newBuilder() to construct.
-    private OutputAudioText(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    // Use MixedAudio.newBuilder() to construct.
+    private MixedAudio(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
       super(builder);
     }
 
-    private OutputAudioText() {}
+    private MixedAudio() {
+      segments_ = java.util.Collections.emptyList();
+    }
 
     @java.lang.Override
     @SuppressWarnings({"unused"})
     protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
-      return new OutputAudioText();
+      return new MixedAudio();
     }
 
     @java.lang.Override
@@ -4499,7 +4393,7 @@ public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
       return this.unknownFields;
     }
 
-    private OutputAudioText(
+    private MixedAudio(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
@@ -4507,6 +4401,7 @@ private OutputAudioText(
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
+      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -4519,16 +4414,18 @@ private OutputAudioText(
               break;
             case 10:
               {
-                java.lang.String s = input.readStringRequireUtf8();
-                sourceCase_ = 1;
-                source_ = s;
-                break;
-              }
-            case 18:
-              {
-                java.lang.String s = input.readStringRequireUtf8();
-                sourceCase_ = 2;
-                source_ = s;
+                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                  segments_ =
+                      new java.util.ArrayList<
+                          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+                              .Segment>();
+                  mutable_bitField0_ |= 0x00000001;
+                }
+                segments_.add(
+                    input.readMessage(
+                        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+                            .parser(),
+                        extensionRegistry));
                 break;
               }
             default:
@@ -4545,6 +4442,9 @@ private OutputAudioText(
       } catch (java.io.IOException e) {
         throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
       } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          segments_ = java.util.Collections.unmodifiableList(segments_);
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -4552,2648 +4452,2217 @@ private OutputAudioText(
 
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor;
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
       return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_fieldAccessorTable
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.class,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.Builder.class);
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.class,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Builder.class);
     }
 
-    private int sourceCase_ = 0;
-    private java.lang.Object source_;
-
-    public enum SourceCase
-        implements
-            com.google.protobuf.Internal.EnumLite,
-            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
-      TEXT(1),
-      SSML(2),
-      SOURCE_NOT_SET(0);
-      private final int value;
+    public interface SegmentOrBuilder
+        extends
+        // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
+        com.google.protobuf.MessageOrBuilder {
 
-      private SourceCase(int value) {
-        this.value = value;
-      }
       /**
-       * @param value The number of the enum to look for.
-       * @return The enum associated with the given number.
-       * @deprecated Use {@link #forNumber(int)} instead.
+       *
+       *
+       * <pre>
+       * Raw audio synthesized from the Dialogflow agent's response using
+       * the output config specified in the request.
+       * </pre>
+       *
+       * <code>bytes audio = 1;</code>
+       *
+       * @return The audio.
        */
-      @java.lang.Deprecated
-      public static SourceCase valueOf(int value) {
-        return forNumber(value);
-      }
+      com.google.protobuf.ByteString getAudio();
 
-      public static SourceCase forNumber(int value) {
-        switch (value) {
-          case 1:
-            return TEXT;
-          case 2:
-            return SSML;
-          case 0:
-            return SOURCE_NOT_SET;
-          default:
-            return null;
-        }
-      }
-
-      public int getNumber() {
-        return this.value;
-      }
-    };
+      /**
+       *
+       *
+       * <pre>
+       * Client-specific URI that points to an audio clip accessible to the
+       * client. Dialogflow does not impose any validation on it.
+       * </pre>
+       *
+       * <code>string uri = 2;</code>
+       *
+       * @return The uri.
+       */
+      java.lang.String getUri();
+      /**
+       *
+       *
+       * <pre>
+       * Client-specific URI that points to an audio clip accessible to the
+       * client. Dialogflow does not impose any validation on it.
+       * </pre>
+       *
+       * <code>string uri = 2;</code>
+       *
+       * @return The bytes for uri.
+       */
+      com.google.protobuf.ByteString getUriBytes();
 
-    public SourceCase getSourceCase() {
-      return SourceCase.forNumber(sourceCase_);
-    }
+      /**
+       *
+       *
+       * <pre>
+       * Output only. Whether the playback of this segment can be interrupted by
+       * the end user's speech and the client should then start the next
+       * Dialogflow request.
+       * </pre>
+       *
+       * <code>bool allow_playback_interruption = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+       * </code>
+       *
+       * @return The allowPlaybackInterruption.
+       */
+      boolean getAllowPlaybackInterruption();
 
-    public static final int TEXT_FIELD_NUMBER = 1;
-    /**
-     *
-     *
-     * <pre>
-     * The raw text to be synthesized.
-     * </pre>
-     *
-     * <code>string text = 1;</code>
-     *
-     * @return The text.
-     */
-    public java.lang.String getText() {
-      java.lang.Object ref = "";
-      if (sourceCase_ == 1) {
-        ref = source_;
-      }
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        if (sourceCase_ == 1) {
-          source_ = s;
-        }
-        return s;
-      }
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.ContentCase
+          getContentCase();
     }
     /**
      *
      *
      * <pre>
-     * The raw text to be synthesized.
+     * Represents one segment of audio.
      * </pre>
      *
-     * <code>string text = 1;</code>
-     *
-     * @return The bytes for text.
+     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment}
      */
-    public com.google.protobuf.ByteString getTextBytes() {
-      java.lang.Object ref = "";
-      if (sourceCase_ == 1) {
-        ref = source_;
+    public static final class Segment extends com.google.protobuf.GeneratedMessageV3
+        implements
+        // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
+        SegmentOrBuilder {
+      private static final long serialVersionUID = 0L;
+      // Use Segment.newBuilder() to construct.
+      private Segment(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+        super(builder);
       }
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b =
-            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
-        if (sourceCase_ == 1) {
-          source_ = b;
-        }
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
+
+      private Segment() {}
+
+      @java.lang.Override
+      @SuppressWarnings({"unused"})
+      protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+        return new Segment();
       }
-    }
 
-    public static final int SSML_FIELD_NUMBER = 2;
-    /**
-     *
-     *
-     * <pre>
-     * The SSML text to be synthesized. For more information, see
-     * [SSML](/speech/text-to-speech/docs/ssml).
-     * </pre>
-     *
-     * <code>string ssml = 2;</code>
-     *
-     * @return The ssml.
-     */
-    public java.lang.String getSsml() {
-      java.lang.Object ref = "";
-      if (sourceCase_ == 2) {
-        ref = source_;
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+        return this.unknownFields;
       }
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        if (sourceCase_ == 2) {
-          source_ = s;
+
+      private Segment(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
         }
-        return s;
-      }
-    }
-    /**
-     *
-     *
-     * <pre>
-     * The SSML text to be synthesized. For more information, see
-     * [SSML](/speech/text-to-speech/docs/ssml).
-     * </pre>
-     *
-     * <code>string ssml = 2;</code>
-     *
-     * @return The bytes for ssml.
-     */
-    public com.google.protobuf.ByteString getSsmlBytes() {
-      java.lang.Object ref = "";
-      if (sourceCase_ == 2) {
-        ref = source_;
-      }
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b =
-            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
-        if (sourceCase_ == 2) {
-          source_ = b;
+        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+            com.google.protobuf.UnknownFieldSet.newBuilder();
+        try {
+          boolean done = false;
+          while (!done) {
+            int tag = input.readTag();
+            switch (tag) {
+              case 0:
+                done = true;
+                break;
+              case 10:
+                {
+                  contentCase_ = 1;
+                  content_ = input.readBytes();
+                  break;
+                }
+              case 18:
+                {
+                  java.lang.String s = input.readStringRequireUtf8();
+                  contentCase_ = 2;
+                  content_ = s;
+                  break;
+                }
+              case 24:
+                {
+                  allowPlaybackInterruption_ = input.readBool();
+                  break;
+                }
+              default:
+                {
+                  if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
+                    done = true;
+                  }
+                  break;
+                }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(e)
+              .setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
         }
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
       }
-    }
 
-    private byte memoizedIsInitialized = -1;
+      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_descriptor;
+      }
 
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.class,
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
+                    .class);
+      }
 
-      memoizedIsInitialized = 1;
-      return true;
-    }
+      private int contentCase_ = 0;
+      private java.lang.Object content_;
 
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (sourceCase_ == 1) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, source_);
-      }
-      if (sourceCase_ == 2) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, source_);
-      }
-      unknownFields.writeTo(output);
-    }
+      public enum ContentCase
+          implements
+              com.google.protobuf.Internal.EnumLite,
+              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
+        AUDIO(1),
+        URI(2),
+        CONTENT_NOT_SET(0);
+        private final int value;
 
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
+        private ContentCase(int value) {
+          this.value = value;
+        }
+        /**
+         * @param value The number of the enum to look for.
+         * @return The enum associated with the given number.
+         * @deprecated Use {@link #forNumber(int)} instead.
+         */
+        @java.lang.Deprecated
+        public static ContentCase valueOf(int value) {
+          return forNumber(value);
+        }
 
-      size = 0;
-      if (sourceCase_ == 1) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, source_);
-      }
-      if (sourceCase_ == 2) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, source_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
+        public static ContentCase forNumber(int value) {
+          switch (value) {
+            case 1:
+              return AUDIO;
+            case 2:
+              return URI;
+            case 0:
+              return CONTENT_NOT_SET;
+            default:
+              return null;
+          }
+        }
 
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-        return true;
-      }
-      if (!(obj
-          instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)) {
-        return super.equals(obj);
+        public int getNumber() {
+          return this.value;
+        }
+      };
+
+      public ContentCase getContentCase() {
+        return ContentCase.forNumber(contentCase_);
       }
-      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText other =
-          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText) obj;
 
-      if (!getSourceCase().equals(other.getSourceCase())) return false;
-      switch (sourceCase_) {
-        case 1:
-          if (!getText().equals(other.getText())) return false;
-          break;
-        case 2:
-          if (!getSsml().equals(other.getSsml())) return false;
-          break;
-        case 0:
-        default:
+      public static final int AUDIO_FIELD_NUMBER = 1;
+      /**
+       *
+       *
+       * <pre>
+       * Raw audio synthesized from the Dialogflow agent's response using
+       * the output config specified in the request.
+       * </pre>
+       *
+       * <code>bytes audio = 1;</code>
+       *
+       * @return The audio.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString getAudio() {
+        if (contentCase_ == 1) {
+          return (com.google.protobuf.ByteString) content_;
+        }
+        return com.google.protobuf.ByteString.EMPTY;
       }
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
 
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
+      public static final int URI_FIELD_NUMBER = 2;
+      /**
+       *
+       *
+       * <pre>
+       * Client-specific URI that points to an audio clip accessible to the
+       * client. Dialogflow does not impose any validation on it.
+       * </pre>
+       *
+       * <code>string uri = 2;</code>
+       *
+       * @return The uri.
+       */
+      public java.lang.String getUri() {
+        java.lang.Object ref = "";
+        if (contentCase_ == 2) {
+          ref = content_;
+        }
+        if (ref instanceof java.lang.String) {
+          return (java.lang.String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          if (contentCase_ == 2) {
+            content_ = s;
+          }
+          return s;
+        }
       }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      switch (sourceCase_) {
-        case 1:
-          hash = (37 * hash) + TEXT_FIELD_NUMBER;
-          hash = (53 * hash) + getText().hashCode();
-          break;
-        case 2:
-          hash = (37 * hash) + SSML_FIELD_NUMBER;
-          hash = (53 * hash) + getSsml().hashCode();
-          break;
-        case 0:
-        default:
+      /**
+       *
+       *
+       * <pre>
+       * Client-specific URI that points to an audio clip accessible to the
+       * client. Dialogflow does not impose any validation on it.
+       * </pre>
+       *
+       * <code>string uri = 2;</code>
+       *
+       * @return The bytes for uri.
+       */
+      public com.google.protobuf.ByteString getUriBytes() {
+        java.lang.Object ref = "";
+        if (contentCase_ == 2) {
+          ref = content_;
+        }
+        if (ref instanceof java.lang.String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+          if (contentCase_ == 2) {
+            content_ = b;
+          }
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
       }
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
+      public static final int ALLOW_PLAYBACK_INTERRUPTION_FIELD_NUMBER = 3;
+      private boolean allowPlaybackInterruption_;
+      /**
+       *
+       *
+       * <pre>
+       * Output only. Whether the playback of this segment can be interrupted by
+       * the end user's speech and the client should then start the next
+       * Dialogflow request.
+       * </pre>
+       *
+       * <code>bool allow_playback_interruption = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+       * </code>
+       *
+       * @return The allowPlaybackInterruption.
+       */
+      @java.lang.Override
+      public boolean getAllowPlaybackInterruption() {
+        return allowPlaybackInterruption_;
+      }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
+      private byte memoizedIsInitialized = -1;
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
+      @java.lang.Override
+      public final boolean isInitialized() {
+        byte isInitialized = memoizedIsInitialized;
+        if (isInitialized == 1) return true;
+        if (isInitialized == 0) return false;
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
+        memoizedIsInitialized = 1;
+        return true;
+      }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
+      @java.lang.Override
+      public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+        if (contentCase_ == 1) {
+          output.writeBytes(1, (com.google.protobuf.ByteString) content_);
+        }
+        if (contentCase_ == 2) {
+          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_);
+        }
+        if (allowPlaybackInterruption_ != false) {
+          output.writeBool(3, allowPlaybackInterruption_);
+        }
+        unknownFields.writeTo(output);
+      }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        java.io.InputStream input) throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
-    }
+      @java.lang.Override
+      public int getSerializedSize() {
+        int size = memoizedSize;
+        if (size != -1) return size;
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
-          PARSER, input, extensionRegistry);
-    }
+        size = 0;
+        if (contentCase_ == 1) {
+          size +=
+              com.google.protobuf.CodedOutputStream.computeBytesSize(
+                  1, (com.google.protobuf.ByteString) content_);
+        }
+        if (contentCase_ == 2) {
+          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_);
+        }
+        if (allowPlaybackInterruption_ != false) {
+          size +=
+              com.google.protobuf.CodedOutputStream.computeBoolSize(3, allowPlaybackInterruption_);
+        }
+        size += unknownFields.getSerializedSize();
+        memoizedSize = size;
+        return size;
+      }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
-        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
-    }
+      @java.lang.Override
+      public boolean equals(final java.lang.Object obj) {
+        if (obj == this) {
+          return true;
+        }
+        if (!(obj
+            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)) {
+          return super.equals(obj);
+        }
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment other =
+            (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment) obj;
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
-        parseDelimitedFrom(
-            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
-          PARSER, input, extensionRegistry);
-    }
+        if (getAllowPlaybackInterruption() != other.getAllowPlaybackInterruption()) return false;
+        if (!getContentCase().equals(other.getContentCase())) return false;
+        switch (contentCase_) {
+          case 1:
+            if (!getAudio().equals(other.getAudio())) return false;
+            break;
+          case 2:
+            if (!getUri().equals(other.getUri())) return false;
+            break;
+          case 0:
+          default:
+        }
+        if (!unknownFields.equals(other.unknownFields)) return false;
+        return true;
+      }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
-    }
+      @java.lang.Override
+      public int hashCode() {
+        if (memoizedHashCode != 0) {
+          return memoizedHashCode;
+        }
+        int hash = 41;
+        hash = (19 * hash) + getDescriptor().hashCode();
+        hash = (37 * hash) + ALLOW_PLAYBACK_INTERRUPTION_FIELD_NUMBER;
+        hash =
+            (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllowPlaybackInterruption());
+        switch (contentCase_) {
+          case 1:
+            hash = (37 * hash) + AUDIO_FIELD_NUMBER;
+            hash = (53 * hash) + getAudio().hashCode();
+            break;
+          case 2:
+            hash = (37 * hash) + URI_FIELD_NUMBER;
+            hash = (53 * hash) + getUri().hashCode();
+            break;
+          case 0:
+          default:
+        }
+        hash = (29 * hash) + unknownFields.hashCode();
+        memoizedHashCode = hash;
+        return hash;
+      }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
-          PARSER, input, extensionRegistry);
-    }
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(java.nio.ByteBuffer data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
 
-    @java.lang.Override
-    public Builder newBuilderForType() {
-      return newBuilder();
-    }
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(
+              java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
+      }
 
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
 
-    public static Builder newBuilder(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
+      }
 
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
-    }
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
 
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     *
-     *
-     * <pre>
-     * A text or ssml response that is preferentially used for TTS output audio
-     * synthesis, as described in the comment on the ResponseMessage message.
-     * </pre>
-     *
-     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText}
-     */
-    public static final class Builder
-        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
-        implements
-        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioTextOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor;
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
       }
 
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.class,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.Builder
-                    .class);
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(java.io.InputStream input) throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
       }
 
-      // Construct using
-      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(
+              java.io.InputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+            PARSER, input, extensionRegistry);
       }
 
-      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
       }
 
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseDelimitedFrom(
+              java.io.InputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+            PARSER, input, extensionRegistry);
       }
 
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        sourceCase_ = 0;
-        source_ = null;
-        return this;
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
       }
 
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor;
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          parseFrom(
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+            PARSER, input, extensionRegistry);
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
-          getDefaultInstanceForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
-            .getDefaultInstance();
+      public Builder newBuilderForType() {
+        return newBuilder();
+      }
+
+      public static Builder newBuilder() {
+        return DEFAULT_INSTANCE.toBuilder();
+      }
+
+      public static Builder newBuilder(
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment prototype) {
+        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText build() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText result =
-            buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
+      public Builder toBuilder() {
+        return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText buildPartial() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText result =
-            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText(this);
-        if (sourceCase_ == 1) {
-          result.source_ = source_;
-        }
-        if (sourceCase_ == 2) {
-          result.source_ = source_;
-        }
-        result.sourceCase_ = sourceCase_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
+      protected Builder newBuilderForType(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        Builder builder = new Builder(parent);
+        return builder;
       }
+      /**
+       *
+       *
+       * <pre>
+       * Represents one segment of audio.
+       * </pre>
+       *
+       * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment}
+       */
+      public static final class Builder
+          extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+          implements
+          // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder {
+        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+          return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+              .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_descriptor;
+        }
 
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
-        return super.setField(field, value);
-      }
+        @java.lang.Override
+        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+            internalGetFieldAccessorTable() {
+          return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+              .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_fieldAccessorTable
+              .ensureFieldAccessorsInitialized(
+                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.class,
+                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
+                      .class);
+        }
 
-      @java.lang.Override
-      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
+        // Construct using
+        // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.newBuilder()
+        private Builder() {
+          maybeForceBuilderInitialization();
+        }
 
-      @java.lang.Override
-      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
+        private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+          super(parent);
+          maybeForceBuilderInitialization();
+        }
 
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index,
-          java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
+        }
 
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
+        @java.lang.Override
+        public Builder clear() {
+          super.clear();
+          allowPlaybackInterruption_ = false;
 
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other
-            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText) {
-          return mergeFrom(
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText) other);
-        } else {
-          super.mergeFrom(other);
+          contentCase_ = 0;
+          content_ = null;
           return this;
         }
-      }
 
-      public Builder mergeFrom(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText other) {
-        if (other
-            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
-                .getDefaultInstance()) return this;
-        switch (other.getSourceCase()) {
-          case TEXT:
-            {
-              sourceCase_ = 1;
-              source_ = other.source_;
-              onChanged();
-              break;
-            }
-          case SSML:
-            {
-              sourceCase_ = 2;
-              source_ = other.source_;
-              onChanged();
-              break;
-            }
-          case SOURCE_NOT_SET:
-            {
-              break;
-            }
+        @java.lang.Override
+        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+          return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+              .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_descriptor;
         }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
 
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
+        @java.lang.Override
+        public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+            getDefaultInstanceForType() {
+          return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+              .getDefaultInstance();
+        }
 
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage =
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
-                  e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
+        @java.lang.Override
+        public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment build() {
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment result =
+              buildPartial();
+          if (!result.isInitialized()) {
+            throw newUninitializedMessageException(result);
           }
+          return result;
         }
-        return this;
-      }
 
-      private int sourceCase_ = 0;
-      private java.lang.Object source_;
+        @java.lang.Override
+        public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+            buildPartial() {
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment result =
+              new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment(this);
+          if (contentCase_ == 1) {
+            result.content_ = content_;
+          }
+          if (contentCase_ == 2) {
+            result.content_ = content_;
+          }
+          result.allowPlaybackInterruption_ = allowPlaybackInterruption_;
+          result.contentCase_ = contentCase_;
+          onBuilt();
+          return result;
+        }
 
-      public SourceCase getSourceCase() {
-        return SourceCase.forNumber(sourceCase_);
-      }
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
 
-      public Builder clearSource() {
-        sourceCase_ = 0;
-        source_ = null;
-        onChanged();
-        return this;
-      }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+          return super.setField(field, value);
+        }
 
-      /**
-       *
-       *
-       * <pre>
-       * The raw text to be synthesized.
-       * </pre>
-       *
-       * <code>string text = 1;</code>
-       *
-       * @return The text.
-       */
-      @java.lang.Override
-      public java.lang.String getText() {
-        java.lang.Object ref = "";
-        if (sourceCase_ == 1) {
-          ref = source_;
+        @java.lang.Override
+        public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
         }
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          if (sourceCase_ == 1) {
-            source_ = s;
-          }
-          return s;
-        } else {
-          return (java.lang.String) ref;
+
+        @java.lang.Override
+        public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
         }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * The raw text to be synthesized.
-       * </pre>
-       *
-       * <code>string text = 1;</code>
-       *
-       * @return The bytes for text.
-       */
-      @java.lang.Override
-      public com.google.protobuf.ByteString getTextBytes() {
-        java.lang.Object ref = "";
-        if (sourceCase_ == 1) {
-          ref = source_;
+
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index,
+            java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
         }
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b =
-              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
-          if (sourceCase_ == 1) {
-            source_ = b;
-          }
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
+
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+          return super.addRepeatedField(field, value);
         }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * The raw text to be synthesized.
-       * </pre>
-       *
-       * <code>string text = 1;</code>
-       *
-       * @param value The text to set.
-       * @return This builder for chaining.
-       */
-      public Builder setText(java.lang.String value) {
-        if (value == null) {
-          throw new NullPointerException();
+
+        @java.lang.Override
+        public Builder mergeFrom(com.google.protobuf.Message other) {
+          if (other
+              instanceof
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment) {
+            return mergeFrom(
+                (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment) other);
+          } else {
+            super.mergeFrom(other);
+            return this;
+          }
         }
-        sourceCase_ = 1;
-        source_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * The raw text to be synthesized.
-       * </pre>
-       *
-       * <code>string text = 1;</code>
-       *
-       * @return This builder for chaining.
-       */
-      public Builder clearText() {
-        if (sourceCase_ == 1) {
-          sourceCase_ = 0;
-          source_ = null;
+
+        public Builder mergeFrom(
+            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment other) {
+          if (other
+              == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+                  .getDefaultInstance()) return this;
+          if (other.getAllowPlaybackInterruption() != false) {
+            setAllowPlaybackInterruption(other.getAllowPlaybackInterruption());
+          }
+          switch (other.getContentCase()) {
+            case AUDIO:
+              {
+                setAudio(other.getAudio());
+                break;
+              }
+            case URI:
+              {
+                contentCase_ = 2;
+                content_ = other.content_;
+                onChanged();
+                break;
+              }
+            case CONTENT_NOT_SET:
+              {
+                break;
+              }
+          }
+          this.mergeUnknownFields(other.unknownFields);
           onChanged();
+          return this;
         }
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * The raw text to be synthesized.
-       * </pre>
-       *
-       * <code>string text = 1;</code>
-       *
-       * @param value The bytes for text to set.
-       * @return This builder for chaining.
-       */
-      public Builder setTextBytes(com.google.protobuf.ByteString value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        checkByteStringIsUtf8(value);
-        sourceCase_ = 1;
-        source_ = value;
-        onChanged();
-        return this;
-      }
 
-      /**
-       *
-       *
-       * <pre>
-       * The SSML text to be synthesized. For more information, see
-       * [SSML](/speech/text-to-speech/docs/ssml).
-       * </pre>
-       *
-       * <code>string ssml = 2;</code>
-       *
-       * @return The ssml.
-       */
-      @java.lang.Override
-      public java.lang.String getSsml() {
-        java.lang.Object ref = "";
-        if (sourceCase_ == 2) {
-          ref = source_;
+        @java.lang.Override
+        public final boolean isInitialized() {
+          return true;
         }
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          if (sourceCase_ == 2) {
-            source_ = s;
+
+        @java.lang.Override
+        public Builder mergeFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws java.io.IOException {
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment parsedMessage =
+              null;
+          try {
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage =
+                (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
+                    e.getUnfinishedMessage();
+            throw e.unwrapIOException();
+          } finally {
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
           }
-          return s;
-        } else {
-          return (java.lang.String) ref;
+          return this;
         }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * The SSML text to be synthesized. For more information, see
-       * [SSML](/speech/text-to-speech/docs/ssml).
-       * </pre>
-       *
-       * <code>string ssml = 2;</code>
-       *
-       * @return The bytes for ssml.
-       */
-      @java.lang.Override
-      public com.google.protobuf.ByteString getSsmlBytes() {
-        java.lang.Object ref = "";
-        if (sourceCase_ == 2) {
-          ref = source_;
+
+        private int contentCase_ = 0;
+        private java.lang.Object content_;
+
+        public ContentCase getContentCase() {
+          return ContentCase.forNumber(contentCase_);
         }
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b =
-              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
-          if (sourceCase_ == 2) {
-            source_ = b;
+
+        public Builder clearContent() {
+          contentCase_ = 0;
+          content_ = null;
+          onChanged();
+          return this;
+        }
+
+        /**
+         *
+         *
+         * <pre>
+         * Raw audio synthesized from the Dialogflow agent's response using
+         * the output config specified in the request.
+         * </pre>
+         *
+         * <code>bytes audio = 1;</code>
+         *
+         * @return The audio.
+         */
+        public com.google.protobuf.ByteString getAudio() {
+          if (contentCase_ == 1) {
+            return (com.google.protobuf.ByteString) content_;
           }
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
+          return com.google.protobuf.ByteString.EMPTY;
         }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * The SSML text to be synthesized. For more information, see
-       * [SSML](/speech/text-to-speech/docs/ssml).
-       * </pre>
-       *
-       * <code>string ssml = 2;</code>
-       *
-       * @param value The ssml to set.
-       * @return This builder for chaining.
-       */
-      public Builder setSsml(java.lang.String value) {
-        if (value == null) {
-          throw new NullPointerException();
+        /**
+         *
+         *
+         * <pre>
+         * Raw audio synthesized from the Dialogflow agent's response using
+         * the output config specified in the request.
+         * </pre>
+         *
+         * <code>bytes audio = 1;</code>
+         *
+         * @param value The audio to set.
+         * @return This builder for chaining.
+         */
+        public Builder setAudio(com.google.protobuf.ByteString value) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          contentCase_ = 1;
+          content_ = value;
+          onChanged();
+          return this;
         }
-        sourceCase_ = 2;
-        source_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * The SSML text to be synthesized. For more information, see
-       * [SSML](/speech/text-to-speech/docs/ssml).
-       * </pre>
-       *
-       * <code>string ssml = 2;</code>
-       *
-       * @return This builder for chaining.
-       */
-      public Builder clearSsml() {
-        if (sourceCase_ == 2) {
-          sourceCase_ = 0;
-          source_ = null;
-          onChanged();
-        }
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * The SSML text to be synthesized. For more information, see
-       * [SSML](/speech/text-to-speech/docs/ssml).
-       * </pre>
-       *
-       * <code>string ssml = 2;</code>
-       *
-       * @param value The bytes for ssml to set.
-       * @return This builder for chaining.
-       */
-      public Builder setSsmlBytes(com.google.protobuf.ByteString value) {
-        if (value == null) {
-          throw new NullPointerException();
+        /**
+         *
+         *
+         * <pre>
+         * Raw audio synthesized from the Dialogflow agent's response using
+         * the output config specified in the request.
+         * </pre>
+         *
+         * <code>bytes audio = 1;</code>
+         *
+         * @return This builder for chaining.
+         */
+        public Builder clearAudio() {
+          if (contentCase_ == 1) {
+            contentCase_ = 0;
+            content_ = null;
+            onChanged();
+          }
+          return this;
         }
-        checkByteStringIsUtf8(value);
-        sourceCase_ = 2;
-        source_ = value;
-        onChanged();
-        return this;
-      }
 
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
-    }
-
-    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText)
-    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
-        DEFAULT_INSTANCE;
-
-    static {
-      DEFAULT_INSTANCE =
-          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText();
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
-        getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<OutputAudioText> PARSER =
-        new com.google.protobuf.AbstractParser<OutputAudioText>() {
-          @java.lang.Override
-          public OutputAudioText parsePartialFrom(
-              com.google.protobuf.CodedInputStream input,
-              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.protobuf.InvalidProtocolBufferException {
-            return new OutputAudioText(input, extensionRegistry);
+        /**
+         *
+         *
+         * <pre>
+         * Client-specific URI that points to an audio clip accessible to the
+         * client. Dialogflow does not impose any validation on it.
+         * </pre>
+         *
+         * <code>string uri = 2;</code>
+         *
+         * @return The uri.
+         */
+        @java.lang.Override
+        public java.lang.String getUri() {
+          java.lang.Object ref = "";
+          if (contentCase_ == 2) {
+            ref = content_;
           }
-        };
-
-    public static com.google.protobuf.Parser<OutputAudioText> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<OutputAudioText> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText
-        getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-  }
-
-  public interface EndInteractionOrBuilder
-      extends
-      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
-      com.google.protobuf.MessageOrBuilder {}
-  /**
-   *
-   *
-   * <pre>
-   * Indicates that interaction with the Dialogflow agent has ended.
-   * This message is generated by Dialogflow only and not supposed to be
-   * defined by the user.
-   * </pre>
-   *
-   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction}
-   */
-  public static final class EndInteraction extends com.google.protobuf.GeneratedMessageV3
-      implements
-      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
-      EndInteractionOrBuilder {
-    private static final long serialVersionUID = 0L;
-    // Use EndInteraction.newBuilder() to construct.
-    private EndInteraction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-
-    private EndInteraction() {}
-
-    @java.lang.Override
-    @SuppressWarnings({"unused"})
-    protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
-      return new EndInteraction();
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-      return this.unknownFields;
-    }
-
-    private EndInteraction(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            default:
-              {
-                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
-                  done = true;
-                }
-                break;
-              }
+          if (!(ref instanceof java.lang.String)) {
+            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+            java.lang.String s = bs.toStringUtf8();
+            if (contentCase_ == 2) {
+              content_ = s;
+            }
+            return s;
+          } else {
+            return (java.lang.String) ref;
           }
         }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-
-    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
-      return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.class,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.Builder.class);
-    }
-
-    private byte memoizedIsInitialized = -1;
-
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      unknownFields.writeTo(output);
-    }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
-
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-        return true;
-      }
-      if (!(obj instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)) {
-        return super.equals(obj);
-      }
-      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction other =
-          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction) obj;
-
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
-
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        java.io.InputStream input) throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
-          PARSER, input, extensionRegistry);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
-        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
-        parseDelimitedFrom(
-            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
-          PARSER, input, extensionRegistry);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
-          PARSER, input, extensionRegistry);
-    }
-
-    @java.lang.Override
-    public Builder newBuilderForType() {
-      return newBuilder();
-    }
-
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-
-    public static Builder newBuilder(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
-    }
-
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Indicates that interaction with the Dialogflow agent has ended.
-     * This message is generated by Dialogflow only and not supposed to be
-     * defined by the user.
-     * </pre>
-     *
-     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction}
-     */
-    public static final class Builder
-        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
-        implements
-        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteractionOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.class,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.Builder
-                    .class);
-      }
-
-      // Construct using
-      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
-      }
-
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_descriptor;
-      }
-
-      @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
-          getDefaultInstanceForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
-            .getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction build() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction result =
-            buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction buildPartial() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction result =
-            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
-        return super.setField(field, value);
-      }
-
-      @java.lang.Override
-      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-
-      @java.lang.Override
-      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index,
-          java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other
-            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction) {
-          return mergeFrom(
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction) other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction other) {
-        if (other
-            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
-                .getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage =
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
-                  e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
-    }
-
-    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction)
-    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
-        DEFAULT_INSTANCE;
-
-    static {
-      DEFAULT_INSTANCE =
-          new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction();
-    }
-
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
-        getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
-
-    private static final com.google.protobuf.Parser<EndInteraction> PARSER =
-        new com.google.protobuf.AbstractParser<EndInteraction>() {
-          @java.lang.Override
-          public EndInteraction parsePartialFrom(
-              com.google.protobuf.CodedInputStream input,
-              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.protobuf.InvalidProtocolBufferException {
-            return new EndInteraction(input, extensionRegistry);
-          }
-        };
-
-    public static com.google.protobuf.Parser<EndInteraction> parser() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.protobuf.Parser<EndInteraction> getParserForType() {
-      return PARSER;
-    }
-
-    @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction
-        getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
-  }
-
-  public interface MixedAudioOrBuilder
-      extends
-      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
-      com.google.protobuf.MessageOrBuilder {
-
-    /**
-     *
-     *
-     * <pre>
-     * Segments this audio response is composed of.
-     * </pre>
-     *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-     * </code>
-     */
-    java.util.List<com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
-        getSegmentsList();
-    /**
-     *
-     *
-     * <pre>
-     * Segments this audio response is composed of.
-     * </pre>
-     *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-     * </code>
-     */
-    com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment getSegments(
-        int index);
-    /**
-     *
-     *
-     * <pre>
-     * Segments this audio response is composed of.
-     * </pre>
-     *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-     * </code>
-     */
-    int getSegmentsCount();
-    /**
-     *
-     *
-     * <pre>
-     * Segments this audio response is composed of.
-     * </pre>
-     *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-     * </code>
-     */
-    java.util.List<
-            ? extends
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder>
-        getSegmentsOrBuilderList();
-    /**
-     *
-     *
-     * <pre>
-     * Segments this audio response is composed of.
-     * </pre>
-     *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-     * </code>
-     */
-    com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder
-        getSegmentsOrBuilder(int index);
-  }
-  /**
-   *
-   *
-   * <pre>
-   * Represents an audio message that is composed of both segments
-   * synthesized from the Dialogflow agent prompts and ones hosted externally
-   * at the specified URIs.
-   * The external URIs are specified via
-   * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
-   * This message is generated by Dialogflow only and not supposed to be
-   * defined by the user.
-   * </pre>
-   *
-   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio}
-   */
-  public static final class MixedAudio extends com.google.protobuf.GeneratedMessageV3
-      implements
-      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
-      MixedAudioOrBuilder {
-    private static final long serialVersionUID = 0L;
-    // Use MixedAudio.newBuilder() to construct.
-    private MixedAudio(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-      super(builder);
-    }
-
-    private MixedAudio() {
-      segments_ = java.util.Collections.emptyList();
-    }
-
-    @java.lang.Override
-    @SuppressWarnings({"unused"})
-    protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
-      return new MixedAudio();
-    }
-
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-      return this.unknownFields;
-    }
-
-    private MixedAudio(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10:
-              {
-                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-                  segments_ =
-                      new java.util.ArrayList<
-                          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
-                              .Segment>();
-                  mutable_bitField0_ |= 0x00000001;
-                }
-                segments_.add(
-                    input.readMessage(
-                        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-                            .parser(),
-                        extensionRegistry));
-                break;
-              }
-            default:
-              {
-                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
-                  done = true;
-                }
-                break;
-              }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
-      } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
-          segments_ = java.util.Collections.unmodifiableList(segments_);
-        }
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-
-    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
-      return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_descriptor;
-    }
-
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.class,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Builder.class);
-    }
-
-    public interface SegmentOrBuilder
-        extends
-        // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
-        com.google.protobuf.MessageOrBuilder {
-
-      /**
-       *
-       *
-       * <pre>
-       * Raw audio synthesized from the Dialogflow agent's response using
-       * the output config specified in the request.
-       * </pre>
-       *
-       * <code>bytes audio = 1;</code>
-       *
-       * @return The audio.
-       */
-      com.google.protobuf.ByteString getAudio();
-
-      /**
-       *
-       *
-       * <pre>
-       * Client-specific URI that points to an audio clip accessible to the
-       * client. Dialogflow does not impose any validation on it.
-       * </pre>
-       *
-       * <code>string uri = 2;</code>
-       *
-       * @return The uri.
-       */
-      java.lang.String getUri();
-      /**
-       *
-       *
-       * <pre>
-       * Client-specific URI that points to an audio clip accessible to the
-       * client. Dialogflow does not impose any validation on it.
-       * </pre>
-       *
-       * <code>string uri = 2;</code>
-       *
-       * @return The bytes for uri.
-       */
-      com.google.protobuf.ByteString getUriBytes();
-
-      /**
-       *
-       *
-       * <pre>
-       * Whether the playback of this segment can be interrupted by the end
-       * user's speech and the client should then start the next Dialogflow
-       * request.
-       * </pre>
-       *
-       * <code>bool allow_playback_interruption = 3;</code>
-       *
-       * @return The allowPlaybackInterruption.
-       */
-      boolean getAllowPlaybackInterruption();
-
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.ContentCase
-          getContentCase();
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Represents one segment of audio.
-     * </pre>
-     *
-     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment}
-     */
-    public static final class Segment extends com.google.protobuf.GeneratedMessageV3
-        implements
-        // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
-        SegmentOrBuilder {
-      private static final long serialVersionUID = 0L;
-      // Use Segment.newBuilder() to construct.
-      private Segment(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
-        super(builder);
-      }
-
-      private Segment() {}
-
-      @java.lang.Override
-      @SuppressWarnings({"unused"})
-      protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
-        return new Segment();
-      }
-
-      @java.lang.Override
-      public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-        return this.unknownFields;
-      }
-
-      private Segment(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        this();
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-            com.google.protobuf.UnknownFieldSet.newBuilder();
-        try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10:
-                {
-                  contentCase_ = 1;
-                  content_ = input.readBytes();
-                  break;
-                }
-              case 18:
-                {
-                  java.lang.String s = input.readStringRequireUtf8();
-                  contentCase_ = 2;
-                  content_ = s;
-                  break;
-                }
-              case 24:
-                {
-                  allowPlaybackInterruption_ = input.readBool();
-                  break;
-                }
-              default:
-                {
-                  if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
-                    done = true;
-                  }
-                  break;
-                }
+        /**
+         *
+         *
+         * <pre>
+         * Client-specific URI that points to an audio clip accessible to the
+         * client. Dialogflow does not impose any validation on it.
+         * </pre>
+         *
+         * <code>string uri = 2;</code>
+         *
+         * @return The bytes for uri.
+         */
+        @java.lang.Override
+        public com.google.protobuf.ByteString getUriBytes() {
+          java.lang.Object ref = "";
+          if (contentCase_ == 2) {
+            ref = content_;
+          }
+          if (ref instanceof String) {
+            com.google.protobuf.ByteString b =
+                com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+            if (contentCase_ == 2) {
+              content_ = b;
             }
+            return b;
+          } else {
+            return (com.google.protobuf.ByteString) ref;
           }
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(this);
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(e)
-              .setUnfinishedMessage(this);
-        } finally {
-          this.unknownFields = unknownFields.build();
-          makeExtensionsImmutable();
         }
-      }
-
-      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.class,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
-                    .class);
-      }
-
-      private int contentCase_ = 0;
-      private java.lang.Object content_;
-
-      public enum ContentCase
-          implements
-              com.google.protobuf.Internal.EnumLite,
-              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
-        AUDIO(1),
-        URI(2),
-        CONTENT_NOT_SET(0);
-        private final int value;
-
-        private ContentCase(int value) {
-          this.value = value;
+        /**
+         *
+         *
+         * <pre>
+         * Client-specific URI that points to an audio clip accessible to the
+         * client. Dialogflow does not impose any validation on it.
+         * </pre>
+         *
+         * <code>string uri = 2;</code>
+         *
+         * @param value The uri to set.
+         * @return This builder for chaining.
+         */
+        public Builder setUri(java.lang.String value) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          contentCase_ = 2;
+          content_ = value;
+          onChanged();
+          return this;
         }
         /**
-         * @param value The number of the enum to look for.
-         * @return The enum associated with the given number.
-         * @deprecated Use {@link #forNumber(int)} instead.
+         *
+         *
+         * <pre>
+         * Client-specific URI that points to an audio clip accessible to the
+         * client. Dialogflow does not impose any validation on it.
+         * </pre>
+         *
+         * <code>string uri = 2;</code>
+         *
+         * @return This builder for chaining.
          */
-        @java.lang.Deprecated
-        public static ContentCase valueOf(int value) {
-          return forNumber(value);
+        public Builder clearUri() {
+          if (contentCase_ == 2) {
+            contentCase_ = 0;
+            content_ = null;
+            onChanged();
+          }
+          return this;
         }
-
-        public static ContentCase forNumber(int value) {
-          switch (value) {
-            case 1:
-              return AUDIO;
-            case 2:
-              return URI;
-            case 0:
-              return CONTENT_NOT_SET;
-            default:
-              return null;
+        /**
+         *
+         *
+         * <pre>
+         * Client-specific URI that points to an audio clip accessible to the
+         * client. Dialogflow does not impose any validation on it.
+         * </pre>
+         *
+         * <code>string uri = 2;</code>
+         *
+         * @param value The bytes for uri to set.
+         * @return This builder for chaining.
+         */
+        public Builder setUriBytes(com.google.protobuf.ByteString value) {
+          if (value == null) {
+            throw new NullPointerException();
           }
+          checkByteStringIsUtf8(value);
+          contentCase_ = 2;
+          content_ = value;
+          onChanged();
+          return this;
         }
 
-        public int getNumber() {
-          return this.value;
+        private boolean allowPlaybackInterruption_;
+        /**
+         *
+         *
+         * <pre>
+         * Output only. Whether the playback of this segment can be interrupted by
+         * the end user's speech and the client should then start the next
+         * Dialogflow request.
+         * </pre>
+         *
+         * <code>bool allow_playback_interruption = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+         * </code>
+         *
+         * @return The allowPlaybackInterruption.
+         */
+        @java.lang.Override
+        public boolean getAllowPlaybackInterruption() {
+          return allowPlaybackInterruption_;
         }
-      };
-
-      public ContentCase getContentCase() {
-        return ContentCase.forNumber(contentCase_);
-      }
+        /**
+         *
+         *
+         * <pre>
+         * Output only. Whether the playback of this segment can be interrupted by
+         * the end user's speech and the client should then start the next
+         * Dialogflow request.
+         * </pre>
+         *
+         * <code>bool allow_playback_interruption = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+         * </code>
+         *
+         * @param value The allowPlaybackInterruption to set.
+         * @return This builder for chaining.
+         */
+        public Builder setAllowPlaybackInterruption(boolean value) {
 
-      public static final int AUDIO_FIELD_NUMBER = 1;
-      /**
-       *
-       *
-       * <pre>
-       * Raw audio synthesized from the Dialogflow agent's response using
-       * the output config specified in the request.
-       * </pre>
-       *
-       * <code>bytes audio = 1;</code>
-       *
-       * @return The audio.
-       */
-      @java.lang.Override
-      public com.google.protobuf.ByteString getAudio() {
-        if (contentCase_ == 1) {
-          return (com.google.protobuf.ByteString) content_;
+          allowPlaybackInterruption_ = value;
+          onChanged();
+          return this;
         }
-        return com.google.protobuf.ByteString.EMPTY;
-      }
+        /**
+         *
+         *
+         * <pre>
+         * Output only. Whether the playback of this segment can be interrupted by
+         * the end user's speech and the client should then start the next
+         * Dialogflow request.
+         * </pre>
+         *
+         * <code>bool allow_playback_interruption = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+         * </code>
+         *
+         * @return This builder for chaining.
+         */
+        public Builder clearAllowPlaybackInterruption() {
 
-      public static final int URI_FIELD_NUMBER = 2;
-      /**
-       *
-       *
-       * <pre>
-       * Client-specific URI that points to an audio clip accessible to the
-       * client. Dialogflow does not impose any validation on it.
-       * </pre>
-       *
-       * <code>string uri = 2;</code>
-       *
-       * @return The uri.
-       */
-      public java.lang.String getUri() {
-        java.lang.Object ref = "";
-        if (contentCase_ == 2) {
-          ref = content_;
-        }
-        if (ref instanceof java.lang.String) {
-          return (java.lang.String) ref;
-        } else {
-          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          if (contentCase_ == 2) {
-            content_ = s;
-          }
-          return s;
+          allowPlaybackInterruption_ = false;
+          onChanged();
+          return this;
         }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Client-specific URI that points to an audio clip accessible to the
-       * client. Dialogflow does not impose any validation on it.
-       * </pre>
-       *
-       * <code>string uri = 2;</code>
-       *
-       * @return The bytes for uri.
-       */
-      public com.google.protobuf.ByteString getUriBytes() {
-        java.lang.Object ref = "";
-        if (contentCase_ == 2) {
-          ref = content_;
+
+        @java.lang.Override
+        public final Builder setUnknownFields(
+            final com.google.protobuf.UnknownFieldSet unknownFields) {
+          return super.setUnknownFields(unknownFields);
         }
-        if (ref instanceof java.lang.String) {
-          com.google.protobuf.ByteString b =
-              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
-          if (contentCase_ == 2) {
-            content_ = b;
-          }
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
+
+        @java.lang.Override
+        public final Builder mergeUnknownFields(
+            final com.google.protobuf.UnknownFieldSet unknownFields) {
+          return super.mergeUnknownFields(unknownFields);
         }
+
+        // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
       }
 
-      public static final int ALLOW_PLAYBACK_INTERRUPTION_FIELD_NUMBER = 3;
-      private boolean allowPlaybackInterruption_;
-      /**
-       *
-       *
-       * <pre>
-       * Whether the playback of this segment can be interrupted by the end
-       * user's speech and the client should then start the next Dialogflow
-       * request.
-       * </pre>
-       *
-       * <code>bool allow_playback_interruption = 3;</code>
-       *
-       * @return The allowPlaybackInterruption.
-       */
-      @java.lang.Override
-      public boolean getAllowPlaybackInterruption() {
-        return allowPlaybackInterruption_;
+      // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
+      private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          DEFAULT_INSTANCE;
+
+      static {
+        DEFAULT_INSTANCE =
+            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment();
       }
 
-      private byte memoizedIsInitialized = -1;
+      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          getDefaultInstance() {
+        return DEFAULT_INSTANCE;
+      }
 
-      @java.lang.Override
-      public final boolean isInitialized() {
-        byte isInitialized = memoizedIsInitialized;
-        if (isInitialized == 1) return true;
-        if (isInitialized == 0) return false;
+      private static final com.google.protobuf.Parser<Segment> PARSER =
+          new com.google.protobuf.AbstractParser<Segment>() {
+            @java.lang.Override
+            public Segment parsePartialFrom(
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              return new Segment(input, extensionRegistry);
+            }
+          };
 
-        memoizedIsInitialized = 1;
-        return true;
+      public static com.google.protobuf.Parser<Segment> parser() {
+        return PARSER;
       }
 
       @java.lang.Override
-      public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-        if (contentCase_ == 1) {
-          output.writeBytes(1, (com.google.protobuf.ByteString) content_);
-        }
-        if (contentCase_ == 2) {
-          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_);
-        }
-        if (allowPlaybackInterruption_ != false) {
-          output.writeBool(3, allowPlaybackInterruption_);
-        }
-        unknownFields.writeTo(output);
+      public com.google.protobuf.Parser<Segment> getParserForType() {
+        return PARSER;
       }
 
       @java.lang.Override
-      public int getSerializedSize() {
-        int size = memoizedSize;
-        if (size != -1) return size;
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+          getDefaultInstanceForType() {
+        return DEFAULT_INSTANCE;
+      }
+    }
 
-        size = 0;
-        if (contentCase_ == 1) {
-          size +=
-              com.google.protobuf.CodedOutputStream.computeBytesSize(
-                  1, (com.google.protobuf.ByteString) content_);
-        }
-        if (contentCase_ == 2) {
-          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_);
-        }
-        if (allowPlaybackInterruption_ != false) {
-          size +=
-              com.google.protobuf.CodedOutputStream.computeBoolSize(3, allowPlaybackInterruption_);
-        }
-        size += unknownFields.getSerializedSize();
-        memoizedSize = size;
-        return size;
+    public static final int SEGMENTS_FIELD_NUMBER = 1;
+    private java.util.List<
+            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
+        segments_;
+    /**
+     *
+     *
+     * <pre>
+     * Segments this audio response is composed of.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
+     */
+    @java.lang.Override
+    public java.util.List<com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
+        getSegmentsList() {
+      return segments_;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Segments this audio response is composed of.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
+     */
+    @java.lang.Override
+    public java.util.List<
+            ? extends
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder>
+        getSegmentsOrBuilderList() {
+      return segments_;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Segments this audio response is composed of.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
+     */
+    @java.lang.Override
+    public int getSegmentsCount() {
+      return segments_.size();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Segments this audio response is composed of.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
+     */
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment getSegments(
+        int index) {
+      return segments_.get(index);
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Segments this audio response is composed of.
+     * </pre>
+     *
+     * <code>
+     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * </code>
+     */
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder
+        getSegmentsOrBuilder(int index) {
+      return segments_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+      for (int i = 0; i < segments_.size(); i++) {
+        output.writeMessage(1, segments_.get(i));
       }
+      unknownFields.writeTo(output);
+    }
 
-      @java.lang.Override
-      public boolean equals(final java.lang.Object obj) {
-        if (obj == this) {
-          return true;
-        }
-        if (!(obj
-            instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)) {
-          return super.equals(obj);
-        }
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment other =
-            (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment) obj;
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
 
-        if (getAllowPlaybackInterruption() != other.getAllowPlaybackInterruption()) return false;
-        if (!getContentCase().equals(other.getContentCase())) return false;
-        switch (contentCase_) {
-          case 1:
-            if (!getAudio().equals(other.getAudio())) return false;
-            break;
-          case 2:
-            if (!getUri().equals(other.getUri())) return false;
-            break;
-          case 0:
-          default:
-        }
-        if (!unknownFields.equals(other.unknownFields)) return false;
-        return true;
+      size = 0;
+      for (int i = 0; i < segments_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, segments_.get(i));
       }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
 
-      @java.lang.Override
-      public int hashCode() {
-        if (memoizedHashCode != 0) {
-          return memoizedHashCode;
-        }
-        int hash = 41;
-        hash = (19 * hash) + getDescriptor().hashCode();
-        hash = (37 * hash) + ALLOW_PLAYBACK_INTERRUPTION_FIELD_NUMBER;
-        hash =
-            (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllowPlaybackInterruption());
-        switch (contentCase_) {
-          case 1:
-            hash = (37 * hash) + AUDIO_FIELD_NUMBER;
-            hash = (53 * hash) + getAudio().hashCode();
-            break;
-          case 2:
-            hash = (37 * hash) + URI_FIELD_NUMBER;
-            hash = (53 * hash) + getUri().hashCode();
-            break;
-          case 0:
-          default:
-        }
-        hash = (29 * hash) + unknownFields.hashCode();
-        memoizedHashCode = hash;
-        return hash;
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+        return true;
+      }
+      if (!(obj instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)) {
+        return super.equals(obj);
       }
+      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio other =
+          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio) obj;
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(java.nio.ByteBuffer data)
-              throws com.google.protobuf.InvalidProtocolBufferException {
-        return PARSER.parseFrom(data);
-      }
+      if (!getSegmentsList().equals(other.getSegmentsList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(
-              java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.protobuf.InvalidProtocolBufferException {
-        return PARSER.parseFrom(data, extensionRegistry);
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
       }
-
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(com.google.protobuf.ByteString data)
-              throws com.google.protobuf.InvalidProtocolBufferException {
-        return PARSER.parseFrom(data);
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (getSegmentsCount() > 0) {
+        hash = (37 * hash) + SEGMENTS_FIELD_NUMBER;
+        hash = (53 * hash) + getSegmentsList().hashCode();
       }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(
-              com.google.protobuf.ByteString data,
-              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.protobuf.InvalidProtocolBufferException {
-        return PARSER.parseFrom(data, extensionRegistry);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
-        return PARSER.parseFrom(data);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.protobuf.InvalidProtocolBufferException {
-        return PARSER.parseFrom(data, extensionRegistry);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(java.io.InputStream input) throws java.io.IOException {
-        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(
-              java.io.InputStream input,
-              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws java.io.IOException {
-        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
-            PARSER, input, extensionRegistry);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
-        return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseDelimitedFrom(
-              java.io.InputStream input,
-              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws java.io.IOException {
-        return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
-            PARSER, input, extensionRegistry);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        java.io.InputStream input) throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
-        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+          PARSER, input, extensionRegistry);
+    }
 
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          parseFrom(
-              com.google.protobuf.CodedInputStream input,
-              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws java.io.IOException {
-        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
-            PARSER, input, extensionRegistry);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+    }
 
-      @java.lang.Override
-      public Builder newBuilderForType() {
-        return newBuilder();
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+        parseDelimitedFrom(
+            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+          PARSER, input, extensionRegistry);
+    }
 
-      public static Builder newBuilder() {
-        return DEFAULT_INSTANCE.toBuilder();
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+    }
 
-      public static Builder newBuilder(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment prototype) {
-        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-      }
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+          PARSER, input, extensionRegistry);
+    }
 
-      @java.lang.Override
-      public Builder toBuilder() {
-        return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
-      }
+    @java.lang.Override
+    public Builder newBuilderForType() {
+      return newBuilder();
+    }
 
-      @java.lang.Override
-      protected Builder newBuilderForType(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        Builder builder = new Builder(parent);
-        return builder;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Represents one segment of audio.
-       * </pre>
-       *
-       * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment}
-       */
-      public static final class Builder
-          extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
-          implements
-          // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder {
-        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
-          return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-              .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_descriptor;
-        }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
 
-        @java.lang.Override
-        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-            internalGetFieldAccessorTable() {
-          return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-              .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_fieldAccessorTable
-              .ensureFieldAccessorsInitialized(
-                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.class,
-                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
-                      .class);
-        }
+    public static Builder newBuilder(
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
 
-        // Construct using
-        // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.newBuilder()
-        private Builder() {
-          maybeForceBuilderInitialization();
-        }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+    }
 
-        private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-          super(parent);
-          maybeForceBuilderInitialization();
-        }
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Represents an audio message that is composed of both segments
+     * synthesized from the Dialogflow agent prompts and ones hosted externally
+     * at the specified URIs.
+     * The external URIs are specified via
+     * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
+     * This message is generated by Dialogflow only and not supposed to be
+     * defined by the user.
+     * </pre>
+     *
+     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio}
+     */
+    public static final class Builder
+        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+        implements
+        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudioOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.class,
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Builder.class);
+      }
 
-        private void maybeForceBuilderInitialization() {
-          if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
-        }
+      // Construct using
+      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
-        @java.lang.Override
-        public Builder clear() {
-          super.clear();
-          allowPlaybackInterruption_ = false;
+      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
 
-          contentCase_ = 0;
-          content_ = null;
-          return this;
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getSegmentsFieldBuilder();
         }
+      }
 
-        @java.lang.Override
-        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-          return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-              .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_descriptor;
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        if (segmentsBuilder_ == null) {
+          segments_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          segmentsBuilder_.clear();
         }
+        return this;
+      }
 
-        @java.lang.Override
-        public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-            getDefaultInstanceForType() {
-          return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-              .getDefaultInstance();
-        }
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_descriptor;
+      }
 
-        @java.lang.Override
-        public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment build() {
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment result =
-              buildPartial();
-          if (!result.isInitialized()) {
-            throw newUninitializedMessageException(result);
-          }
-          return result;
-        }
+      @java.lang.Override
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+          getDefaultInstanceForType() {
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+            .getDefaultInstance();
+      }
 
-        @java.lang.Override
-        public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-            buildPartial() {
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment result =
-              new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment(this);
-          if (contentCase_ == 1) {
-            result.content_ = content_;
-          }
-          if (contentCase_ == 2) {
-            result.content_ = content_;
-          }
-          result.allowPlaybackInterruption_ = allowPlaybackInterruption_;
-          result.contentCase_ = contentCase_;
-          onBuilt();
-          return result;
+      @java.lang.Override
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio build() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
         }
+        return result;
+      }
 
-        @java.lang.Override
-        public Builder clone() {
-          return super.clone();
+      @java.lang.Override
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio buildPartial() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio result =
+            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio(this);
+        int from_bitField0_ = bitField0_;
+        if (segmentsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            segments_ = java.util.Collections.unmodifiableList(segments_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.segments_ = segments_;
+        } else {
+          result.segments_ = segmentsBuilder_.build();
         }
+        onBuilt();
+        return result;
+      }
 
-        @java.lang.Override
-        public Builder setField(
-            com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
-          return super.setField(field, value);
-        }
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
 
-        @java.lang.Override
-        public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
-          return super.clearField(field);
-        }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+        return super.setField(field, value);
+      }
 
-        @java.lang.Override
-        public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-          return super.clearOneof(oneof);
-        }
+      @java.lang.Override
+      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
 
-        @java.lang.Override
-        public Builder setRepeatedField(
-            com.google.protobuf.Descriptors.FieldDescriptor field,
-            int index,
-            java.lang.Object value) {
-          return super.setRepeatedField(field, index, value);
-        }
+      @java.lang.Override
+      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
 
-        @java.lang.Override
-        public Builder addRepeatedField(
-            com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
-          return super.addRepeatedField(field, value);
-        }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index,
+          java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
 
-        @java.lang.Override
-        public Builder mergeFrom(com.google.protobuf.Message other) {
-          if (other
-              instanceof
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment) {
-            return mergeFrom(
-                (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment) other);
-          } else {
-            super.mergeFrom(other);
-            return this;
-          }
-        }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
 
-        public Builder mergeFrom(
-            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment other) {
-          if (other
-              == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-                  .getDefaultInstance()) return this;
-          if (other.getAllowPlaybackInterruption() != false) {
-            setAllowPlaybackInterruption(other.getAllowPlaybackInterruption());
-          }
-          switch (other.getContentCase()) {
-            case AUDIO:
-              {
-                setAudio(other.getAudio());
-                break;
-              }
-            case URI:
-              {
-                contentCase_ = 2;
-                content_ = other.content_;
-                onChanged();
-                break;
-              }
-            case CONTENT_NOT_SET:
-              {
-                break;
-              }
-          }
-          this.mergeUnknownFields(other.unknownFields);
-          onChanged();
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio) {
+          return mergeFrom(
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio) other);
+        } else {
+          super.mergeFrom(other);
           return this;
         }
+      }
 
-        @java.lang.Override
-        public final boolean isInitialized() {
-          return true;
-        }
-
-        @java.lang.Override
-        public Builder mergeFrom(
-            com.google.protobuf.CodedInputStream input,
-            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws java.io.IOException {
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment parsedMessage =
-              null;
-          try {
-            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-            parsedMessage =
-                (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
-                    e.getUnfinishedMessage();
-            throw e.unwrapIOException();
-          } finally {
-            if (parsedMessage != null) {
-              mergeFrom(parsedMessage);
+      public Builder mergeFrom(
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio other) {
+        if (other
+            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+                .getDefaultInstance()) return this;
+        if (segmentsBuilder_ == null) {
+          if (!other.segments_.isEmpty()) {
+            if (segments_.isEmpty()) {
+              segments_ = other.segments_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureSegmentsIsMutable();
+              segments_.addAll(other.segments_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.segments_.isEmpty()) {
+            if (segmentsBuilder_.isEmpty()) {
+              segmentsBuilder_.dispose();
+              segmentsBuilder_ = null;
+              segments_ = other.segments_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              segmentsBuilder_ =
+                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
+                      ? getSegmentsFieldBuilder()
+                      : null;
+            } else {
+              segmentsBuilder_.addAllMessages(other.segments_);
             }
           }
-          return this;
         }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
 
-        private int contentCase_ = 0;
-        private java.lang.Object content_;
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
 
-        public ContentCase getContentCase() {
-          return ContentCase.forNumber(contentCase_);
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage =
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
+                  e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
         }
+        return this;
+      }
 
-        public Builder clearContent() {
-          contentCase_ = 0;
-          content_ = null;
-          onChanged();
-          return this;
-        }
+      private int bitField0_;
 
-        /**
-         *
-         *
-         * <pre>
-         * Raw audio synthesized from the Dialogflow agent's response using
-         * the output config specified in the request.
-         * </pre>
-         *
-         * <code>bytes audio = 1;</code>
-         *
-         * @return The audio.
-         */
-        public com.google.protobuf.ByteString getAudio() {
-          if (contentCase_ == 1) {
-            return (com.google.protobuf.ByteString) content_;
-          }
-          return com.google.protobuf.ByteString.EMPTY;
-        }
-        /**
-         *
-         *
-         * <pre>
-         * Raw audio synthesized from the Dialogflow agent's response using
-         * the output config specified in the request.
-         * </pre>
-         *
-         * <code>bytes audio = 1;</code>
-         *
-         * @param value The audio to set.
-         * @return This builder for chaining.
-         */
-        public Builder setAudio(com.google.protobuf.ByteString value) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          contentCase_ = 1;
-          content_ = value;
-          onChanged();
-          return this;
-        }
-        /**
-         *
-         *
-         * <pre>
-         * Raw audio synthesized from the Dialogflow agent's response using
-         * the output config specified in the request.
-         * </pre>
-         *
-         * <code>bytes audio = 1;</code>
-         *
-         * @return This builder for chaining.
-         */
-        public Builder clearAudio() {
-          if (contentCase_ == 1) {
-            contentCase_ = 0;
-            content_ = null;
-            onChanged();
-          }
-          return this;
+      private java.util.List<
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
+          segments_ = java.util.Collections.emptyList();
+
+      private void ensureSegmentsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          segments_ =
+              new java.util.ArrayList<
+                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>(
+                  segments_);
+          bitField0_ |= 0x00000001;
         }
+      }
 
-        /**
-         *
-         *
-         * <pre>
-         * Client-specific URI that points to an audio clip accessible to the
-         * client. Dialogflow does not impose any validation on it.
-         * </pre>
-         *
-         * <code>string uri = 2;</code>
-         *
-         * @return The uri.
-         */
-        @java.lang.Override
-        public java.lang.String getUri() {
-          java.lang.Object ref = "";
-          if (contentCase_ == 2) {
-            ref = content_;
-          }
-          if (!(ref instanceof java.lang.String)) {
-            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
-            java.lang.String s = bs.toStringUtf8();
-            if (contentCase_ == 2) {
-              content_ = s;
-            }
-            return s;
-          } else {
-            return (java.lang.String) ref;
-          }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder>
+          segmentsBuilder_;
+
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public java.util.List<
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
+          getSegmentsList() {
+        if (segmentsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(segments_);
+        } else {
+          return segmentsBuilder_.getMessageList();
         }
-        /**
-         *
-         *
-         * <pre>
-         * Client-specific URI that points to an audio clip accessible to the
-         * client. Dialogflow does not impose any validation on it.
-         * </pre>
-         *
-         * <code>string uri = 2;</code>
-         *
-         * @return The bytes for uri.
-         */
-        @java.lang.Override
-        public com.google.protobuf.ByteString getUriBytes() {
-          java.lang.Object ref = "";
-          if (contentCase_ == 2) {
-            ref = content_;
-          }
-          if (ref instanceof String) {
-            com.google.protobuf.ByteString b =
-                com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
-            if (contentCase_ == 2) {
-              content_ = b;
-            }
-            return b;
-          } else {
-            return (com.google.protobuf.ByteString) ref;
-          }
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public int getSegmentsCount() {
+        if (segmentsBuilder_ == null) {
+          return segments_.size();
+        } else {
+          return segmentsBuilder_.getCount();
         }
-        /**
-         *
-         *
-         * <pre>
-         * Client-specific URI that points to an audio clip accessible to the
-         * client. Dialogflow does not impose any validation on it.
-         * </pre>
-         *
-         * <code>string uri = 2;</code>
-         *
-         * @param value The uri to set.
-         * @return This builder for chaining.
-         */
-        public Builder setUri(java.lang.String value) {
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment getSegments(
+          int index) {
+        if (segmentsBuilder_ == null) {
+          return segments_.get(index);
+        } else {
+          return segmentsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder setSegments(
+          int index,
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment value) {
+        if (segmentsBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          contentCase_ = 2;
-          content_ = value;
+          ensureSegmentsIsMutable();
+          segments_.set(index, value);
           onChanged();
-          return this;
+        } else {
+          segmentsBuilder_.setMessage(index, value);
         }
-        /**
-         *
-         *
-         * <pre>
-         * Client-specific URI that points to an audio clip accessible to the
-         * client. Dialogflow does not impose any validation on it.
-         * </pre>
-         *
-         * <code>string uri = 2;</code>
-         *
-         * @return This builder for chaining.
-         */
-        public Builder clearUri() {
-          if (contentCase_ == 2) {
-            contentCase_ = 0;
-            content_ = null;
-            onChanged();
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder setSegments(
+          int index,
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
+              builderForValue) {
+        if (segmentsBuilder_ == null) {
+          ensureSegmentsIsMutable();
+          segments_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          segmentsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder addSegments(
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment value) {
+        if (segmentsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
           }
-          return this;
+          ensureSegmentsIsMutable();
+          segments_.add(value);
+          onChanged();
+        } else {
+          segmentsBuilder_.addMessage(value);
         }
-        /**
-         *
-         *
-         * <pre>
-         * Client-specific URI that points to an audio clip accessible to the
-         * client. Dialogflow does not impose any validation on it.
-         * </pre>
-         *
-         * <code>string uri = 2;</code>
-         *
-         * @param value The bytes for uri to set.
-         * @return This builder for chaining.
-         */
-        public Builder setUriBytes(com.google.protobuf.ByteString value) {
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder addSegments(
+          int index,
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment value) {
+        if (segmentsBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          checkByteStringIsUtf8(value);
-          contentCase_ = 2;
-          content_ = value;
+          ensureSegmentsIsMutable();
+          segments_.add(index, value);
           onChanged();
-          return this;
+        } else {
+          segmentsBuilder_.addMessage(index, value);
         }
-
-        private boolean allowPlaybackInterruption_;
-        /**
-         *
-         *
-         * <pre>
-         * Whether the playback of this segment can be interrupted by the end
-         * user's speech and the client should then start the next Dialogflow
-         * request.
-         * </pre>
-         *
-         * <code>bool allow_playback_interruption = 3;</code>
-         *
-         * @return The allowPlaybackInterruption.
-         */
-        @java.lang.Override
-        public boolean getAllowPlaybackInterruption() {
-          return allowPlaybackInterruption_;
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder addSegments(
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
+              builderForValue) {
+        if (segmentsBuilder_ == null) {
+          ensureSegmentsIsMutable();
+          segments_.add(builderForValue.build());
+          onChanged();
+        } else {
+          segmentsBuilder_.addMessage(builderForValue.build());
         }
-        /**
-         *
-         *
-         * <pre>
-         * Whether the playback of this segment can be interrupted by the end
-         * user's speech and the client should then start the next Dialogflow
-         * request.
-         * </pre>
-         *
-         * <code>bool allow_playback_interruption = 3;</code>
-         *
-         * @param value The allowPlaybackInterruption to set.
-         * @return This builder for chaining.
-         */
-        public Builder setAllowPlaybackInterruption(boolean value) {
-
-          allowPlaybackInterruption_ = value;
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder addSegments(
+          int index,
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
+              builderForValue) {
+        if (segmentsBuilder_ == null) {
+          ensureSegmentsIsMutable();
+          segments_.add(index, builderForValue.build());
           onChanged();
-          return this;
+        } else {
+          segmentsBuilder_.addMessage(index, builderForValue.build());
         }
-        /**
-         *
-         *
-         * <pre>
-         * Whether the playback of this segment can be interrupted by the end
-         * user's speech and the client should then start the next Dialogflow
-         * request.
-         * </pre>
-         *
-         * <code>bool allow_playback_interruption = 3;</code>
-         *
-         * @return This builder for chaining.
-         */
-        public Builder clearAllowPlaybackInterruption() {
-
-          allowPlaybackInterruption_ = false;
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder addAllSegments(
+          java.lang.Iterable<
+                  ? extends
+                      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
+              values) {
+        if (segmentsBuilder_ == null) {
+          ensureSegmentsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, segments_);
+          onChanged();
+        } else {
+          segmentsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder clearSegments() {
+        if (segmentsBuilder_ == null) {
+          segments_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          segmentsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public Builder removeSegments(int index) {
+        if (segmentsBuilder_ == null) {
+          ensureSegmentsIsMutable();
+          segments_.remove(index);
           onChanged();
-          return this;
+        } else {
+          segmentsBuilder_.remove(index);
         }
-
-        @java.lang.Override
-        public final Builder setUnknownFields(
-            final com.google.protobuf.UnknownFieldSet unknownFields) {
-          return super.setUnknownFields(unknownFields);
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
+          getSegmentsBuilder(int index) {
+        return getSegmentsFieldBuilder().getBuilder(index);
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder
+          getSegmentsOrBuilder(int index) {
+        if (segmentsBuilder_ == null) {
+          return segments_.get(index);
+        } else {
+          return segmentsBuilder_.getMessageOrBuilder(index);
         }
-
-        @java.lang.Override
-        public final Builder mergeUnknownFields(
-            final com.google.protobuf.UnknownFieldSet unknownFields) {
-          return super.mergeUnknownFields(unknownFields);
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public java.util.List<
+              ? extends
+                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+                      .SegmentOrBuilder>
+          getSegmentsOrBuilderList() {
+        if (segmentsBuilder_ != null) {
+          return segmentsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(segments_);
         }
-
-        // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
       }
-
-      // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment)
-      private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          DEFAULT_INSTANCE;
-
-      static {
-        DEFAULT_INSTANCE =
-            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment();
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
+          addSegmentsBuilder() {
+        return getSegmentsFieldBuilder()
+            .addBuilder(
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+                    .getDefaultInstance());
       }
-
-      public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          getDefaultInstance() {
-        return DEFAULT_INSTANCE;
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
+          addSegmentsBuilder(int index) {
+        return getSegmentsFieldBuilder()
+            .addBuilder(
+                index,
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
+                    .getDefaultInstance());
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Segments this audio response is composed of.
+       * </pre>
+       *
+       * <code>
+       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * </code>
+       */
+      public java.util.List<
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder>
+          getSegmentsBuilderList() {
+        return getSegmentsFieldBuilder().getBuilderList();
       }
 
-      private static final com.google.protobuf.Parser<Segment> PARSER =
-          new com.google.protobuf.AbstractParser<Segment>() {
-            @java.lang.Override
-            public Segment parsePartialFrom(
-                com.google.protobuf.CodedInputStream input,
-                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.protobuf.InvalidProtocolBufferException {
-              return new Segment(input, extensionRegistry);
-            }
-          };
-
-      public static com.google.protobuf.Parser<Segment> parser() {
-        return PARSER;
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder>
+          getSegmentsFieldBuilder() {
+        if (segmentsBuilder_ == null) {
+          segmentsBuilder_ =
+              new com.google.protobuf.RepeatedFieldBuilderV3<
+                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment,
+                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder,
+                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+                      .SegmentOrBuilder>(
+                  segments_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
+          segments_ = null;
+        }
+        return segmentsBuilder_;
       }
 
       @java.lang.Override
-      public com.google.protobuf.Parser<Segment> getParserForType() {
-        return PARSER;
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-          getDefaultInstanceForType() {
-        return DEFAULT_INSTANCE;
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
       }
+
+      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
     }
 
-    public static final int SEGMENTS_FIELD_NUMBER = 1;
-    private java.util.List<
-            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
-        segments_;
+    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
+    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+        DEFAULT_INSTANCE;
+
+    static {
+      DEFAULT_INSTANCE = new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio();
+    }
+
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+        getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<MixedAudio> PARSER =
+        new com.google.protobuf.AbstractParser<MixedAudio>() {
+          @java.lang.Override
+          public MixedAudio parsePartialFrom(
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
+            return new MixedAudio(input, extensionRegistry);
+          }
+        };
+
+    public static com.google.protobuf.Parser<MixedAudio> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<MixedAudio> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+        getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+  }
+
+  public interface PlayAudioOrBuilder
+      extends
+      // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
+      com.google.protobuf.MessageOrBuilder {
+
     /**
      *
      *
      * <pre>
-     * Segments this audio response is composed of.
+     * Required. URI of the audio clip. Dialogflow does not impose any
+     * validation on this value. It is specific to the client that reads it.
      * </pre>
      *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-     * </code>
+     * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     *
+     * @return The audioUri.
      */
-    @java.lang.Override
-    public java.util.List<com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
-        getSegmentsList() {
-      return segments_;
-    }
+    java.lang.String getAudioUri();
+    /**
+     *
+     *
+     * <pre>
+     * Required. URI of the audio clip. Dialogflow does not impose any
+     * validation on this value. It is specific to the client that reads it.
+     * </pre>
+     *
+     * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     *
+     * @return The bytes for audioUri.
+     */
+    com.google.protobuf.ByteString getAudioUriBytes();
+
     /**
      *
      *
      * <pre>
-     * Segments this audio response is composed of.
+     * Output only. Whether the playback of this message can be interrupted by
+     * the end user's speech and the client can then starts the next Dialogflow
+     * request.
      * </pre>
      *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
      * </code>
+     *
+     * @return The allowPlaybackInterruption.
      */
+    boolean getAllowPlaybackInterruption();
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Specifies an audio clip to be played by the client as part of the response.
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio}
+   */
+  public static final class PlayAudio extends com.google.protobuf.GeneratedMessageV3
+      implements
+      // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
+      PlayAudioOrBuilder {
+    private static final long serialVersionUID = 0L;
+    // Use PlayAudio.newBuilder() to construct.
+    private PlayAudio(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+
+    private PlayAudio() {
+      audioUri_ = "";
+    }
+
     @java.lang.Override
-    public java.util.List<
-            ? extends
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder>
-        getSegmentsOrBuilderList() {
-      return segments_;
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+      return new PlayAudio();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+      return this.unknownFields;
+    }
+
+    private PlayAudio(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10:
+              {
+                java.lang.String s = input.readStringRequireUtf8();
+
+                audioUri_ = s;
+                break;
+              }
+            case 16:
+              {
+                allowPlaybackInterruption_ = input.readBool();
+                break;
+              }
+            default:
+              {
+                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
+          .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.class,
+              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.Builder.class);
     }
+
+    public static final int AUDIO_URI_FIELD_NUMBER = 1;
+    private volatile java.lang.Object audioUri_;
     /**
      *
      *
      * <pre>
-     * Segments this audio response is composed of.
+     * Required. URI of the audio clip. Dialogflow does not impose any
+     * validation on this value. It is specific to the client that reads it.
      * </pre>
      *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-     * </code>
+     * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     *
+     * @return The audioUri.
      */
     @java.lang.Override
-    public int getSegmentsCount() {
-      return segments_.size();
+    public java.lang.String getAudioUri() {
+      java.lang.Object ref = audioUri_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        audioUri_ = s;
+        return s;
+      }
     }
     /**
      *
      *
      * <pre>
-     * Segments this audio response is composed of.
+     * Required. URI of the audio clip. Dialogflow does not impose any
+     * validation on this value. It is specific to the client that reads it.
      * </pre>
      *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-     * </code>
+     * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+     *
+     * @return The bytes for audioUri.
      */
     @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment getSegments(
-        int index) {
-      return segments_.get(index);
+    public com.google.protobuf.ByteString getAudioUriBytes() {
+      java.lang.Object ref = audioUri_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        audioUri_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
     }
+
+    public static final int ALLOW_PLAYBACK_INTERRUPTION_FIELD_NUMBER = 2;
+    private boolean allowPlaybackInterruption_;
     /**
      *
      *
      * <pre>
-     * Segments this audio response is composed of.
+     * Output only. Whether the playback of this message can be interrupted by
+     * the end user's speech and the client can then starts the next Dialogflow
+     * request.
      * </pre>
      *
-     * <code>
-     * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+     * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
      * </code>
+     *
+     * @return The allowPlaybackInterruption.
      */
     @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder
-        getSegmentsOrBuilder(int index) {
-      return segments_.get(index);
+    public boolean getAllowPlaybackInterruption() {
+      return allowPlaybackInterruption_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -7210,8 +6679,11 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      for (int i = 0; i < segments_.size(); i++) {
-        output.writeMessage(1, segments_.get(i));
+      if (!getAudioUriBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, audioUri_);
+      }
+      if (allowPlaybackInterruption_ != false) {
+        output.writeBool(2, allowPlaybackInterruption_);
       }
       unknownFields.writeTo(output);
     }
@@ -7222,8 +6694,12 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      for (int i = 0; i < segments_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, segments_.get(i));
+      if (!getAudioUriBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, audioUri_);
+      }
+      if (allowPlaybackInterruption_ != false) {
+        size +=
+            com.google.protobuf.CodedOutputStream.computeBoolSize(2, allowPlaybackInterruption_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -7235,13 +6711,14 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
         return true;
       }
-      if (!(obj instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)) {
+      if (!(obj instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)) {
         return super.equals(obj);
       }
-      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio other =
-          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio) obj;
+      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio other =
+          (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio) obj;
 
-      if (!getSegmentsList().equals(other.getSegmentsList())) return false;
+      if (!getAudioUri().equals(other.getAudioUri())) return false;
+      if (getAllowPlaybackInterruption() != other.getAllowPlaybackInterruption()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -7253,68 +6730,68 @@ public int hashCode() {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      if (getSegmentsCount() > 0) {
-        hash = (37 * hash) + SEGMENTS_FIELD_NUMBER;
-        hash = (53 * hash) + getSegmentsList().hashCode();
-      }
+      hash = (37 * hash) + AUDIO_URI_FIELD_NUMBER;
+      hash = (53 * hash) + getAudioUri().hashCode();
+      hash = (37 * hash) + ALLOW_PLAYBACK_INTERRUPTION_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllowPlaybackInterruption());
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
         parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
         parseDelimitedFrom(
             java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
@@ -7322,12 +6799,12 @@ public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
           PARSER, input, extensionRegistry);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         com.google.protobuf.CodedInputStream input) throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parseFrom(
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -7345,7 +6822,7 @@ public static Builder newBuilder() {
     }
 
     public static Builder newBuilder(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio prototype) {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
 
@@ -7364,39 +6841,33 @@ protected Builder newBuilderForType(
      *
      *
      * <pre>
-     * Represents an audio message that is composed of both segments
-     * synthesized from the Dialogflow agent prompts and ones hosted externally
-     * at the specified URIs.
-     * The external URIs are specified via
-     * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
-     * This message is generated by Dialogflow only and not supposed to be
-     * defined by the user.
+     * Specifies an audio clip to be played by the client as part of the response.
      * </pre>
      *
-     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio}
+     * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio}
      */
     public static final class Builder
         extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
         implements
-        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudioOrBuilder {
+        // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudioOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
           internalGetFieldAccessorTable() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_fieldAccessorTable
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.class,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Builder.class);
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.class,
+                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.Builder.class);
       }
 
       // Construct using
-      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.newBuilder()
+      // com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -7407,39 +6878,35 @@ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       }
 
       private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
-          getSegmentsFieldBuilder();
-        }
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
       }
 
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (segmentsBuilder_ == null) {
-          segments_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-        } else {
-          segmentsBuilder_.clear();
-        }
+        audioUri_ = "";
+
+        allowPlaybackInterruption_ = false;
+
         return this;
       }
 
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
         return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageProto
-            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_descriptor;
+            .internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor;
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
           getDefaultInstanceForType() {
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
             .getDefaultInstance();
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio build() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio result = buildPartial();
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio build() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -7447,19 +6914,11 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio build()
       }
 
       @java.lang.Override
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio buildPartial() {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio result =
-            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio(this);
-        int from_bitField0_ = bitField0_;
-        if (segmentsBuilder_ == null) {
-          if (((bitField0_ & 0x00000001) != 0)) {
-            segments_ = java.util.Collections.unmodifiableList(segments_);
-            bitField0_ = (bitField0_ & ~0x00000001);
-          }
-          result.segments_ = segments_;
-        } else {
-          result.segments_ = segmentsBuilder_.build();
-        }
+      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio buildPartial() {
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio result =
+            new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio(this);
+        result.audioUri_ = audioUri_;
+        result.allowPlaybackInterruption_ = allowPlaybackInterruption_;
         onBuilt();
         return result;
       }
@@ -7501,9 +6960,9 @@ public Builder addRepeatedField(
 
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio) {
+        if (other instanceof com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio) {
           return mergeFrom(
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio) other);
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio) other);
         } else {
           super.mergeFrom(other);
           return this;
@@ -7511,36 +6970,16 @@ public Builder mergeFrom(com.google.protobuf.Message other) {
       }
 
       public Builder mergeFrom(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio other) {
+          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio other) {
         if (other
-            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+            == com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
                 .getDefaultInstance()) return this;
-        if (segmentsBuilder_ == null) {
-          if (!other.segments_.isEmpty()) {
-            if (segments_.isEmpty()) {
-              segments_ = other.segments_;
-              bitField0_ = (bitField0_ & ~0x00000001);
-            } else {
-              ensureSegmentsIsMutable();
-              segments_.addAll(other.segments_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.segments_.isEmpty()) {
-            if (segmentsBuilder_.isEmpty()) {
-              segmentsBuilder_.dispose();
-              segmentsBuilder_ = null;
-              segments_ = other.segments_;
-              bitField0_ = (bitField0_ & ~0x00000001);
-              segmentsBuilder_ =
-                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
-                      ? getSegmentsFieldBuilder()
-                      : null;
-            } else {
-              segmentsBuilder_.addAllMessages(other.segments_);
-            }
-          }
+        if (!other.getAudioUri().isEmpty()) {
+          audioUri_ = other.audioUri_;
+          onChanged();
+        }
+        if (other.getAllowPlaybackInterruption() != false) {
+          setAllowPlaybackInterruption(other.getAllowPlaybackInterruption());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -7557,442 +6996,192 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio parsedMessage = null;
+        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
           parsedMessage =
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
+              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
                   e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private int bitField0_;
-
-      private java.util.List<
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
-          segments_ = java.util.Collections.emptyList();
-
-      private void ensureSegmentsIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
-          segments_ =
-              new java.util.ArrayList<
-                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>(
-                  segments_);
-          bitField0_ |= 0x00000001;
-        }
-      }
-
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder>
-          segmentsBuilder_;
-
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
-       *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
-       */
-      public java.util.List<
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
-          getSegmentsList() {
-        if (segmentsBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(segments_);
-        } else {
-          return segmentsBuilder_.getMessageList();
-        }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
-       *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
-       */
-      public int getSegmentsCount() {
-        if (segmentsBuilder_ == null) {
-          return segments_.size();
-        } else {
-          return segmentsBuilder_.getCount();
-        }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
-       *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
-       */
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment getSegments(
-          int index) {
-        if (segmentsBuilder_ == null) {
-          return segments_.get(index);
-        } else {
-          return segmentsBuilder_.getMessage(index);
-        }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
-       *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
-       */
-      public Builder setSegments(
-          int index,
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment value) {
-        if (segmentsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureSegmentsIsMutable();
-          segments_.set(index, value);
-          onChanged();
-        } else {
-          segmentsBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
-       *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
-       */
-      public Builder setSegments(
-          int index,
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
-              builderForValue) {
-        if (segmentsBuilder_ == null) {
-          ensureSegmentsIsMutable();
-          segments_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          segmentsBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
-       *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
-       */
-      public Builder addSegments(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment value) {
-        if (segmentsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureSegmentsIsMutable();
-          segments_.add(value);
-          onChanged();
-        } else {
-          segmentsBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
-       *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
-       */
-      public Builder addSegments(
-          int index,
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment value) {
-        if (segmentsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
           }
-          ensureSegmentsIsMutable();
-          segments_.add(index, value);
-          onChanged();
-        } else {
-          segmentsBuilder_.addMessage(index, value);
         }
         return this;
       }
+
+      private java.lang.Object audioUri_ = "";
       /**
        *
        *
        * <pre>
-       * Segments this audio response is composed of.
+       * Required. URI of the audio clip. Dialogflow does not impose any
+       * validation on this value. It is specific to the client that reads it.
        * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
+       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+       *
+       * @return The audioUri.
        */
-      public Builder addSegments(
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
-              builderForValue) {
-        if (segmentsBuilder_ == null) {
-          ensureSegmentsIsMutable();
-          segments_.add(builderForValue.build());
-          onChanged();
+      public java.lang.String getAudioUri() {
+        java.lang.Object ref = audioUri_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          audioUri_ = s;
+          return s;
         } else {
-          segmentsBuilder_.addMessage(builderForValue.build());
+          return (java.lang.String) ref;
         }
-        return this;
       }
       /**
        *
        *
        * <pre>
-       * Segments this audio response is composed of.
+       * Required. URI of the audio clip. Dialogflow does not impose any
+       * validation on this value. It is specific to the client that reads it.
        * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
+       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+       *
+       * @return The bytes for audioUri.
        */
-      public Builder addSegments(
-          int index,
-          com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
-              builderForValue) {
-        if (segmentsBuilder_ == null) {
-          ensureSegmentsIsMutable();
-          segments_.add(index, builderForValue.build());
-          onChanged();
+      public com.google.protobuf.ByteString getAudioUriBytes() {
+        java.lang.Object ref = audioUri_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+          audioUri_ = b;
+          return b;
         } else {
-          segmentsBuilder_.addMessage(index, builderForValue.build());
+          return (com.google.protobuf.ByteString) ref;
         }
-        return this;
       }
       /**
        *
        *
        * <pre>
-       * Segments this audio response is composed of.
+       * Required. URI of the audio clip. Dialogflow does not impose any
+       * validation on this value. It is specific to the client that reads it.
        * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
+       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+       *
+       * @param value The audioUri to set.
+       * @return This builder for chaining.
        */
-      public Builder addAllSegments(
-          java.lang.Iterable<
-                  ? extends
-                      com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment>
-              values) {
-        if (segmentsBuilder_ == null) {
-          ensureSegmentsIsMutable();
-          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, segments_);
-          onChanged();
-        } else {
-          segmentsBuilder_.addAllMessages(values);
+      public Builder setAudioUri(java.lang.String value) {
+        if (value == null) {
+          throw new NullPointerException();
         }
+
+        audioUri_ = value;
+        onChanged();
         return this;
       }
       /**
        *
        *
        * <pre>
-       * Segments this audio response is composed of.
+       * Required. URI of the audio clip. Dialogflow does not impose any
+       * validation on this value. It is specific to the client that reads it.
        * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
+       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+       *
+       * @return This builder for chaining.
        */
-      public Builder clearSegments() {
-        if (segmentsBuilder_ == null) {
-          segments_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-          onChanged();
-        } else {
-          segmentsBuilder_.clear();
-        }
+      public Builder clearAudioUri() {
+
+        audioUri_ = getDefaultInstance().getAudioUri();
+        onChanged();
         return this;
       }
       /**
        *
        *
        * <pre>
-       * Segments this audio response is composed of.
+       * Required. URI of the audio clip. Dialogflow does not impose any
+       * validation on this value. It is specific to the client that reads it.
        * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
+       * <code>string audio_uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
+       *
+       * @param value The bytes for audioUri to set.
+       * @return This builder for chaining.
        */
-      public Builder removeSegments(int index) {
-        if (segmentsBuilder_ == null) {
-          ensureSegmentsIsMutable();
-          segments_.remove(index);
-          onChanged();
-        } else {
-          segmentsBuilder_.remove(index);
+      public Builder setAudioUriBytes(com.google.protobuf.ByteString value) {
+        if (value == null) {
+          throw new NullPointerException();
         }
+        checkByteStringIsUtf8(value);
+
+        audioUri_ = value;
+        onChanged();
         return this;
       }
+
+      private boolean allowPlaybackInterruption_;
       /**
        *
        *
        * <pre>
-       * Segments this audio response is composed of.
+       * Output only. Whether the playback of this message can be interrupted by
+       * the end user's speech and the client can then starts the next Dialogflow
+       * request.
        * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
        * </code>
-       */
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
-          getSegmentsBuilder(int index) {
-        return getSegmentsFieldBuilder().getBuilder(index);
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
+       * @return The allowPlaybackInterruption.
        */
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder
-          getSegmentsOrBuilder(int index) {
-        if (segmentsBuilder_ == null) {
-          return segments_.get(index);
-        } else {
-          return segmentsBuilder_.getMessageOrBuilder(index);
-        }
+      @java.lang.Override
+      public boolean getAllowPlaybackInterruption() {
+        return allowPlaybackInterruption_;
       }
       /**
        *
        *
        * <pre>
-       * Segments this audio response is composed of.
+       * Output only. Whether the playback of this message can be interrupted by
+       * the end user's speech and the client can then starts the next Dialogflow
+       * request.
        * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
        * </code>
-       */
-      public java.util.List<
-              ? extends
-                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
-                      .SegmentOrBuilder>
-          getSegmentsOrBuilderList() {
-        if (segmentsBuilder_ != null) {
-          return segmentsBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(segments_);
-        }
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
+       * @param value The allowPlaybackInterruption to set.
+       * @return This builder for chaining.
        */
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
-          addSegmentsBuilder() {
-        return getSegmentsFieldBuilder()
-            .addBuilder(
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-                    .getDefaultInstance());
+      public Builder setAllowPlaybackInterruption(boolean value) {
+
+        allowPlaybackInterruption_ = value;
+        onChanged();
+        return this;
       }
       /**
        *
        *
        * <pre>
-       * Segments this audio response is composed of.
+       * Output only. Whether the playback of this message can be interrupted by
+       * the end user's speech and the client can then starts the next Dialogflow
+       * request.
        * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
+       * <code>bool allow_playback_interruption = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
        * </code>
-       */
-      public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder
-          addSegmentsBuilder(int index) {
-        return getSegmentsFieldBuilder()
-            .addBuilder(
-                index,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment
-                    .getDefaultInstance());
-      }
-      /**
-       *
-       *
-       * <pre>
-       * Segments this audio response is composed of.
-       * </pre>
        *
-       * <code>
-       * repeated .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment segments = 1;
-       * </code>
+       * @return This builder for chaining.
        */
-      public java.util.List<
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder>
-          getSegmentsBuilderList() {
-        return getSegmentsFieldBuilder().getBuilderList();
-      }
+      public Builder clearAllowPlaybackInterruption() {
 
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder,
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.SegmentOrBuilder>
-          getSegmentsFieldBuilder() {
-        if (segmentsBuilder_ == null) {
-          segmentsBuilder_ =
-              new com.google.protobuf.RepeatedFieldBuilderV3<
-                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment,
-                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment.Builder,
-                  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
-                      .SegmentOrBuilder>(
-                  segments_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
-          segments_ = null;
-        }
-        return segmentsBuilder_;
+        allowPlaybackInterruption_ = false;
+        onChanged();
+        return this;
       }
 
       @java.lang.Override
@@ -8007,44 +7196,44 @@ public final Builder mergeUnknownFields(
         return super.mergeUnknownFields(unknownFields);
       }
 
-      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
+      // @@protoc_insertion_point(builder_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
     }
 
-    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio)
-    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+    // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio)
+    private static final com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
         DEFAULT_INSTANCE;
 
     static {
-      DEFAULT_INSTANCE = new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio();
+      DEFAULT_INSTANCE = new com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio();
     }
 
-    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+    public static com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
         getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
-    private static final com.google.protobuf.Parser<MixedAudio> PARSER =
-        new com.google.protobuf.AbstractParser<MixedAudio>() {
+    private static final com.google.protobuf.Parser<PlayAudio> PARSER =
+        new com.google.protobuf.AbstractParser<PlayAudio>() {
           @java.lang.Override
-          public MixedAudio parsePartialFrom(
+          public PlayAudio parsePartialFrom(
               com.google.protobuf.CodedInputStream input,
               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws com.google.protobuf.InvalidProtocolBufferException {
-            return new MixedAudio(input, extensionRegistry);
+            return new PlayAudio(input, extensionRegistry);
           }
         };
 
-    public static com.google.protobuf.Parser<MixedAudio> parser() {
+    public static com.google.protobuf.Parser<PlayAudio> parser() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.protobuf.Parser<MixedAudio> getParserForType() {
+    public com.google.protobuf.Parser<PlayAudio> getParserForType() {
       return PARSER;
     }
 
     @java.lang.Override
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio
+    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio
         getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
@@ -8059,8 +7248,6 @@ public enum MessageCase
           com.google.protobuf.AbstractMessage.InternalOneOfEnum {
     TEXT(1),
     PAYLOAD(2),
-    @java.lang.Deprecated
-    HUMAN_AGENT_HANDOFF(6),
     CONVERSATION_SUCCESS(9),
     OUTPUT_AUDIO_TEXT(8),
     LIVE_AGENT_HANDOFF(10),
@@ -8089,8 +7276,6 @@ public static MessageCase forNumber(int value) {
           return TEXT;
         case 2:
           return PAYLOAD;
-        case 6:
-          return HUMAN_AGENT_HANDOFF;
         case 9:
           return CONVERSATION_SUCCESS;
         case 8:
@@ -8221,70 +7406,6 @@ public com.google.protobuf.StructOrBuilder getPayloadOrBuilder() {
     return com.google.protobuf.Struct.getDefaultInstance();
   }
 
-  public static final int HUMAN_AGENT_HANDOFF_FIELD_NUMBER = 6;
-  /**
-   *
-   *
-   * <pre>
-   * Hands off conversation to a human agent.
-   * </pre>
-   *
-   * <code>
-   * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-   * </code>
-   *
-   * @return Whether the humanAgentHandoff field is set.
-   */
-  @java.lang.Override
-  @java.lang.Deprecated
-  public boolean hasHumanAgentHandoff() {
-    return messageCase_ == 6;
-  }
-  /**
-   *
-   *
-   * <pre>
-   * Hands off conversation to a human agent.
-   * </pre>
-   *
-   * <code>
-   * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-   * </code>
-   *
-   * @return The humanAgentHandoff.
-   */
-  @java.lang.Override
-  @java.lang.Deprecated
-  public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-      getHumanAgentHandoff() {
-    if (messageCase_ == 6) {
-      return (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff) message_;
-    }
-    return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        .getDefaultInstance();
-  }
-  /**
-   *
-   *
-   * <pre>
-   * Hands off conversation to a human agent.
-   * </pre>
-   *
-   * <code>
-   * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-   * </code>
-   */
-  @java.lang.Override
-  @java.lang.Deprecated
-  public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoffOrBuilder
-      getHumanAgentHandoffOrBuilder() {
-    if (messageCase_ == 6) {
-      return (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff) message_;
-    }
-    return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        .getDefaultInstance();
-  }
-
   public static final int CONVERSATION_SUCCESS_FIELD_NUMBER = 9;
   /**
    *
@@ -8476,12 +7597,11 @@ public boolean hasLiveAgentHandoff() {
    *
    *
    * <pre>
-   * Output only. A signal that indicates the interaction with the Dialogflow agent has
-   * ended.
-   * This message is generated by Dialogflow only when the conversation
-   * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-   * defined by the user.
-   * It's guaranteed that there is at most one such message in each response.
+   * Output only. A signal that indicates the interaction with the Dialogflow
+   * agent has ended. This message is generated by Dialogflow only when the
+   * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+   * to be defined by the user. It's guaranteed that there is at most one such
+   * message in each response.
    * </pre>
    *
    * <code>
@@ -8498,12 +7618,11 @@ public boolean hasEndInteraction() {
    *
    *
    * <pre>
-   * Output only. A signal that indicates the interaction with the Dialogflow agent has
-   * ended.
-   * This message is generated by Dialogflow only when the conversation
-   * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-   * defined by the user.
-   * It's guaranteed that there is at most one such message in each response.
+   * Output only. A signal that indicates the interaction with the Dialogflow
+   * agent has ended. This message is generated by Dialogflow only when the
+   * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+   * to be defined by the user. It's guaranteed that there is at most one such
+   * message in each response.
    * </pre>
    *
    * <code>
@@ -8524,12 +7643,11 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction get
    *
    *
    * <pre>
-   * Output only. A signal that indicates the interaction with the Dialogflow agent has
-   * ended.
-   * This message is generated by Dialogflow only when the conversation
-   * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-   * defined by the user.
-   * It's guaranteed that there is at most one such message in each response.
+   * Output only. A signal that indicates the interaction with the Dialogflow
+   * agent has ended. This message is generated by Dialogflow only when the
+   * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+   * to be defined by the user. It's guaranteed that there is at most one such
+   * message in each response.
    * </pre>
    *
    * <code>
@@ -8553,8 +7671,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction get
    * <pre>
    * Signal that the client should play an audio clip hosted at a
    * client-specific URI. Dialogflow uses this to construct
-   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-   * does not try to read or process the URI in any way.
+   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+   * However, Dialogflow itself does not try to read or process the URI in any
+   * way.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -8571,8 +7690,9 @@ public boolean hasPlayAudio() {
    * <pre>
    * Signal that the client should play an audio clip hosted at a
    * client-specific URI. Dialogflow uses this to construct
-   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-   * does not try to read or process the URI in any way.
+   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+   * However, Dialogflow itself does not try to read or process the URI in any
+   * way.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -8592,8 +7712,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio getPlayA
    * <pre>
    * Signal that the client should play an audio clip hosted at a
    * client-specific URI. Dialogflow uses this to construct
-   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-   * does not try to read or process the URI in any way.
+   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+   * However, Dialogflow itself does not try to read or process the URI in any
+   * way.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -8612,8 +7733,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio getPlayA
    *
    *
    * <pre>
-   * Output only. An audio response message composed of both the synthesized Dialogflow
-   * agent responses and responses defined via
+   * Output only. An audio response message composed of both the synthesized
+   * Dialogflow agent responses and responses defined via
    * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
    * This message is generated by Dialogflow only and not supposed to be
    * defined by the user.
@@ -8633,8 +7754,8 @@ public boolean hasMixedAudio() {
    *
    *
    * <pre>
-   * Output only. An audio response message composed of both the synthesized Dialogflow
-   * agent responses and responses defined via
+   * Output only. An audio response message composed of both the synthesized
+   * Dialogflow agent responses and responses defined via
    * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
    * This message is generated by Dialogflow only and not supposed to be
    * defined by the user.
@@ -8657,8 +7778,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio getMixe
    *
    *
    * <pre>
-   * Output only. An audio response message composed of both the synthesized Dialogflow
-   * agent responses and responses defined via
+   * Output only. An audio response message composed of both the synthesized
+   * Dialogflow agent responses and responses defined via
    * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
    * This message is generated by Dialogflow only and not supposed to be
    * defined by the user.
@@ -8698,10 +7819,6 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (messageCase_ == 2) {
       output.writeMessage(2, (com.google.protobuf.Struct) message_);
     }
-    if (messageCase_ == 6) {
-      output.writeMessage(
-          6, (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff) message_);
-    }
     if (messageCase_ == 8) {
       output.writeMessage(
           8, (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText) message_);
@@ -8745,12 +7862,6 @@ public int getSerializedSize() {
           com.google.protobuf.CodedOutputStream.computeMessageSize(
               2, (com.google.protobuf.Struct) message_);
     }
-    if (messageCase_ == 6) {
-      size +=
-          com.google.protobuf.CodedOutputStream.computeMessageSize(
-              6,
-              (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff) message_);
-    }
     if (messageCase_ == 8) {
       size +=
           com.google.protobuf.CodedOutputStream.computeMessageSize(
@@ -8808,9 +7919,6 @@ public boolean equals(final java.lang.Object obj) {
       case 2:
         if (!getPayload().equals(other.getPayload())) return false;
         break;
-      case 6:
-        if (!getHumanAgentHandoff().equals(other.getHumanAgentHandoff())) return false;
-        break;
       case 9:
         if (!getConversationSuccess().equals(other.getConversationSuccess())) return false;
         break;
@@ -8852,10 +7960,6 @@ public int hashCode() {
         hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
         hash = (53 * hash) + getPayload().hashCode();
         break;
-      case 6:
-        hash = (37 * hash) + HUMAN_AGENT_HANDOFF_FIELD_NUMBER;
-        hash = (53 * hash) + getHumanAgentHandoff().hashCode();
-        break;
       case 9:
         hash = (37 * hash) + CONVERSATION_SUCCESS_FIELD_NUMBER;
         hash = (53 * hash) + getConversationSuccess().hashCode();
@@ -9085,13 +8189,6 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage buildPartial() {
           result.message_ = payloadBuilder_.build();
         }
       }
-      if (messageCase_ == 6) {
-        if (humanAgentHandoffBuilder_ == null) {
-          result.message_ = message_;
-        } else {
-          result.message_ = humanAgentHandoffBuilder_.build();
-        }
-      }
       if (messageCase_ == 9) {
         if (conversationSuccessBuilder_ == null) {
           result.message_ = message_;
@@ -9196,11 +8293,6 @@ public Builder mergeFrom(com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage
             mergePayload(other.getPayload());
             break;
           }
-        case HUMAN_AGENT_HANDOFF:
-          {
-            mergeHumanAgentHandoff(other.getHumanAgentHandoff());
-            break;
-          }
         case CONVERSATION_SUCCESS:
           {
             mergeConversationSuccess(other.getConversationSuccess());
@@ -9696,257 +8788,6 @@ public com.google.protobuf.StructOrBuilder getPayloadOrBuilder() {
       return payloadBuilder_;
     }
 
-    private com.google.protobuf.SingleFieldBuilderV3<
-            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff,
-            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.Builder,
-            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoffOrBuilder>
-        humanAgentHandoffBuilder_;
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     *
-     * @return Whether the humanAgentHandoff field is set.
-     */
-    @java.lang.Override
-    @java.lang.Deprecated
-    public boolean hasHumanAgentHandoff() {
-      return messageCase_ == 6;
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     *
-     * @return The humanAgentHandoff.
-     */
-    @java.lang.Override
-    @java.lang.Deprecated
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-        getHumanAgentHandoff() {
-      if (humanAgentHandoffBuilder_ == null) {
-        if (messageCase_ == 6) {
-          return (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
-              message_;
-        }
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-            .getDefaultInstance();
-      } else {
-        if (messageCase_ == 6) {
-          return humanAgentHandoffBuilder_.getMessage();
-        }
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-            .getDefaultInstance();
-      }
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     */
-    @java.lang.Deprecated
-    public Builder setHumanAgentHandoff(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff value) {
-      if (humanAgentHandoffBuilder_ == null) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        message_ = value;
-        onChanged();
-      } else {
-        humanAgentHandoffBuilder_.setMessage(value);
-      }
-      messageCase_ = 6;
-      return this;
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     */
-    @java.lang.Deprecated
-    public Builder setHumanAgentHandoff(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.Builder
-            builderForValue) {
-      if (humanAgentHandoffBuilder_ == null) {
-        message_ = builderForValue.build();
-        onChanged();
-      } else {
-        humanAgentHandoffBuilder_.setMessage(builderForValue.build());
-      }
-      messageCase_ = 6;
-      return this;
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     */
-    @java.lang.Deprecated
-    public Builder mergeHumanAgentHandoff(
-        com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff value) {
-      if (humanAgentHandoffBuilder_ == null) {
-        if (messageCase_ == 6
-            && message_
-                != com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-                    .getDefaultInstance()) {
-          message_ =
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.newBuilder(
-                      (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
-                          message_)
-                  .mergeFrom(value)
-                  .buildPartial();
-        } else {
-          message_ = value;
-        }
-        onChanged();
-      } else {
-        if (messageCase_ == 6) {
-          humanAgentHandoffBuilder_.mergeFrom(value);
-        }
-        humanAgentHandoffBuilder_.setMessage(value);
-      }
-      messageCase_ = 6;
-      return this;
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     */
-    @java.lang.Deprecated
-    public Builder clearHumanAgentHandoff() {
-      if (humanAgentHandoffBuilder_ == null) {
-        if (messageCase_ == 6) {
-          messageCase_ = 0;
-          message_ = null;
-          onChanged();
-        }
-      } else {
-        if (messageCase_ == 6) {
-          messageCase_ = 0;
-          message_ = null;
-        }
-        humanAgentHandoffBuilder_.clear();
-      }
-      return this;
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     */
-    @java.lang.Deprecated
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.Builder
-        getHumanAgentHandoffBuilder() {
-      return getHumanAgentHandoffFieldBuilder().getBuilder();
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     */
-    @java.lang.Override
-    @java.lang.Deprecated
-    public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoffOrBuilder
-        getHumanAgentHandoffOrBuilder() {
-      if ((messageCase_ == 6) && (humanAgentHandoffBuilder_ != null)) {
-        return humanAgentHandoffBuilder_.getMessageOrBuilder();
-      } else {
-        if (messageCase_ == 6) {
-          return (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff)
-              message_;
-        }
-        return com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-            .getDefaultInstance();
-      }
-    }
-    /**
-     *
-     *
-     * <pre>
-     * Hands off conversation to a human agent.
-     * </pre>
-     *
-     * <code>
-     * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-     * </code>
-     */
-    private com.google.protobuf.SingleFieldBuilderV3<
-            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff,
-            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.Builder,
-            com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoffOrBuilder>
-        getHumanAgentHandoffFieldBuilder() {
-      if (humanAgentHandoffBuilder_ == null) {
-        if (!(messageCase_ == 6)) {
-          message_ =
-              com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff
-                  .getDefaultInstance();
-        }
-        humanAgentHandoffBuilder_ =
-            new com.google.protobuf.SingleFieldBuilderV3<
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff.Builder,
-                com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoffOrBuilder>(
-                (com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff) message_,
-                getParentForChildren(),
-                isClean());
-        message_ = null;
-      }
-      messageCase_ = 6;
-      onChanged();
-      ;
-      return humanAgentHandoffBuilder_;
-    }
-
     private com.google.protobuf.SingleFieldBuilderV3<
             com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess,
             com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.Builder,
@@ -10692,12 +9533,11 @@ public Builder clearLiveAgentHandoff() {
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10714,12 +9554,11 @@ public boolean hasEndInteraction() {
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10749,12 +9588,11 @@ public boolean hasEndInteraction() {
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10779,12 +9617,11 @@ public Builder setEndInteraction(
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10807,12 +9644,11 @@ public Builder setEndInteraction(
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10849,12 +9685,11 @@ public Builder mergeEndInteraction(
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10881,12 +9716,11 @@ public Builder clearEndInteraction() {
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10901,12 +9735,11 @@ public Builder clearEndInteraction() {
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10930,12 +9763,11 @@ public Builder clearEndInteraction() {
      *
      *
      * <pre>
-     * Output only. A signal that indicates the interaction with the Dialogflow agent has
-     * ended.
-     * This message is generated by Dialogflow only when the conversation
-     * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-     * defined by the user.
-     * It's guaranteed that there is at most one such message in each response.
+     * Output only. A signal that indicates the interaction with the Dialogflow
+     * agent has ended. This message is generated by Dialogflow only when the
+     * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+     * to be defined by the user. It's guaranteed that there is at most one such
+     * message in each response.
      * </pre>
      *
      * <code>
@@ -10980,8 +9812,9 @@ public Builder clearEndInteraction() {
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -10998,8 +9831,9 @@ public boolean hasPlayAudio() {
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -11028,8 +9862,9 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio getPlayA
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -11054,8 +9889,9 @@ public Builder setPlayAudio(
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -11077,8 +9913,9 @@ public Builder setPlayAudio(
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -11114,8 +9951,9 @@ public Builder mergePlayAudio(
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -11142,8 +9980,9 @@ public Builder clearPlayAudio() {
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -11158,8 +9997,9 @@ public Builder clearPlayAudio() {
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -11183,8 +10023,9 @@ public Builder clearPlayAudio() {
      * <pre>
      * Signal that the client should play an audio clip hosted at a
      * client-specific URI. Dialogflow uses this to construct
-     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-     * does not try to read or process the URI in any way.
+     * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+     * However, Dialogflow itself does not try to read or process the URI in any
+     * way.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -11224,8 +10065,8 @@ public Builder clearPlayAudio() {
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
@@ -11245,8 +10086,8 @@ public boolean hasMixedAudio() {
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
@@ -11278,8 +10119,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio getMixe
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
@@ -11307,8 +10148,8 @@ public Builder setMixedAudio(
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
@@ -11333,8 +10174,8 @@ public Builder setMixedAudio(
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
@@ -11373,8 +10214,8 @@ public Builder mergeMixedAudio(
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
@@ -11404,8 +10245,8 @@ public Builder clearMixedAudio() {
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
@@ -11423,8 +10264,8 @@ public Builder clearMixedAudio() {
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
@@ -11451,8 +10292,8 @@ public Builder clearMixedAudio() {
      *
      *
      * <pre>
-     * Output only. An audio response message composed of both the synthesized Dialogflow
-     * agent responses and responses defined via
+     * Output only. An audio response message composed of both the synthesized
+     * Dialogflow agent responses and responses defined via
      * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
      * This message is generated by Dialogflow only and not supposed to be
      * defined by the user.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessageOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessageOrBuilder.java
index 2e6687971..6e87abbc9 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessageOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessageOrBuilder.java
@@ -93,51 +93,6 @@ public interface ResponseMessageOrBuilder
    */
   com.google.protobuf.StructOrBuilder getPayloadOrBuilder();
 
-  /**
-   *
-   *
-   * <pre>
-   * Hands off conversation to a human agent.
-   * </pre>
-   *
-   * <code>
-   * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-   * </code>
-   *
-   * @return Whether the humanAgentHandoff field is set.
-   */
-  @java.lang.Deprecated
-  boolean hasHumanAgentHandoff();
-  /**
-   *
-   *
-   * <pre>
-   * Hands off conversation to a human agent.
-   * </pre>
-   *
-   * <code>
-   * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-   * </code>
-   *
-   * @return The humanAgentHandoff.
-   */
-  @java.lang.Deprecated
-  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff getHumanAgentHandoff();
-  /**
-   *
-   *
-   * <pre>
-   * Hands off conversation to a human agent.
-   * </pre>
-   *
-   * <code>
-   * .google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-   * </code>
-   */
-  @java.lang.Deprecated
-  com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.HumanAgentHandoffOrBuilder
-      getHumanAgentHandoffOrBuilder();
-
   /**
    *
    *
@@ -272,12 +227,11 @@ public interface ResponseMessageOrBuilder
    *
    *
    * <pre>
-   * Output only. A signal that indicates the interaction with the Dialogflow agent has
-   * ended.
-   * This message is generated by Dialogflow only when the conversation
-   * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-   * defined by the user.
-   * It's guaranteed that there is at most one such message in each response.
+   * Output only. A signal that indicates the interaction with the Dialogflow
+   * agent has ended. This message is generated by Dialogflow only when the
+   * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+   * to be defined by the user. It's guaranteed that there is at most one such
+   * message in each response.
    * </pre>
    *
    * <code>
@@ -291,12 +245,11 @@ public interface ResponseMessageOrBuilder
    *
    *
    * <pre>
-   * Output only. A signal that indicates the interaction with the Dialogflow agent has
-   * ended.
-   * This message is generated by Dialogflow only when the conversation
-   * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-   * defined by the user.
-   * It's guaranteed that there is at most one such message in each response.
+   * Output only. A signal that indicates the interaction with the Dialogflow
+   * agent has ended. This message is generated by Dialogflow only when the
+   * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+   * to be defined by the user. It's guaranteed that there is at most one such
+   * message in each response.
    * </pre>
    *
    * <code>
@@ -310,12 +263,11 @@ public interface ResponseMessageOrBuilder
    *
    *
    * <pre>
-   * Output only. A signal that indicates the interaction with the Dialogflow agent has
-   * ended.
-   * This message is generated by Dialogflow only when the conversation
-   * reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-   * defined by the user.
-   * It's guaranteed that there is at most one such message in each response.
+   * Output only. A signal that indicates the interaction with the Dialogflow
+   * agent has ended. This message is generated by Dialogflow only when the
+   * conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+   * to be defined by the user. It's guaranteed that there is at most one such
+   * message in each response.
    * </pre>
    *
    * <code>
@@ -331,8 +283,9 @@ public interface ResponseMessageOrBuilder
    * <pre>
    * Signal that the client should play an audio clip hosted at a
    * client-specific URI. Dialogflow uses this to construct
-   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-   * does not try to read or process the URI in any way.
+   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+   * However, Dialogflow itself does not try to read or process the URI in any
+   * way.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -346,8 +299,9 @@ public interface ResponseMessageOrBuilder
    * <pre>
    * Signal that the client should play an audio clip hosted at a
    * client-specific URI. Dialogflow uses this to construct
-   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-   * does not try to read or process the URI in any way.
+   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+   * However, Dialogflow itself does not try to read or process the URI in any
+   * way.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -361,8 +315,9 @@ public interface ResponseMessageOrBuilder
    * <pre>
    * Signal that the client should play an audio clip hosted at a
    * client-specific URI. Dialogflow uses this to construct
-   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-   * does not try to read or process the URI in any way.
+   * [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+   * However, Dialogflow itself does not try to read or process the URI in any
+   * way.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio play_audio = 12;</code>
@@ -373,8 +328,8 @@ public interface ResponseMessageOrBuilder
    *
    *
    * <pre>
-   * Output only. An audio response message composed of both the synthesized Dialogflow
-   * agent responses and responses defined via
+   * Output only. An audio response message composed of both the synthesized
+   * Dialogflow agent responses and responses defined via
    * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
    * This message is generated by Dialogflow only and not supposed to be
    * defined by the user.
@@ -391,8 +346,8 @@ public interface ResponseMessageOrBuilder
    *
    *
    * <pre>
-   * Output only. An audio response message composed of both the synthesized Dialogflow
-   * agent responses and responses defined via
+   * Output only. An audio response message composed of both the synthesized
+   * Dialogflow agent responses and responses defined via
    * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
    * This message is generated by Dialogflow only and not supposed to be
    * defined by the user.
@@ -409,8 +364,8 @@ public interface ResponseMessageOrBuilder
    *
    *
    * <pre>
-   * Output only. An audio response message composed of both the synthesized Dialogflow
-   * agent responses and responses defined via
+   * Output only. An audio response message composed of both the synthesized
+   * Dialogflow agent responses and responses defined via
    * [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
    * This message is generated by Dialogflow only and not supposed to be
    * defined by the user.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessageProto.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessageProto.java
index ede4b546f..65b1d153f 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessageProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/ResponseMessageProto.java
@@ -35,10 +35,6 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
       internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_Text_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_Text_fieldAccessorTable;
-  static final com.google.protobuf.Descriptors.Descriptor
-      internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_descriptor;
-  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
       internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
@@ -47,10 +43,6 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
       internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_fieldAccessorTable;
-  static final com.google.protobuf.Descriptors.Descriptor
-      internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor;
-  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
       internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
@@ -67,6 +59,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
       internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_Segment_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_fieldAccessorTable;
 
   public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     return descriptor;
@@ -78,58 +74,54 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n9google/cloud/dialogflow/cx/v3beta1/res"
           + "ponse_message.proto\022\"google.cloud.dialog"
-          + "flow.cx.v3beta1\032\037google/api/field_behavi"
-          + "or.proto\032\034google/protobuf/struct.proto\032\034"
-          + "google/api/annotations.proto\"\242\013\n\017Respons"
+          + "flow.cx.v3beta1\032\034google/api/annotations."
+          + "proto\032\037google/api/field_behavior.proto\032\034"
+          + "google/protobuf/struct.proto\"\203\n\n\017Respons"
           + "eMessage\022H\n\004text\030\001 \001(\01328.google.cloud.di"
           + "alogflow.cx.v3beta1.ResponseMessage.Text"
           + "H\000\022*\n\007payload\030\002 \001(\0132\027.google.protobuf.St"
-          + "ructH\000\022h\n\023human_agent_handoff\030\006 \001(\0132E.go"
+          + "ructH\000\022g\n\024conversation_success\030\t \001(\0132G.g"
+          + "oogle.cloud.dialogflow.cx.v3beta1.Respon"
+          + "seMessage.ConversationSuccessH\000\022`\n\021outpu"
+          + "t_audio_text\030\010 \001(\0132C.google.cloud.dialog"
+          + "flow.cx.v3beta1.ResponseMessage.OutputAu"
+          + "dioTextH\000\022b\n\022live_agent_handoff\030\n \001(\0132D."
+          + "google.cloud.dialogflow.cx.v3beta1.Respo"
+          + "nseMessage.LiveAgentHandoffH\000\022b\n\017end_int"
+          + "eraction\030\013 \001(\0132B.google.cloud.dialogflow"
+          + ".cx.v3beta1.ResponseMessage.EndInteracti"
+          + "onB\003\340A\003H\000\022S\n\nplay_audio\030\014 \001(\0132=.google.c"
+          + "loud.dialogflow.cx.v3beta1.ResponseMessa"
+          + "ge.PlayAudioH\000\022Z\n\013mixed_audio\030\r \001(\0132>.go"
           + "ogle.cloud.dialogflow.cx.v3beta1.Respons"
-          + "eMessage.HumanAgentHandoffB\002\030\001H\000\022g\n\024conv"
-          + "ersation_success\030\t \001(\0132G.google.cloud.di"
-          + "alogflow.cx.v3beta1.ResponseMessage.Conv"
-          + "ersationSuccessH\000\022`\n\021output_audio_text\030\010"
-          + " \001(\0132C.google.cloud.dialogflow.cx.v3beta"
-          + "1.ResponseMessage.OutputAudioTextH\000\022b\n\022l"
-          + "ive_agent_handoff\030\n \001(\0132D.google.cloud.d"
-          + "ialogflow.cx.v3beta1.ResponseMessage.Liv"
-          + "eAgentHandoffH\000\022b\n\017end_interaction\030\013 \001(\013"
-          + "2B.google.cloud.dialogflow.cx.v3beta1.Re"
-          + "sponseMessage.EndInteractionB\003\340A\003H\000\022S\n\np"
-          + "lay_audio\030\014 \001(\0132=.google.cloud.dialogflo"
-          + "w.cx.v3beta1.ResponseMessage.PlayAudioH\000"
-          + "\022Z\n\013mixed_audio\030\r \001(\0132>.google.cloud.dia"
-          + "logflow.cx.v3beta1.ResponseMessage.Mixed"
-          + "AudioB\003\340A\003H\000\032>\n\004Text\022\021\n\004text\030\001 \003(\tB\003\340A\002\022"
-          + "#\n\033allow_playback_interruption\030\002 \001(\010\032B\n\021"
-          + "HumanAgentHandoff\022)\n\010metadata\030\001 \001(\0132\027.go"
-          + "ogle.protobuf.Struct:\002\030\001\032=\n\020LiveAgentHan"
-          + "doff\022)\n\010metadata\030\001 \001(\0132\027.google.protobuf"
-          + ".Struct\032@\n\023ConversationSuccess\022)\n\010metada"
-          + "ta\030\001 \001(\0132\027.google.protobuf.Struct\032H\n\tPla"
-          + "yAudio\022\026\n\taudio_uri\030\001 \001(\tB\003\340A\002\022#\n\033allow_"
-          + "playback_interruption\030\002 \001(\010\032;\n\017OutputAud"
-          + "ioText\022\016\n\004text\030\001 \001(\tH\000\022\016\n\004ssml\030\002 \001(\tH\000B\010"
-          + "\n\006source\032\020\n\016EndInteraction\032\301\001\n\nMixedAudi"
-          + "o\022X\n\010segments\030\001 \003(\0132F.google.cloud.dialo"
-          + "gflow.cx.v3beta1.ResponseMessage.MixedAu"
-          + "dio.Segment\032Y\n\007Segment\022\017\n\005audio\030\001 \001(\014H\000\022"
-          + "\r\n\003uri\030\002 \001(\tH\000\022#\n\033allow_playback_interru"
-          + "ption\030\003 \001(\010B\t\n\007contentB\t\n\007messageB\263\001\n&co"
-          + "m.google.cloud.dialogflow.cx.v3beta1B\024Re"
-          + "sponseMessageProtoP\001ZDgoogle.golang.org/"
-          + "genproto/googleapis/cloud/dialogflow/cx/"
-          + "v3beta1;cx\370\001\001\242\002\002DF\252\002\"Google.Cloud.Dialog"
-          + "flow.Cx.V3Beta1b\006proto3"
+          + "eMessage.MixedAudioB\003\340A\003H\000\032C\n\004Text\022\021\n\004te"
+          + "xt\030\001 \003(\tB\003\340A\002\022(\n\033allow_playback_interrup"
+          + "tion\030\002 \001(\010B\003\340A\003\032=\n\020LiveAgentHandoff\022)\n\010m"
+          + "etadata\030\001 \001(\0132\027.google.protobuf.Struct\032@"
+          + "\n\023ConversationSuccess\022)\n\010metadata\030\001 \001(\0132"
+          + "\027.google.protobuf.Struct\032;\n\017OutputAudioT"
+          + "ext\022\016\n\004text\030\001 \001(\tH\000\022\016\n\004ssml\030\002 \001(\tH\000B\010\n\006s"
+          + "ource\032\020\n\016EndInteraction\032\306\001\n\nMixedAudio\022X"
+          + "\n\010segments\030\001 \003(\0132F.google.cloud.dialogfl"
+          + "ow.cx.v3beta1.ResponseMessage.MixedAudio"
+          + ".Segment\032^\n\007Segment\022\017\n\005audio\030\001 \001(\014H\000\022\r\n\003"
+          + "uri\030\002 \001(\tH\000\022(\n\033allow_playback_interrupti"
+          + "on\030\003 \001(\010B\003\340A\003B\t\n\007content\032M\n\tPlayAudio\022\026\n"
+          + "\taudio_uri\030\001 \001(\tB\003\340A\002\022(\n\033allow_playback_"
+          + "interruption\030\002 \001(\010B\003\340A\003B\t\n\007messageB\263\001\n&c"
+          + "om.google.cloud.dialogflow.cx.v3beta1B\024R"
+          + "esponseMessageProtoP\001ZDgoogle.golang.org"
+          + "/genproto/googleapis/cloud/dialogflow/cx"
+          + "/v3beta1;cx\370\001\001\242\002\002DF\252\002\"Google.Cloud.Dialo"
+          + "gflow.Cx.V3Beta1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
             descriptorData,
             new com.google.protobuf.Descriptors.FileDescriptor[] {
+              com.google.api.AnnotationsProto.getDescriptor(),
               com.google.api.FieldBehaviorProto.getDescriptor(),
               com.google.protobuf.StructProto.getDescriptor(),
-              com.google.api.AnnotationsProto.getDescriptor(),
             });
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor =
         getDescriptor().getMessageTypes().get(0);
@@ -139,7 +131,6 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
             new java.lang.String[] {
               "Text",
               "Payload",
-              "HumanAgentHandoff",
               "ConversationSuccess",
               "OutputAudioText",
               "LiveAgentHandoff",
@@ -158,20 +149,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
             new java.lang.String[] {
               "Text", "AllowPlaybackInterruption",
             });
-    internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_descriptor =
-        internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor
-            .getNestedTypes()
-            .get(1);
-    internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_fieldAccessorTable =
-        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-            internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_HumanAgentHandoff_descriptor,
-            new java.lang.String[] {
-              "Metadata",
-            });
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor =
         internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor
             .getNestedTypes()
-            .get(2);
+            .get(1);
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_LiveAgentHandoff_descriptor,
@@ -181,27 +162,17 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor =
         internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor
             .getNestedTypes()
-            .get(3);
+            .get(2);
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_ConversationSuccess_descriptor,
             new java.lang.String[] {
               "Metadata",
             });
-    internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor =
-        internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor
-            .getNestedTypes()
-            .get(4);
-    internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_fieldAccessorTable =
-        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-            internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor,
-            new java.lang.String[] {
-              "AudioUri", "AllowPlaybackInterruption",
-            });
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor =
         internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor
             .getNestedTypes()
-            .get(5);
+            .get(3);
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_OutputAudioText_descriptor,
@@ -211,7 +182,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_descriptor =
         internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor
             .getNestedTypes()
-            .get(6);
+            .get(4);
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_EndInteraction_descriptor,
@@ -219,7 +190,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_descriptor =
         internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor
             .getNestedTypes()
-            .get(7);
+            .get(5);
     internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_MixedAudio_descriptor,
@@ -236,14 +207,24 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
             new java.lang.String[] {
               "Audio", "Uri", "AllowPlaybackInterruption", "Content",
             });
+    internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor =
+        internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_descriptor
+            .getNestedTypes()
+            .get(6);
+    internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_dialogflow_cx_v3beta1_ResponseMessage_PlayAudio_descriptor,
+            new java.lang.String[] {
+              "AudioUri", "AllowPlaybackInterruption",
+            });
     com.google.protobuf.ExtensionRegistry registry =
         com.google.protobuf.ExtensionRegistry.newInstance();
     registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
     com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
         descriptor, registry);
+    com.google.api.AnnotationsProto.getDescriptor();
     com.google.api.FieldBehaviorProto.getDescriptor();
     com.google.protobuf.StructProto.getDescriptor();
-    com.google.api.AnnotationsProto.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityType.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityType.java
index f6490a028..7a2026bfc 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityType.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityType.java
@@ -26,9 +26,9 @@
  * entities that are built for an individual user such as favorites,
  * preferences, playlists, and so on.
  * You can redefine a session entity type at the session level to extend or
- * replace a [custom entity type][google.cloud.dialogflow.cx.v3beta1.EntityType] at the user session level (we
- * refer to the entity types defined at the agent level as "custom entity
- * types").
+ * replace a [custom entity type][google.cloud.dialogflow.cx.v3beta1.EntityType]
+ * at the user session level (we refer to the entity types defined at the agent
+ * level as "custom entity types").
  * Note: session entity types apply to all queries, regardless of the language.
  * For more information about entity types, see the [Dialogflow
  * documentation](https://cloud.google.com/dialogflow/docs/entities-overview).
@@ -188,8 +188,9 @@ public enum EntityOverrideMode implements com.google.protobuf.ProtocolMessageEnu
      * `GetSessionEntityType`, `CreateSessionEntityType` and
      * `UpdateSessionEntityType` only return the additional entities added in
      * this session entity type. If you want to get the supplemented list,
-     * please call [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType] on the custom entity type
-     * and merge.
+     * please call
+     * [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType]
+     * on the custom entity type and merge.
      * </pre>
      *
      * <code>ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2;</code>
@@ -229,8 +230,9 @@ public enum EntityOverrideMode implements com.google.protobuf.ProtocolMessageEnu
      * `GetSessionEntityType`, `CreateSessionEntityType` and
      * `UpdateSessionEntityType` only return the additional entities added in
      * this session entity type. If you want to get the supplemented list,
-     * please call [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType] on the custom entity type
-     * and merge.
+     * please call
+     * [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType]
+     * on the custom entity type and merge.
      * </pre>
      *
      * <code>ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2;</code>
@@ -334,7 +336,10 @@ private EntityOverrideMode(int value) {
    * Required. The unique identifier of the session entity type.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
    * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-   * ID&gt;`.
+   * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -360,7 +365,10 @@ public java.lang.String getName() {
    * Required. The unique identifier of the session entity type.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
    * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-   * ID&gt;`.
+   * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -386,8 +394,8 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    *
    * <pre>
-   * Required. Indicates whether the additional data should override or supplement the
-   * custom entity type definition.
+   * Required. Indicates whether the additional data should override or
+   * supplement the custom entity type definition.
    * </pre>
    *
    * <code>
@@ -404,8 +412,8 @@ public int getEntityOverrideModeValue() {
    *
    *
    * <pre>
-   * Required. Indicates whether the additional data should override or supplement the
-   * custom entity type definition.
+   * Required. Indicates whether the additional data should override or
+   * supplement the custom entity type definition.
    * </pre>
    *
    * <code>
@@ -432,8 +440,8 @@ public int getEntityOverrideModeValue() {
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -449,8 +457,8 @@ public int getEntityOverrideModeValue() {
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -466,8 +474,8 @@ public int getEntityOverrideModeValue() {
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -482,8 +490,8 @@ public int getEntitiesCount() {
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -498,8 +506,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.EntityType.Entity getEntities(int
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -706,9 +714,9 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    * entities that are built for an individual user such as favorites,
    * preferences, playlists, and so on.
    * You can redefine a session entity type at the session level to extend or
-   * replace a [custom entity type][google.cloud.dialogflow.cx.v3beta1.EntityType] at the user session level (we
-   * refer to the entity types defined at the agent level as "custom entity
-   * types").
+   * replace a [custom entity type][google.cloud.dialogflow.cx.v3beta1.EntityType]
+   * at the user session level (we refer to the entity types defined at the agent
+   * level as "custom entity types").
    * Note: session entity types apply to all queries, regardless of the language.
    * For more information about entity types, see the [Dialogflow
    * documentation](https://cloud.google.com/dialogflow/docs/entities-overview).
@@ -927,7 +935,10 @@ public Builder mergeFrom(
      * Required. The unique identifier of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
      * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-     * ID&gt;`.
+     * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -952,7 +963,10 @@ public java.lang.String getName() {
      * Required. The unique identifier of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
      * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-     * ID&gt;`.
+     * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -977,7 +991,10 @@ public com.google.protobuf.ByteString getNameBytes() {
      * Required. The unique identifier of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
      * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-     * ID&gt;`.
+     * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1001,7 +1018,10 @@ public Builder setName(java.lang.String value) {
      * Required. The unique identifier of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
      * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-     * ID&gt;`.
+     * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1021,7 +1041,10 @@ public Builder clearName() {
      * Required. The unique identifier of the session entity type.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
      * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-     * ID&gt;`.
+     * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1045,8 +1068,8 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Required. Indicates whether the additional data should override or supplement the
-     * custom entity type definition.
+     * Required. Indicates whether the additional data should override or
+     * supplement the custom entity type definition.
      * </pre>
      *
      * <code>
@@ -1063,8 +1086,8 @@ public int getEntityOverrideModeValue() {
      *
      *
      * <pre>
-     * Required. Indicates whether the additional data should override or supplement the
-     * custom entity type definition.
+     * Required. Indicates whether the additional data should override or
+     * supplement the custom entity type definition.
      * </pre>
      *
      * <code>
@@ -1084,8 +1107,8 @@ public Builder setEntityOverrideModeValue(int value) {
      *
      *
      * <pre>
-     * Required. Indicates whether the additional data should override or supplement the
-     * custom entity type definition.
+     * Required. Indicates whether the additional data should override or
+     * supplement the custom entity type definition.
      * </pre>
      *
      * <code>
@@ -1109,8 +1132,8 @@ public Builder setEntityOverrideModeValue(int value) {
      *
      *
      * <pre>
-     * Required. Indicates whether the additional data should override or supplement the
-     * custom entity type definition.
+     * Required. Indicates whether the additional data should override or
+     * supplement the custom entity type definition.
      * </pre>
      *
      * <code>
@@ -1134,8 +1157,8 @@ public Builder setEntityOverrideMode(
      *
      *
      * <pre>
-     * Required. Indicates whether the additional data should override or supplement the
-     * custom entity type definition.
+     * Required. Indicates whether the additional data should override or
+     * supplement the custom entity type definition.
      * </pre>
      *
      * <code>
@@ -1173,8 +1196,8 @@ private void ensureEntitiesIsMutable() {
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1193,8 +1216,8 @@ private void ensureEntitiesIsMutable() {
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1212,8 +1235,8 @@ public int getEntitiesCount() {
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1231,8 +1254,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.EntityType.Entity getEntities(int
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1257,8 +1280,8 @@ public Builder setEntities(
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1281,8 +1304,8 @@ public Builder setEntities(
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1306,8 +1329,8 @@ public Builder addEntities(com.google.cloud.dialogflow.cx.v3beta1.EntityType.Ent
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1332,8 +1355,8 @@ public Builder addEntities(
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1355,8 +1378,8 @@ public Builder addEntities(
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1379,8 +1402,8 @@ public Builder addEntities(
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1403,8 +1426,8 @@ public Builder addAllEntities(
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1425,8 +1448,8 @@ public Builder clearEntities() {
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1447,8 +1470,8 @@ public Builder removeEntities(int index) {
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1463,8 +1486,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.EntityType.Entity.Builder getEntit
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1483,8 +1506,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.EntityType.EntityOrBuilder getEnti
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1504,8 +1527,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.EntityType.EntityOrBuilder getEnti
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1521,8 +1544,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.EntityType.Entity.Builder addEntit
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
@@ -1539,8 +1562,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.EntityType.Entity.Builder addEntit
      *
      *
      * <pre>
-     * Required. The collection of entities to override or supplement the custom entity
-     * type.
+     * Required. The collection of entities to override or supplement the custom
+     * entity type.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypeOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypeOrBuilder.java
index d46398e56..b84030790 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypeOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypeOrBuilder.java
@@ -30,7 +30,10 @@ public interface SessionEntityTypeOrBuilder
    * Required. The unique identifier of the session entity type.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
    * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-   * ID&gt;`.
+   * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -45,7 +48,10 @@ public interface SessionEntityTypeOrBuilder
    * Required. The unique identifier of the session entity type.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
    * ID&gt;/agents/&lt;Agent ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type
-   * ID&gt;`.
+   * ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -58,8 +64,8 @@ public interface SessionEntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. Indicates whether the additional data should override or supplement the
-   * custom entity type definition.
+   * Required. Indicates whether the additional data should override or
+   * supplement the custom entity type definition.
    * </pre>
    *
    * <code>
@@ -73,8 +79,8 @@ public interface SessionEntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. Indicates whether the additional data should override or supplement the
-   * custom entity type definition.
+   * Required. Indicates whether the additional data should override or
+   * supplement the custom entity type definition.
    * </pre>
    *
    * <code>
@@ -90,8 +96,8 @@ public interface SessionEntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -103,8 +109,8 @@ public interface SessionEntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -116,8 +122,8 @@ public interface SessionEntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -129,8 +135,8 @@ public interface SessionEntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
@@ -143,8 +149,8 @@ public interface SessionEntityTypeOrBuilder
    *
    *
    * <pre>
-   * Required. The collection of entities to override or supplement the custom entity
-   * type.
+   * Required. The collection of entities to override or supplement the custom
+   * entity type.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypeProto.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypeProto.java
index 4fddf3689..201788f0d 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypeProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionEntityTypeProto.java
@@ -109,48 +109,61 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "date_mask\030\002 \001(\0132\032.google.protobuf.FieldM"
           + "ask\"c\n\036DeleteSessionEntityTypeRequest\022A\n"
           + "\004name\030\001 \001(\tB3\340A\002\372A-\n+dialogflow.googleap"
-          + "is.com/SessionEntityType2\227\013\n\022SessionEnti"
-          + "tyTypes\022\372\001\n\026ListSessionEntityTypes\022A.goo"
+          + "is.com/SessionEntityType2\245\017\n\022SessionEnti"
+          + "tyTypes\022\327\002\n\026ListSessionEntityTypes\022A.goo"
           + "gle.cloud.dialogflow.cx.v3beta1.ListSess"
           + "ionEntityTypesRequest\032B.google.cloud.dia"
           + "logflow.cx.v3beta1.ListSessionEntityType"
-          + "sResponse\"Y\202\323\344\223\002J\022H/v3beta1/{parent=proj"
-          + "ects/*/locations/*/agents/*/sessions/*}/"
-          + "entityTypes\332A\006parent\022\347\001\n\024GetSessionEntit"
-          + "yType\022?.google.cloud.dialogflow.cx.v3bet"
-          + "a1.GetSessionEntityTypeRequest\0325.google."
-          + "cloud.dialogflow.cx.v3beta1.SessionEntit"
-          + "yType\"W\202\323\344\223\002J\022H/v3beta1/{name=projects/*"
-          + "/locations/*/agents/*/sessions/*/entityT"
-          + "ypes/*}\332A\004name\022\231\002\n\027CreateSessionEntityTy"
-          + "pe\022B.google.cloud.dialogflow.cx.v3beta1."
-          + "CreateSessionEntityTypeRequest\0325.google."
-          + "cloud.dialogflow.cx.v3beta1.SessionEntit"
-          + "yType\"\202\001\202\323\344\223\002_\"H/v3beta1/{parent=project"
-          + "s/*/locations/*/agents/*/sessions/*}/ent"
-          + "ityTypes:\023session_entity_type\332A\032parent,s"
-          + "ession_entity_type\022\262\002\n\027UpdateSessionEnti"
-          + "tyType\022B.google.cloud.dialogflow.cx.v3be"
-          + "ta1.UpdateSessionEntityTypeRequest\0325.goo"
-          + "gle.cloud.dialogflow.cx.v3beta1.SessionE"
-          + "ntityType\"\233\001\202\323\344\223\002s2\\/v3beta1/{session_en"
-          + "tity_type.name=projects/*/locations/*/ag"
-          + "ents/*/sessions/*/entityTypes/*}:\023sessio"
-          + "n_entity_type\332A\037session_entity_type,upda"
-          + "te_mask\022\316\001\n\027DeleteSessionEntityType\022B.go"
-          + "ogle.cloud.dialogflow.cx.v3beta1.DeleteS"
-          + "essionEntityTypeRequest\032\026.google.protobu"
-          + "f.Empty\"W\202\323\344\223\002J*H/v3beta1/{name=projects"
-          + "/*/locations/*/agents/*/sessions/*/entit"
-          + "yTypes/*}\332A\004name\032x\312A\031dialogflow.googleap"
-          + "is.com\322AYhttps://www.googleapis.com/auth"
-          + "/cloud-platform,https://www.googleapis.c"
-          + "om/auth/dialogflowB\265\001\n&com.google.cloud."
-          + "dialogflow.cx.v3beta1B\026SessionEntityType"
-          + "ProtoP\001ZDgoogle.golang.org/genproto/goog"
-          + "leapis/cloud/dialogflow/cx/v3beta1;cx\370\001\001"
-          + "\242\002\002DF\252\002\"Google.Cloud.Dialogflow.Cx.V3Bet"
-          + "a1b\006proto3"
+          + "sResponse\"\265\001\202\323\344\223\002\245\001\022H/v3beta1/{parent=pr"
+          + "ojects/*/locations/*/agents/*/sessions/*"
+          + "}/entityTypesZY\022W/v3beta1/{parent=projec"
+          + "ts/*/locations/*/agents/*/environments/*"
+          + "/sessions/*}/entityTypes\332A\006parent\022\304\002\n\024Ge"
+          + "tSessionEntityType\022?.google.cloud.dialog"
+          + "flow.cx.v3beta1.GetSessionEntityTypeRequ"
+          + "est\0325.google.cloud.dialogflow.cx.v3beta1"
+          + ".SessionEntityType\"\263\001\202\323\344\223\002\245\001\022H/v3beta1/{"
+          + "name=projects/*/locations/*/agents/*/ses"
+          + "sions/*/entityTypes/*}ZY\022W/v3beta1/{name"
+          + "=projects/*/locations/*/agents/*/environ"
+          + "ments/*/sessions/*/entityTypes/*}\332A\004name"
+          + "\022\212\003\n\027CreateSessionEntityType\022B.google.cl"
+          + "oud.dialogflow.cx.v3beta1.CreateSessionE"
+          + "ntityTypeRequest\0325.google.cloud.dialogfl"
+          + "ow.cx.v3beta1.SessionEntityType\"\363\001\202\323\344\223\002\317"
+          + "\001\"H/v3beta1/{parent=projects/*/locations"
+          + "/*/agents/*/sessions/*}/entityTypes:\023ses"
+          + "sion_entity_typeZn\"W/v3beta1/{parent=pro"
+          + "jects/*/locations/*/agents/*/environment"
+          + "s/*/sessions/*}/entityTypes:\023session_ent"
+          + "ity_type\332A\032parent,session_entity_type\022\270\003"
+          + "\n\027UpdateSessionEntityType\022B.google.cloud"
+          + ".dialogflow.cx.v3beta1.UpdateSessionEnti"
+          + "tyTypeRequest\0325.google.cloud.dialogflow."
+          + "cx.v3beta1.SessionEntityType\"\241\002\202\323\344\223\002\370\0012\\"
+          + "/v3beta1/{session_entity_type.name=proje"
+          + "cts/*/locations/*/agents/*/sessions/*/en"
+          + "tityTypes/*}:\023session_entity_typeZ\202\0012k/v"
+          + "3beta1/{session_entity_type.name=project"
+          + "s/*/locations/*/agents/*/environments/*/"
+          + "sessions/*/entityTypes/*}:\023session_entit"
+          + "y_type\332A\037session_entity_type,update_mask"
+          + "\022\253\002\n\027DeleteSessionEntityType\022B.google.cl"
+          + "oud.dialogflow.cx.v3beta1.DeleteSessionE"
+          + "ntityTypeRequest\032\026.google.protobuf.Empty"
+          + "\"\263\001\202\323\344\223\002\245\001*H/v3beta1/{name=projects/*/lo"
+          + "cations/*/agents/*/sessions/*/entityType"
+          + "s/*}ZY*W/v3beta1/{name=projects/*/locati"
+          + "ons/*/agents/*/environments/*/sessions/*"
+          + "/entityTypes/*}\332A\004name\032x\312A\031dialogflow.go"
+          + "ogleapis.com\322AYhttps://www.googleapis.co"
+          + "m/auth/cloud-platform,https://www.google"
+          + "apis.com/auth/dialogflowB\265\001\n&com.google."
+          + "cloud.dialogflow.cx.v3beta1B\026SessionEnti"
+          + "tyTypeProtoP\001ZDgoogle.golang.org/genprot"
+          + "o/googleapis/cloud/dialogflow/cx/v3beta1"
+          + ";cx\370\001\001\242\002\002DF\252\002\"Google.Cloud.Dialogflow.Cx"
+          + ".V3Beta1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionInfo.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionInfo.java
index 08b4e999d..154ec9bed 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionInfo.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionInfo.java
@@ -145,10 +145,14 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-   * field can be used by the webhook to identify a user.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * unique identifier of the
+   * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+   * This field can be used by the webhook to identify a user. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/sessions/&lt;Session ID&gt;`.
    * </pre>
    *
@@ -172,10 +176,14 @@ public java.lang.String getSession() {
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-   * field can be used by the webhook to identify a user.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * unique identifier of the
+   * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+   * This field can be used by the webhook to identify a user. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/sessions/&lt;Session ID&gt;`.
    * </pre>
    *
@@ -228,12 +236,16 @@ public int getParametersCount() {
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -255,12 +267,16 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getParameters(
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -273,12 +289,16 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getParametersM
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -297,12 +317,16 @@ public com.google.protobuf.Value getParametersOrDefault(
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -687,10 +711,14 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-     * field can be used by the webhook to identify a user.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+     * This field can be used by the webhook to identify a user. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;`.
      * </pre>
      *
@@ -713,10 +741,14 @@ public java.lang.String getSession() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-     * field can be used by the webhook to identify a user.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+     * This field can be used by the webhook to identify a user. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;`.
      * </pre>
      *
@@ -739,10 +771,14 @@ public com.google.protobuf.ByteString getSessionBytes() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-     * field can be used by the webhook to identify a user.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+     * This field can be used by the webhook to identify a user. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;`.
      * </pre>
      *
@@ -764,10 +800,14 @@ public Builder setSession(java.lang.String value) {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-     * field can be used by the webhook to identify a user.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+     * This field can be used by the webhook to identify a user. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;`.
      * </pre>
      *
@@ -785,10 +825,14 @@ public Builder clearSession() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-     * field can be used by the webhook to identify a user.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+     * This field can be used by the webhook to identify a user. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;`.
      * </pre>
      *
@@ -840,12 +884,16 @@ public int getParametersCount() {
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * All parameters collected from forms and intents during the session.
-     * Parameters can be created, updated, or removed by the webhook. To remove a
-     * parameter from the session, the webhook should explicitly set the parameter
-     * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Optional for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+     * parameters collected from forms and intents during the session. Parameters
+     * can be created, updated, or removed by the webhook. To remove a parameter
+     * from the session, the webhook should explicitly set the parameter value to
+     * null in
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -867,12 +915,16 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getParameters(
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * All parameters collected from forms and intents during the session.
-     * Parameters can be created, updated, or removed by the webhook. To remove a
-     * parameter from the session, the webhook should explicitly set the parameter
-     * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Optional for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+     * parameters collected from forms and intents during the session. Parameters
+     * can be created, updated, or removed by the webhook. To remove a parameter
+     * from the session, the webhook should explicitly set the parameter value to
+     * null in
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -885,12 +937,16 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getParametersM
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * All parameters collected from forms and intents during the session.
-     * Parameters can be created, updated, or removed by the webhook. To remove a
-     * parameter from the session, the webhook should explicitly set the parameter
-     * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Optional for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+     * parameters collected from forms and intents during the session. Parameters
+     * can be created, updated, or removed by the webhook. To remove a parameter
+     * from the session, the webhook should explicitly set the parameter value to
+     * null in
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -909,12 +965,16 @@ public com.google.protobuf.Value getParametersOrDefault(
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * All parameters collected from forms and intents during the session.
-     * Parameters can be created, updated, or removed by the webhook. To remove a
-     * parameter from the session, the webhook should explicitly set the parameter
-     * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Optional for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+     * parameters collected from forms and intents during the session. Parameters
+     * can be created, updated, or removed by the webhook. To remove a parameter
+     * from the session, the webhook should explicitly set the parameter value to
+     * null in
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -940,12 +1000,16 @@ public Builder clearParameters() {
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * All parameters collected from forms and intents during the session.
-     * Parameters can be created, updated, or removed by the webhook. To remove a
-     * parameter from the session, the webhook should explicitly set the parameter
-     * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Optional for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+     * parameters collected from forms and intents during the session. Parameters
+     * can be created, updated, or removed by the webhook. To remove a parameter
+     * from the session, the webhook should explicitly set the parameter value to
+     * null in
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -966,12 +1030,16 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getMutablePara
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * All parameters collected from forms and intents during the session.
-     * Parameters can be created, updated, or removed by the webhook. To remove a
-     * parameter from the session, the webhook should explicitly set the parameter
-     * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Optional for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+     * parameters collected from forms and intents during the session. Parameters
+     * can be created, updated, or removed by the webhook. To remove a parameter
+     * from the session, the webhook should explicitly set the parameter value to
+     * null in
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -990,12 +1058,16 @@ public Builder putParameters(java.lang.String key, com.google.protobuf.Value val
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-     * All parameters collected from forms and intents during the session.
-     * Parameters can be created, updated, or removed by the webhook. To remove a
-     * parameter from the session, the webhook should explicitly set the parameter
-     * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+     * Optional for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+     * parameters collected from forms and intents during the session. Parameters
+     * can be created, updated, or removed by the webhook. To remove a parameter
+     * from the session, the webhook should explicitly set the parameter value to
+     * null in
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+     * map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionInfoOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionInfoOrBuilder.java
index 834c00b0a..e7ce9697f 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionInfoOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionInfoOrBuilder.java
@@ -27,10 +27,14 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-   * field can be used by the webhook to identify a user.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * unique identifier of the
+   * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+   * This field can be used by the webhook to identify a user. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/sessions/&lt;Session ID&gt;`.
    * </pre>
    *
@@ -43,10 +47,14 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-   * field can be used by the webhook to identify a user.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * unique identifier of the
+   * [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+   * This field can be used by the webhook to identify a user. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/sessions/&lt;Session ID&gt;`.
    * </pre>
    *
@@ -60,12 +68,16 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -75,12 +87,16 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -93,12 +109,16 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -108,12 +128,16 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -124,12 +148,16 @@ com.google.protobuf.Value getParametersOrDefault(
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-   * All parameters collected from forms and intents during the session.
-   * Parameters can be created, updated, or removed by the webhook. To remove a
-   * parameter from the session, the webhook should explicitly set the parameter
-   * value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+   * Optional for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+   * parameters collected from forms and intents during the session. Parameters
+   * can be created, updated, or removed by the webhook. To remove a parameter
+   * from the session, the webhook should explicitly set the parameter value to
+   * null in
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+   * map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionProto.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionProto.java
index d3de77595..8033337a0 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SessionProto.java
@@ -102,19 +102,19 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n0google/cloud/dialogflow/cx/v3beta1/ses"
           + "sion.proto\022\"google.cloud.dialogflow.cx.v"
-          + "3beta1\032\034google/api/annotations.proto\032\037go"
-          + "ogle/api/field_behavior.proto\032\031google/ap"
-          + "i/resource.proto\0325google/cloud/dialogflo"
-          + "w/cx/v3beta1/audio_config.proto\032/google/"
-          + "cloud/dialogflow/cx/v3beta1/intent.proto"
-          + "\032-google/cloud/dialogflow/cx/v3beta1/pag"
-          + "e.proto\0329google/cloud/dialogflow/cx/v3be"
-          + "ta1/response_message.proto\032<google/cloud"
-          + "/dialogflow/cx/v3beta1/session_entity_ty"
-          + "pe.proto\032\036google/protobuf/duration.proto"
-          + "\032\034google/protobuf/struct.proto\032\027google/r"
-          + "pc/status.proto\032\030google/type/latlng.prot"
-          + "o\032\027google/api/client.proto\"\272\002\n\023DetectInt"
+          + "3beta1\032\034google/api/annotations.proto\032\027go"
+          + "ogle/api/client.proto\032\037google/api/field_"
+          + "behavior.proto\032\031google/api/resource.prot"
+          + "o\0325google/cloud/dialogflow/cx/v3beta1/au"
+          + "dio_config.proto\032/google/cloud/dialogflo"
+          + "w/cx/v3beta1/intent.proto\032-google/cloud/"
+          + "dialogflow/cx/v3beta1/page.proto\0329google"
+          + "/cloud/dialogflow/cx/v3beta1/response_me"
+          + "ssage.proto\032<google/cloud/dialogflow/cx/"
+          + "v3beta1/session_entity_type.proto\032\036googl"
+          + "e/protobuf/duration.proto\032\034google/protob"
+          + "uf/struct.proto\032\027google/rpc/status.proto"
+          + "\032\030google/type/latlng.proto\"\272\002\n\023DetectInt"
           + "entRequest\022:\n\007session\030\001 \001(\tB)\340A\002\372A#\n!dia"
           + "logflow.googleapis.com/Session\022I\n\014query_"
           + "params\030\002 \001(\01323.google.cloud.dialogflow.c"
@@ -218,47 +218,56 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + ".dialogflow.cx.v3beta1.QueryResult\022\024\n\014ou"
           + "tput_audio\030\003 \001(\014\022R\n\023output_audio_config\030"
           + "\004 \001(\01325.google.cloud.dialogflow.cx.v3bet"
-          + "a1.OutputAudioConfig2\317\007\n\010Sessions\022\330\001\n\014De"
+          + "a1.OutputAudioConfig2\212\n\n\010Sessions\022\272\002\n\014De"
           + "tectIntent\0227.google.cloud.dialogflow.cx."
           + "v3beta1.DetectIntentRequest\0328.google.clo"
           + "ud.dialogflow.cx.v3beta1.DetectIntentRes"
-          + "ponse\"U\202\323\344\223\002O\"J/v3beta1/{session=project"
-          + "s/*/locations/*/agents/*/sessions/*}:det"
-          + "ectIntent:\001*\022\242\001\n\025StreamingDetectIntent\022@"
-          + ".google.cloud.dialogflow.cx.v3beta1.Stre"
-          + "amingDetectIntentRequest\032A.google.cloud."
-          + "dialogflow.cx.v3beta1.StreamingDetectInt"
-          + "entResponse\"\000(\0010\001\022\324\001\n\013MatchIntent\0226.goog"
-          + "le.cloud.dialogflow.cx.v3beta1.MatchInte"
-          + "ntRequest\0327.google.cloud.dialogflow.cx.v"
-          + "3beta1.MatchIntentResponse\"T\202\323\344\223\002N\"I/v3b"
-          + "eta1/{session=projects/*/locations/*/age"
-          + "nts/*/sessions/*}:matchIntent:\001*\022\361\001\n\rFul"
-          + "fillIntent\0228.google.cloud.dialogflow.cx."
-          + "v3beta1.FulfillIntentRequest\0329.google.cl"
-          + "oud.dialogflow.cx.v3beta1.FulfillIntentR"
-          + "esponse\"k\202\323\344\223\002e\"`/v3beta1/{match_intent_"
-          + "request.session=projects/*/locations/*/a"
-          + "gents/*/sessions/*}:fulfillIntent:\001*\032x\312A"
-          + "\031dialogflow.googleapis.com\322AYhttps://www"
-          + ".googleapis.com/auth/cloud-platform,http"
-          + "s://www.googleapis.com/auth/dialogflowB\203"
-          + "\003\n&com.google.cloud.dialogflow.cx.v3beta"
-          + "1B\014SessionProtoP\001ZDgoogle.golang.org/gen"
-          + "proto/googleapis/cloud/dialogflow/cx/v3b"
-          + "eta1;cx\370\001\001\242\002\002DF\252\002\"Google.Cloud.Dialogflo"
-          + "w.Cx.V3Beta1\352A\324\001\n!dialogflow.googleapis."
-          + "com/Session\022Iprojects/{project}/location"
-          + "s/{location}/agents/{agent}/sessions/{se"
-          + "ssion}\022dprojects/{project}/locations/{lo"
-          + "cation}/agents/{agent}/environments/{env"
-          + "ironment}/sessions/{session}b\006proto3"
+          + "ponse\"\266\001\202\323\344\223\002\257\001\"J/v3beta1/{session=proje"
+          + "cts/*/locations/*/agents/*/sessions/*}:d"
+          + "etectIntent:\001*Z^\"Y/v3beta1/{session=proj"
+          + "ects/*/locations/*/agents/*/environments"
+          + "/*/sessions/*}:detectIntent:\001*\022\242\001\n\025Strea"
+          + "mingDetectIntent\022@.google.cloud.dialogfl"
+          + "ow.cx.v3beta1.StreamingDetectIntentReque"
+          + "st\032A.google.cloud.dialogflow.cx.v3beta1."
+          + "StreamingDetectIntentResponse\"\000(\0010\001\022\265\002\n\013"
+          + "MatchIntent\0226.google.cloud.dialogflow.cx"
+          + ".v3beta1.MatchIntentRequest\0327.google.clo"
+          + "ud.dialogflow.cx.v3beta1.MatchIntentResp"
+          + "onse\"\264\001\202\323\344\223\002\255\001\"I/v3beta1/{session=projec"
+          + "ts/*/locations/*/agents/*/sessions/*}:ma"
+          + "tchIntent:\001*Z]\"X/v3beta1/{session=projec"
+          + "ts/*/locations/*/agents/*/environments/*"
+          + "/sessions/*}:matchIntent:\001*\022\351\002\n\rFulfillI"
+          + "ntent\0228.google.cloud.dialogflow.cx.v3bet"
+          + "a1.FulfillIntentRequest\0329.google.cloud.d"
+          + "ialogflow.cx.v3beta1.FulfillIntentRespon"
+          + "se\"\342\001\202\323\344\223\002\333\001\"`/v3beta1/{match_intent_req"
+          + "uest.session=projects/*/locations/*/agen"
+          + "ts/*/sessions/*}:fulfillIntent:\001*Zt\"o/v3"
+          + "beta1/{match_intent_request.session=proj"
+          + "ects/*/locations/*/agents/*/environments"
+          + "/*/sessions/*}:fulfillIntent:\001*\032x\312A\031dial"
+          + "ogflow.googleapis.com\322AYhttps://www.goog"
+          + "leapis.com/auth/cloud-platform,https://w"
+          + "ww.googleapis.com/auth/dialogflowB\203\003\n&co"
+          + "m.google.cloud.dialogflow.cx.v3beta1B\014Se"
+          + "ssionProtoP\001ZDgoogle.golang.org/genproto"
+          + "/googleapis/cloud/dialogflow/cx/v3beta1;"
+          + "cx\370\001\001\242\002\002DF\252\002\"Google.Cloud.Dialogflow.Cx."
+          + "V3Beta1\352A\324\001\n!dialogflow.googleapis.com/S"
+          + "ession\022Iprojects/{project}/locations/{lo"
+          + "cation}/agents/{agent}/sessions/{session"
+          + "}\022dprojects/{project}/locations/{locatio"
+          + "n}/agents/{agent}/environments/{environm"
+          + "ent}/sessions/{session}b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
             descriptorData,
             new com.google.protobuf.Descriptors.FileDescriptor[] {
               com.google.api.AnnotationsProto.getDescriptor(),
+              com.google.api.ClientProto.getDescriptor(),
               com.google.api.FieldBehaviorProto.getDescriptor(),
               com.google.api.ResourceProto.getDescriptor(),
               com.google.cloud.dialogflow.cx.v3beta1.AudioConfigProto.getDescriptor(),
@@ -270,7 +279,6 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               com.google.protobuf.StructProto.getDescriptor(),
               com.google.rpc.StatusProto.getDescriptor(),
               com.google.type.LatLngProto.getDescriptor(),
-              com.google.api.ClientProto.getDescriptor(),
             });
     internal_static_google_cloud_dialogflow_cx_v3beta1_DetectIntentRequest_descriptor =
         getDescriptor().getMessageTypes().get(0);
@@ -431,6 +439,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
         descriptor, registry);
     com.google.api.AnnotationsProto.getDescriptor();
+    com.google.api.ClientProto.getDescriptor();
     com.google.api.FieldBehaviorProto.getDescriptor();
     com.google.api.ResourceProto.getDescriptor();
     com.google.cloud.dialogflow.cx.v3beta1.AudioConfigProto.getDescriptor();
@@ -442,7 +451,6 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     com.google.protobuf.StructProto.getDescriptor();
     com.google.rpc.StatusProto.getDescriptor();
     com.google.type.LatLngProto.getDescriptor();
-    com.google.api.ClientProto.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SpeechModelVariant.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SpeechModelVariant.java
index 12ee4584a..285dd6d4c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SpeechModelVariant.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/SpeechModelVariant.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * Variant of the specified [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+ * Variant of the specified [Speech
+ * model][google.cloud.dialogflow.cx.v3beta1.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
@@ -77,8 +78,8 @@ public enum SpeechModelVariant implements com.google.protobuf.ProtocolMessageEnu
    * <pre>
    * Use an enhanced model variant:
    * * If an enhanced variant does not exist for the given
-   *   [model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] and request language, Dialogflow falls
-   *   back to the standard variant.
+   *   [model][google.cloud.dialogflow.cx.v3beta1.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.
@@ -138,8 +139,8 @@ public enum SpeechModelVariant implements com.google.protobuf.ProtocolMessageEnu
    * <pre>
    * Use an enhanced model variant:
    * * If an enhanced variant does not exist for the given
-   *   [model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] and request language, Dialogflow falls
-   *   back to the standard variant.
+   *   [model][google.cloud.dialogflow.cx.v3beta1.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.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingDetectIntentRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingDetectIntentRequest.java
index dca0c6d31..8403c0715 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingDetectIntentRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingDetectIntentRequest.java
@@ -23,21 +23,26 @@
  *
  * <pre>
  * The top-level message sent by the client to the
- * [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent] method.
+ * [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent]
+ * method.
  * Multiple request messages should be sent in order:
  * 1.  The first message must contain
  * [session][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.session],
- *     [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input] plus optionally
- *     [query_params][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_params]. If the client
- *     wants to receive an audio response, it should also contain
+ *     [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input]
+ *     plus optionally
+ *     [query_params][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_params].
+ *     If the client wants to receive an audio response, it should also contain
  *     [output_audio_config][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.output_audio_config].
- * 2.  If [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input] was set to
- *     [query_input.audio.config][google.cloud.dialogflow.cx.v3beta1.AudioInput.config], all subsequent messages
- *     must contain [query_input.audio.audio][google.cloud.dialogflow.cx.v3beta1.AudioInput.audio] to continue with
- *     Speech recognition.
- *     If you decide to rather detect an intent from text
- *     input after you already started Speech recognition, please send a message
- *     with [query_input.text][google.cloud.dialogflow.cx.v3beta1.QueryInput.text].
+ * 2.  If
+ * [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input]
+ * was set to
+ *     [query_input.audio.config][google.cloud.dialogflow.cx.v3beta1.AudioInput.config],
+ *     all subsequent messages must contain
+ *     [query_input.audio.audio][google.cloud.dialogflow.cx.v3beta1.AudioInput.audio]
+ *     to continue with Speech recognition. If you decide to rather detect an
+ *     intent from text input after you already started Speech recognition,
+ *     please send a message with
+ *     [query_input.text][google.cloud.dialogflow.cx.v3beta1.QueryInput.text].
  *     However, note that:
  *     * Dialogflow will bill you for the audio duration so far.
  *     * Dialogflow discards all Speech recognition results in favor of the
@@ -191,7 +196,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * <pre>
    * The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -220,7 +228,10 @@ public java.lang.String getSession() {
    * <pre>
    * The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -603,21 +614,26 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    * <pre>
    * The top-level message sent by the client to the
-   * [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent] method.
+   * [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent]
+   * method.
    * Multiple request messages should be sent in order:
    * 1.  The first message must contain
    * [session][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.session],
-   *     [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input] plus optionally
-   *     [query_params][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_params]. If the client
-   *     wants to receive an audio response, it should also contain
+   *     [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input]
+   *     plus optionally
+   *     [query_params][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_params].
+   *     If the client wants to receive an audio response, it should also contain
    *     [output_audio_config][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.output_audio_config].
-   * 2.  If [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input] was set to
-   *     [query_input.audio.config][google.cloud.dialogflow.cx.v3beta1.AudioInput.config], all subsequent messages
-   *     must contain [query_input.audio.audio][google.cloud.dialogflow.cx.v3beta1.AudioInput.audio] to continue with
-   *     Speech recognition.
-   *     If you decide to rather detect an intent from text
-   *     input after you already started Speech recognition, please send a message
-   *     with [query_input.text][google.cloud.dialogflow.cx.v3beta1.QueryInput.text].
+   * 2.  If
+   * [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input]
+   * was set to
+   *     [query_input.audio.config][google.cloud.dialogflow.cx.v3beta1.AudioInput.config],
+   *     all subsequent messages must contain
+   *     [query_input.audio.audio][google.cloud.dialogflow.cx.v3beta1.AudioInput.audio]
+   *     to continue with Speech recognition. If you decide to rather detect an
+   *     intent from text input after you already started Speech recognition,
+   *     please send a message with
+   *     [query_input.text][google.cloud.dialogflow.cx.v3beta1.QueryInput.text].
    *     However, note that:
    *     * Dialogflow will bill you for the audio duration so far.
    *     * Dialogflow discards all Speech recognition results in favor of the
@@ -834,7 +850,10 @@ public Builder mergeFrom(
      * <pre>
      * The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -862,7 +881,10 @@ public java.lang.String getSession() {
      * <pre>
      * The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -890,7 +912,10 @@ public com.google.protobuf.ByteString getSessionBytes() {
      * <pre>
      * The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -917,7 +942,10 @@ public Builder setSession(java.lang.String value) {
      * <pre>
      * The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
@@ -940,7 +968,10 @@ public Builder clearSession() {
      * <pre>
      * The name of the session this query is sent to.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+     * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+     * If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * It's up to the API caller to choose an appropriate `Session ID`. It can be
      * a random number or some type of session identifiers (preferably hashed).
      * The length of the `Session ID` must not exceed 36 characters.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingDetectIntentRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingDetectIntentRequestOrBuilder.java
index fbb614139..789c8d28c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingDetectIntentRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingDetectIntentRequestOrBuilder.java
@@ -29,7 +29,10 @@ public interface StreamingDetectIntentRequestOrBuilder
    * <pre>
    * The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
@@ -47,7 +50,10 @@ public interface StreamingDetectIntentRequestOrBuilder
    * <pre>
    * The name of the session this query is sent to.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
+   * ID&gt;/agents/&lt;Agent ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;`.
+   * If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * It's up to the API caller to choose an appropriate `Session ID`. It can be
    * a random number or some type of session identifiers (preferably hashed).
    * The length of the `Session ID` must not exceed 36 characters.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingRecognitionResult.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingRecognitionResult.java
index 2b7cea14d..5867a9d5b 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingRecognitionResult.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingRecognitionResult.java
@@ -227,8 +227,8 @@ public enum MessageType implements com.google.protobuf.ProtocolMessageEnum {
      * additional results). The client should stop sending additional audio
      * data, half-close the gRPC connection, and wait for any additional results
      * until the server closes the gRPC connection. This message is only sent if
-     * [`single_utterance`][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.single_utterance] was set to
-     * `true`, and is not used otherwise.
+     * [`single_utterance`][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.single_utterance]
+     * was set to `true`, and is not used otherwise.
      * </pre>
      *
      * <code>END_OF_SINGLE_UTTERANCE = 2;</code>
@@ -267,8 +267,8 @@ public enum MessageType implements com.google.protobuf.ProtocolMessageEnum {
      * additional results). The client should stop sending additional audio
      * data, half-close the gRPC connection, and wait for any additional results
      * until the server closes the gRPC connection. This message is only sent if
-     * [`single_utterance`][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.single_utterance] was set to
-     * `true`, and is not used otherwise.
+     * [`single_utterance`][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.single_utterance]
+     * was set to `true`, and is not used otherwise.
      * </pre>
      *
      * <code>END_OF_SINGLE_UTTERANCE = 2;</code>
@@ -530,7 +530,8 @@ public float getStability() {
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -546,7 +547,8 @@ public float getStability() {
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -562,7 +564,8 @@ public float getStability() {
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -577,7 +580,8 @@ public int getSpeechWordInfoCount() {
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -592,7 +596,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo getSpeechWordInfo(i
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -1595,7 +1600,8 @@ private void ensureSpeechWordInfoIsMutable() {
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1615,7 +1621,8 @@ private void ensureSpeechWordInfoIsMutable() {
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1634,7 +1641,8 @@ public int getSpeechWordInfoCount() {
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1653,7 +1661,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo getSpeechWordInfo(i
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1679,7 +1688,8 @@ public Builder setSpeechWordInfo(
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1702,7 +1712,8 @@ public Builder setSpeechWordInfo(
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1727,7 +1738,8 @@ public Builder addSpeechWordInfo(com.google.cloud.dialogflow.cx.v3beta1.SpeechWo
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1753,7 +1765,8 @@ public Builder addSpeechWordInfo(
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1776,7 +1789,8 @@ public Builder addSpeechWordInfo(
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1799,7 +1813,8 @@ public Builder addSpeechWordInfo(
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1823,7 +1838,8 @@ public Builder addAllSpeechWordInfo(
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1845,7 +1861,8 @@ public Builder clearSpeechWordInfo() {
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1867,7 +1884,8 @@ public Builder removeSpeechWordInfo(int index) {
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1883,7 +1901,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo.Builder getSpeechWo
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1903,7 +1922,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo.Builder getSpeechWo
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1923,7 +1943,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo.Builder getSpeechWo
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1940,7 +1961,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo.Builder getSpeechWo
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
@@ -1958,7 +1980,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo.Builder addSpeechWo
      *
      * <pre>
      * Word-specific information for the words recognized by Speech in
-     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+     * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+     * Populated if and only if `message_type` = `TRANSCRIPT` and
      * [InputAudioConfig.enable_word_info] is set.
      * </pre>
      *
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingRecognitionResultOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingRecognitionResultOrBuilder.java
index c661fa7cb..95f0fe243 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingRecognitionResultOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/StreamingRecognitionResultOrBuilder.java
@@ -137,7 +137,8 @@ public interface StreamingRecognitionResultOrBuilder
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -149,7 +150,8 @@ public interface StreamingRecognitionResultOrBuilder
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -161,7 +163,8 @@ public interface StreamingRecognitionResultOrBuilder
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -173,7 +176,8 @@ public interface StreamingRecognitionResultOrBuilder
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
@@ -186,7 +190,8 @@ public interface StreamingRecognitionResultOrBuilder
    *
    * <pre>
    * Word-specific information for the words recognized by Speech in
-   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+   * [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+   * Populated if and only if `message_type` = `TRANSCRIPT` and
    * [InputAudioConfig.enable_word_info] is set.
    * </pre>
    *
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TextInput.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TextInput.java
index b009a8614..9d1d32959 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TextInput.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TextInput.java
@@ -117,8 +117,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The UTF-8 encoded natural language text to be processed. Text length must
-   * not exceed 256 characters.
+   * Required. The UTF-8 encoded natural language text to be processed. Text
+   * length must not exceed 256 characters.
    * </pre>
    *
    * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -141,8 +141,8 @@ public java.lang.String getText() {
    *
    *
    * <pre>
-   * Required. The UTF-8 encoded natural language text to be processed. Text length must
-   * not exceed 256 characters.
+   * Required. The UTF-8 encoded natural language text to be processed. Text
+   * length must not exceed 256 characters.
    * </pre>
    *
    * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -484,8 +484,8 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The UTF-8 encoded natural language text to be processed. Text length must
-     * not exceed 256 characters.
+     * Required. The UTF-8 encoded natural language text to be processed. Text
+     * length must not exceed 256 characters.
      * </pre>
      *
      * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -507,8 +507,8 @@ public java.lang.String getText() {
      *
      *
      * <pre>
-     * Required. The UTF-8 encoded natural language text to be processed. Text length must
-     * not exceed 256 characters.
+     * Required. The UTF-8 encoded natural language text to be processed. Text
+     * length must not exceed 256 characters.
      * </pre>
      *
      * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -530,8 +530,8 @@ public com.google.protobuf.ByteString getTextBytes() {
      *
      *
      * <pre>
-     * Required. The UTF-8 encoded natural language text to be processed. Text length must
-     * not exceed 256 characters.
+     * Required. The UTF-8 encoded natural language text to be processed. Text
+     * length must not exceed 256 characters.
      * </pre>
      *
      * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -552,8 +552,8 @@ public Builder setText(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The UTF-8 encoded natural language text to be processed. Text length must
-     * not exceed 256 characters.
+     * Required. The UTF-8 encoded natural language text to be processed. Text
+     * length must not exceed 256 characters.
      * </pre>
      *
      * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -570,8 +570,8 @@ public Builder clearText() {
      *
      *
      * <pre>
-     * Required. The UTF-8 encoded natural language text to be processed. Text length must
-     * not exceed 256 characters.
+     * Required. The UTF-8 encoded natural language text to be processed. Text
+     * length must not exceed 256 characters.
      * </pre>
      *
      * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TextInputOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TextInputOrBuilder.java
index 7d37f79d6..3ad28d61b 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TextInputOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TextInputOrBuilder.java
@@ -27,8 +27,8 @@ public interface TextInputOrBuilder
    *
    *
    * <pre>
-   * Required. The UTF-8 encoded natural language text to be processed. Text length must
-   * not exceed 256 characters.
+   * Required. The UTF-8 encoded natural language text to be processed. Text
+   * length must not exceed 256 characters.
    * </pre>
    *
    * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -40,8 +40,8 @@ public interface TextInputOrBuilder
    *
    *
    * <pre>
-   * Required. The UTF-8 encoded natural language text to be processed. Text length must
-   * not exceed 256 characters.
+   * Required. The UTF-8 encoded natural language text to be processed. Text
+   * length must not exceed 256 characters.
    * </pre>
    *
    * <code>string text = 1 [(.google.api.field_behavior) = REQUIRED];</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TrainFlowRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TrainFlowRequest.java
index e66662a01..01d9b8644 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TrainFlowRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TrainFlowRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Flows.TrainFlow][google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow].
+ * The request message for
+ * [Flows.TrainFlow][google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.TrainFlowRequest}
@@ -332,7 +333,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Flows.TrainFlow][google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow].
+   * The request message for
+   * [Flows.TrainFlow][google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.TrainFlowRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TransitionRoute.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TransitionRoute.java
index dd1ac09e8..f7f882e3c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TransitionRoute.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TransitionRoute.java
@@ -22,16 +22,21 @@
  *
  *
  * <pre>
- * A transition route specifies a [intent][google.cloud.dialogflow.cx.v3beta1.Intent] that can be matched and/or a
- * data condition that can be evaluated during a session. When a specified
- * transition is matched, the following actions are taken in order:
+ * A transition route specifies a
+ * [intent][google.cloud.dialogflow.cx.v3beta1.Intent] that can be matched
+ * and/or a data condition that can be evaluated during a session. When a
+ * specified transition is matched, the following actions are taken in order:
  * *   If there is a
- * [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.trigger_fulfillment] associated with
- * the transition, it will be called.
- * *   If there is a [`target_page`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_page] associated
- * with the transition, the session will transition into the specified page.
- * *   If there is a [`target_flow`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_flow] associated
- * with the transition, the session will transition into the specified flow.
+ * [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.trigger_fulfillment]
+ * associated with the transition, it will be called.
+ * *   If there is a
+ * [`target_page`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_page]
+ * associated with the transition, the session will transition into the
+ * specified page.
+ * *   If there is a
+ * [`target_flow`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_flow]
+ * associated with the transition, the session will transition into the
+ * specified flow.
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.TransitionRoute}
@@ -269,8 +274,9 @@ public com.google.protobuf.ByteString getNameBytes() {
    *
    *
    * <pre>
-   * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * The unique identifier of an
+   * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * Indicates that the transition can only happen when the given intent is
    * matched.
@@ -299,8 +305,9 @@ public java.lang.String getIntent() {
    *
    *
    * <pre>
-   * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * The unique identifier of an
+   * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * Indicates that the transition can only happen when the given intent is
    * matched.
@@ -332,8 +339,9 @@ public com.google.protobuf.ByteString getIntentBytes() {
    *
    *
    * <pre>
-   * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-   * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The condition to evaluate against [form
+   * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * See the [conditions
    * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    * At least one of `intent` or `condition` must be specified. When both
@@ -361,8 +369,9 @@ public java.lang.String getCondition() {
    *
    *
    * <pre>
-   * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-   * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The condition to evaluate against [form
+   * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * See the [conditions
    * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    * At least one of `intent` or `condition` must be specified. When both
@@ -793,16 +802,21 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * A transition route specifies a [intent][google.cloud.dialogflow.cx.v3beta1.Intent] that can be matched and/or a
-   * data condition that can be evaluated during a session. When a specified
-   * transition is matched, the following actions are taken in order:
+   * A transition route specifies a
+   * [intent][google.cloud.dialogflow.cx.v3beta1.Intent] that can be matched
+   * and/or a data condition that can be evaluated during a session. When a
+   * specified transition is matched, the following actions are taken in order:
+   * *   If there is a
+   * [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.trigger_fulfillment]
+   * associated with the transition, it will be called.
+   * *   If there is a
+   * [`target_page`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_page]
+   * associated with the transition, the session will transition into the
+   * specified page.
    * *   If there is a
-   * [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.trigger_fulfillment] associated with
-   * the transition, it will be called.
-   * *   If there is a [`target_page`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_page] associated
-   * with the transition, the session will transition into the specified page.
-   * *   If there is a [`target_flow`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_flow] associated
-   * with the transition, the session will transition into the specified flow.
+   * [`target_flow`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_flow]
+   * associated with the transition, the session will transition into the
+   * specified flow.
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.TransitionRoute}
@@ -1139,8 +1153,9 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * The unique identifier of an
+     * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * Indicates that the transition can only happen when the given intent is
      * matched.
@@ -1168,8 +1183,9 @@ public java.lang.String getIntent() {
      *
      *
      * <pre>
-     * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * The unique identifier of an
+     * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * Indicates that the transition can only happen when the given intent is
      * matched.
@@ -1197,8 +1213,9 @@ public com.google.protobuf.ByteString getIntentBytes() {
      *
      *
      * <pre>
-     * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * The unique identifier of an
+     * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * Indicates that the transition can only happen when the given intent is
      * matched.
@@ -1225,8 +1242,9 @@ public Builder setIntent(java.lang.String value) {
      *
      *
      * <pre>
-     * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * The unique identifier of an
+     * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * Indicates that the transition can only happen when the given intent is
      * matched.
@@ -1249,8 +1267,9 @@ public Builder clearIntent() {
      *
      *
      * <pre>
-     * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * The unique identifier of an
+     * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * Indicates that the transition can only happen when the given intent is
      * matched.
@@ -1280,8 +1299,9 @@ public Builder setIntentBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-     * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The condition to evaluate against [form
+     * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * See the [conditions
      * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
      * At least one of `intent` or `condition` must be specified. When both
@@ -1308,8 +1328,9 @@ public java.lang.String getCondition() {
      *
      *
      * <pre>
-     * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-     * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The condition to evaluate against [form
+     * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * See the [conditions
      * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
      * At least one of `intent` or `condition` must be specified. When both
@@ -1336,8 +1357,9 @@ public com.google.protobuf.ByteString getConditionBytes() {
      *
      *
      * <pre>
-     * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-     * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The condition to evaluate against [form
+     * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * See the [conditions
      * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
      * At least one of `intent` or `condition` must be specified. When both
@@ -1363,8 +1385,9 @@ public Builder setCondition(java.lang.String value) {
      *
      *
      * <pre>
-     * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-     * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The condition to evaluate against [form
+     * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * See the [conditions
      * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
      * At least one of `intent` or `condition` must be specified. When both
@@ -1386,8 +1409,9 @@ public Builder clearCondition() {
      *
      *
      * <pre>
-     * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-     * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+     * The condition to evaluate against [form
+     * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+     * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
      * See the [conditions
      * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
      * At least one of `intent` or `condition` must be specified. When both
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TransitionRouteOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TransitionRouteOrBuilder.java
index cb0c51c47..a4f34ee0a 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TransitionRouteOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/TransitionRouteOrBuilder.java
@@ -52,8 +52,9 @@ public interface TransitionRouteOrBuilder
    *
    *
    * <pre>
-   * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * The unique identifier of an
+   * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * Indicates that the transition can only happen when the given intent is
    * matched.
@@ -71,8 +72,9 @@ public interface TransitionRouteOrBuilder
    *
    *
    * <pre>
-   * The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * The unique identifier of an
+   * [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * Indicates that the transition can only happen when the given intent is
    * matched.
@@ -91,8 +93,9 @@ public interface TransitionRouteOrBuilder
    *
    *
    * <pre>
-   * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-   * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The condition to evaluate against [form
+   * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * See the [conditions
    * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    * At least one of `intent` or `condition` must be specified. When both
@@ -109,8 +112,9 @@ public interface TransitionRouteOrBuilder
    *
    *
    * <pre>
-   * The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-   * [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+   * The condition to evaluate against [form
+   * parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+   * parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
    * See the [conditions
    * reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    * At least one of `intent` or `condition` must be specified. When both
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateEntityTypeRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateEntityTypeRequest.java
index ff393d694..88f851a73 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateEntityTypeRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateEntityTypeRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+ * The request message for
+ * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdateEntityTypeRequest}
@@ -500,7 +501,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+   * The request message for
+   * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdateEntityTypeRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateFlowRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateFlowRequest.java
index e410f4d33..45b015545 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateFlowRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateFlowRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Flows.UpdateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow].
+ * The request message for
+ * [Flows.UpdateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest}
@@ -200,8 +201,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.FlowOrBuilder getFlowOrBuilder() {
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. If `update_mask` is not
-   * specified, an error will be returned.
+   * Required. The mask to control which fields get updated. If `update_mask` is
+   * not specified, an error will be returned.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -217,8 +218,8 @@ public boolean hasUpdateMask() {
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. If `update_mask` is not
-   * specified, an error will be returned.
+   * Required. The mask to control which fields get updated. If `update_mask` is
+   * not specified, an error will be returned.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -234,8 +235,8 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. If `update_mask` is not
-   * specified, an error will be returned.
+   * Required. The mask to control which fields get updated. If `update_mask` is
+   * not specified, an error will be returned.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -501,7 +502,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Flows.UpdateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow].
+   * The request message for
+   * [Flows.UpdateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest}
@@ -897,8 +899,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.FlowOrBuilder getFlowOrBuilder() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -913,8 +915,8 @@ public boolean hasUpdateMask() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -935,8 +937,8 @@ public com.google.protobuf.FieldMask getUpdateMask() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -959,8 +961,8 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -980,8 +982,8 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -1006,8 +1008,8 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -1028,8 +1030,8 @@ public Builder clearUpdateMask() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -1044,8 +1046,8 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -1064,8 +1066,8 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. If `update_mask` is not
-     * specified, an error will be returned.
+     * Required. The mask to control which fields get updated. If `update_mask` is
+     * not specified, an error will be returned.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateFlowRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateFlowRequestOrBuilder.java
index 7b31b182d..2247c1c6c 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateFlowRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateFlowRequestOrBuilder.java
@@ -68,8 +68,8 @@ public interface UpdateFlowRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. If `update_mask` is not
-   * specified, an error will be returned.
+   * Required. The mask to control which fields get updated. If `update_mask` is
+   * not specified, an error will be returned.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -82,8 +82,8 @@ public interface UpdateFlowRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. If `update_mask` is not
-   * specified, an error will be returned.
+   * Required. The mask to control which fields get updated. If `update_mask` is
+   * not specified, an error will be returned.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -96,8 +96,8 @@ public interface UpdateFlowRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. If `update_mask` is not
-   * specified, an error will be returned.
+   * Required. The mask to control which fields get updated. If `update_mask` is
+   * not specified, an error will be returned.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdatePageRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdatePageRequest.java
index 87ffc31cb..6f5f60ca3 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdatePageRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdatePageRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage].
+ * The request message for
+ * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdatePageRequest}
@@ -204,7 +205,7 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageOrBuilder getPageOrBuilder() {
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -238,7 +239,7 @@ public java.lang.String getLanguageCode() {
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -506,7 +507,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage].
+   * The request message for
+   * [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdatePageRequest}
@@ -901,7 +903,7 @@ public com.google.cloud.dialogflow.cx.v3beta1.PageOrBuilder getPageOrBuilder() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -934,7 +936,7 @@ public java.lang.String getLanguageCode() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -967,7 +969,7 @@ public com.google.protobuf.ByteString getLanguageCodeBytes() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -999,7 +1001,7 @@ public Builder setLanguageCode(java.lang.String value) {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
@@ -1027,7 +1029,7 @@ public Builder clearLanguageCode() {
      * *  `Page.entry_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
      * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-     * *  `Page.transition_route.trigger_fulfillment.messages`
+     * *  `Page.transition_routes.trigger_fulfillment.messages`
      * *
      * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
      * If not specified, the agent's default language is used.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdatePageRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdatePageRequestOrBuilder.java
index fc7bb633d..8dfc21231 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdatePageRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdatePageRequestOrBuilder.java
@@ -72,7 +72,7 @@ public interface UpdatePageRequestOrBuilder
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
@@ -95,7 +95,7 @@ public interface UpdatePageRequestOrBuilder
    * *  `Page.entry_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
    * *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-   * *  `Page.transition_route.trigger_fulfillment.messages`
+   * *  `Page.transition_routes.trigger_fulfillment.messages`
    * *
    * `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
    * If not specified, the agent's default language is used.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateSessionEntityTypeRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateSessionEntityTypeRequest.java
index b80234224..cb5277818 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateSessionEntityTypeRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateSessionEntityTypeRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [SessionEntityTypes.UpdateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.UpdateSessionEntityType].
+ * The request message for
+ * [SessionEntityTypes.UpdateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.UpdateSessionEntityType].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdateSessionEntityTypeRequest}
@@ -143,7 +144,11 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * <pre>
    * Required. The session entity type to update.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -162,7 +167,11 @@ public boolean hasSessionEntityType() {
    * <pre>
    * Required. The session entity type to update.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -183,7 +192,11 @@ public com.google.cloud.dialogflow.cx.v3beta1.SessionEntityType getSessionEntity
    * <pre>
    * Required. The session entity type to update.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -426,7 +439,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [SessionEntityTypes.UpdateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.UpdateSessionEntityType].
+   * The request message for
+   * [SessionEntityTypes.UpdateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.UpdateSessionEntityType].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdateSessionEntityTypeRequest}
@@ -621,7 +635,11 @@ public Builder mergeFrom(
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -639,7 +657,11 @@ public boolean hasSessionEntityType() {
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -663,7 +685,11 @@ public com.google.cloud.dialogflow.cx.v3beta1.SessionEntityType getSessionEntity
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -690,7 +716,11 @@ public Builder setSessionEntityType(
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -714,7 +744,11 @@ public Builder setSessionEntityType(
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -746,7 +780,11 @@ public Builder mergeSessionEntityType(
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -770,7 +808,11 @@ public Builder clearSessionEntityType() {
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -789,7 +831,11 @@ public Builder clearSessionEntityType() {
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
@@ -812,7 +858,11 @@ public Builder clearSessionEntityType() {
      * <pre>
      * Required. The session entity type to update.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+     * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+     * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+     * environment.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateSessionEntityTypeRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateSessionEntityTypeRequestOrBuilder.java
index e971b66ce..a5b2fb0c1 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateSessionEntityTypeRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateSessionEntityTypeRequestOrBuilder.java
@@ -29,7 +29,11 @@ public interface UpdateSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The session entity type to update.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -45,7 +49,11 @@ public interface UpdateSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The session entity type to update.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
@@ -61,7 +69,11 @@ public interface UpdateSessionEntityTypeRequestOrBuilder
    * <pre>
    * Required. The session entity type to update.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;`.
+   * ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity Type ID&gt;` or
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * ID&gt;/environments/&lt;Environment ID&gt;/sessions/&lt;Session ID&gt;/entityTypes/&lt;Entity
+   * Type ID&gt;`. If `Environment ID` is not specified, we assume default 'draft'
+   * environment.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateWebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateWebhookRequest.java
index f1f9b3d16..a69580718 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateWebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/UpdateWebhookRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook].
+ * The request message for
+ * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdateWebhookRequest}
@@ -419,7 +420,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook].
+   * The request message for
+   * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3beta1.UpdateWebhookRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/VoiceSelectionParams.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/VoiceSelectionParams.java
index f03e09502..7481f2730 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/VoiceSelectionParams.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/VoiceSelectionParams.java
@@ -180,9 +180,10 @@ public com.google.protobuf.ByteString getNameBytes() {
    * <pre>
    * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-   * voice of the appropriate gender is not available, the synthesizer should
-   * substitute a voice with a different gender rather than failing the request.
+   * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+   * that this is only a preference, not requirement. If a voice of the
+   * appropriate gender is not available, the synthesizer should substitute a
+   * voice with a different gender rather than failing the request.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
@@ -199,9 +200,10 @@ public int getSsmlGenderValue() {
    * <pre>
    * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-   * voice of the appropriate gender is not available, the synthesizer should
-   * substitute a voice with a different gender rather than failing the request.
+   * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+   * that this is only a preference, not requirement. If a voice of the
+   * appropriate gender is not available, the synthesizer should substitute a
+   * voice with a different gender rather than failing the request.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
@@ -679,9 +681,10 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
      * <pre>
      * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-     * voice of the appropriate gender is not available, the synthesizer should
-     * substitute a voice with a different gender rather than failing the request.
+     * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+     * that this is only a preference, not requirement. If a voice of the
+     * appropriate gender is not available, the synthesizer should substitute a
+     * voice with a different gender rather than failing the request.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
@@ -698,9 +701,10 @@ public int getSsmlGenderValue() {
      * <pre>
      * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-     * voice of the appropriate gender is not available, the synthesizer should
-     * substitute a voice with a different gender rather than failing the request.
+     * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+     * that this is only a preference, not requirement. If a voice of the
+     * appropriate gender is not available, the synthesizer should substitute a
+     * voice with a different gender rather than failing the request.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
@@ -720,9 +724,10 @@ public Builder setSsmlGenderValue(int value) {
      * <pre>
      * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-     * voice of the appropriate gender is not available, the synthesizer should
-     * substitute a voice with a different gender rather than failing the request.
+     * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+     * that this is only a preference, not requirement. If a voice of the
+     * appropriate gender is not available, the synthesizer should substitute a
+     * voice with a different gender rather than failing the request.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
@@ -744,9 +749,10 @@ public com.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender getSsmlGender() {
      * <pre>
      * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-     * voice of the appropriate gender is not available, the synthesizer should
-     * substitute a voice with a different gender rather than failing the request.
+     * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+     * that this is only a preference, not requirement. If a voice of the
+     * appropriate gender is not available, the synthesizer should substitute a
+     * voice with a different gender rather than failing the request.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
@@ -769,9 +775,10 @@ public Builder setSsmlGender(com.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGen
      * <pre>
      * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-     * voice of the appropriate gender is not available, the synthesizer should
-     * substitute a voice with a different gender rather than failing the request.
+     * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+     * that this is only a preference, not requirement. If a voice of the
+     * appropriate gender is not available, the synthesizer should substitute a
+     * voice with a different gender rather than failing the request.
      * </pre>
      *
      * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/VoiceSelectionParamsOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/VoiceSelectionParamsOrBuilder.java
index 4ab2d9bc3..ec70d48e3 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/VoiceSelectionParamsOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/VoiceSelectionParamsOrBuilder.java
@@ -58,9 +58,10 @@ public interface VoiceSelectionParamsOrBuilder
    * <pre>
    * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-   * voice of the appropriate gender is not available, the synthesizer should
-   * substitute a voice with a different gender rather than failing the request.
+   * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+   * that this is only a preference, not requirement. If a voice of the
+   * appropriate gender is not available, the synthesizer should substitute a
+   * voice with a different gender rather than failing the request.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
@@ -74,9 +75,10 @@ public interface VoiceSelectionParamsOrBuilder
    * <pre>
    * 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-   * voice of the appropriate gender is not available, the synthesizer should
-   * substitute a voice with a different gender rather than failing the request.
+   * [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+   * that this is only a preference, not requirement. If a voice of the
+   * appropriate gender is not available, the synthesizer should substitute a
+   * voice with a different gender rather than failing the request.
    * </pre>
    *
    * <code>.google.cloud.dialogflow.cx.v3beta1.SsmlVoiceGender ssml_gender = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Webhook.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Webhook.java
index ca9061ccd..52b5b02cc 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Webhook.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/Webhook.java
@@ -172,7 +172,8 @@ public interface GenericWebServiceOrBuilder
      *
      *
      * <pre>
-     * Required. The webhook URI for receiving POST requests. It must use https protocol.
+     * Required. The webhook URI for receiving POST requests. It must use https
+     * protocol.
      * </pre>
      *
      * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -184,7 +185,8 @@ public interface GenericWebServiceOrBuilder
      *
      *
      * <pre>
-     * Required. The webhook URI for receiving POST requests. It must use https protocol.
+     * Required. The webhook URI for receiving POST requests. It must use https
+     * protocol.
      * </pre>
      *
      * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -451,7 +453,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
      *
      *
      * <pre>
-     * Required. The webhook URI for receiving POST requests. It must use https protocol.
+     * Required. The webhook URI for receiving POST requests. It must use https
+     * protocol.
      * </pre>
      *
      * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -474,7 +477,8 @@ public java.lang.String getUri() {
      *
      *
      * <pre>
-     * Required. The webhook URI for receiving POST requests. It must use https protocol.
+     * Required. The webhook URI for receiving POST requests. It must use https
+     * protocol.
      * </pre>
      *
      * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1113,7 +1117,8 @@ public Builder mergeFrom(
        *
        *
        * <pre>
-       * Required. The webhook URI for receiving POST requests. It must use https protocol.
+       * Required. The webhook URI for receiving POST requests. It must use https
+       * protocol.
        * </pre>
        *
        * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1135,7 +1140,8 @@ public java.lang.String getUri() {
        *
        *
        * <pre>
-       * Required. The webhook URI for receiving POST requests. It must use https protocol.
+       * Required. The webhook URI for receiving POST requests. It must use https
+       * protocol.
        * </pre>
        *
        * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1157,7 +1163,8 @@ public com.google.protobuf.ByteString getUriBytes() {
        *
        *
        * <pre>
-       * Required. The webhook URI for receiving POST requests. It must use https protocol.
+       * Required. The webhook URI for receiving POST requests. It must use https
+       * protocol.
        * </pre>
        *
        * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1178,7 +1185,8 @@ public Builder setUri(java.lang.String value) {
        *
        *
        * <pre>
-       * Required. The webhook URI for receiving POST requests. It must use https protocol.
+       * Required. The webhook URI for receiving POST requests. It must use https
+       * protocol.
        * </pre>
        *
        * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1195,7 +1203,8 @@ public Builder clearUri() {
        *
        *
        * <pre>
-       * Required. The webhook URI for receiving POST requests. It must use https protocol.
+       * Required. The webhook URI for receiving POST requests. It must use https
+       * protocol.
        * </pre>
        *
        * <code>string uri = 1 [(.google.api.field_behavior) = REQUIRED];</code>
@@ -1713,10 +1722,12 @@ public WebhookCase getWebhookCase() {
    *
    * <pre>
    * The unique identifier of the webhook.
-   * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+   * Required for the
+   * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+   * method.
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+   * populates the name automatically. Format: `projects/&lt;Project
+   * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -1740,10 +1751,12 @@ public java.lang.String getName() {
    *
    * <pre>
    * The unique identifier of the webhook.
-   * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+   * Required for the
+   * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+   * method.
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+   * populates the name automatically. Format: `projects/&lt;Project
+   * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -2381,10 +2394,12 @@ public Builder clearWebhook() {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+     * Required for the
+     * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+     * populates the name automatically. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -2407,10 +2422,12 @@ public java.lang.String getName() {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+     * Required for the
+     * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+     * populates the name automatically. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -2433,10 +2450,12 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+     * Required for the
+     * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+     * populates the name automatically. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -2458,10 +2477,12 @@ public Builder setName(java.lang.String value) {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+     * Required for the
+     * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+     * populates the name automatically. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -2479,10 +2500,12 @@ public Builder clearName() {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+     * Required for the
+     * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+     * populates the name automatically. Format: `projects/&lt;Project
+     * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
      * </pre>
      *
      * <code>string name = 1;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookOrBuilder.java
index d34f019a5..b726f4f8e 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookOrBuilder.java
@@ -28,10 +28,12 @@ public interface WebhookOrBuilder
    *
    * <pre>
    * The unique identifier of the webhook.
-   * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+   * Required for the
+   * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+   * method.
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+   * populates the name automatically. Format: `projects/&lt;Project
+   * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -44,10 +46,12 @@ public interface WebhookOrBuilder
    *
    * <pre>
    * The unique identifier of the webhook.
-   * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/webhooks/&lt;Webhook ID&gt;`.
+   * Required for the
+   * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+   * method.
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+   * populates the name automatically. Format: `projects/&lt;Project
+   * ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/webhooks/&lt;Webhook ID&gt;`.
    * </pre>
    *
    * <code>string name = 1;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookProto.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookProto.java
index f3351a60f..6fd4723aa 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookProto.java
@@ -159,103 +159,103 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "WebhookRequest\022A\n\007webhook\030\001 \001(\0132+.google"
           + ".cloud.dialogflow.cx.v3beta1.WebhookB\003\340A"
           + "\002\022/\n\013update_mask\030\002 \001(\0132\032.google.protobuf"
-          + ".FieldMask\"O\n\024DeleteWebhookRequest\0227\n\004na"
+          + ".FieldMask\"^\n\024DeleteWebhookRequest\0227\n\004na"
           + "me\030\001 \001(\tB)\340A\002\372A#\n!dialogflow.googleapis."
-          + "com/Webhook\"\234\007\n\016WebhookRequest\022!\n\031detect"
-          + "_intent_response_id\030\001 \001(\t\022\\\n\020fulfillment"
-          + "_info\030\006 \001(\0132B.google.cloud.dialogflow.cx"
-          + ".v3beta1.WebhookRequest.FulfillmentInfo\022"
-          + "R\n\013intent_info\030\003 \001(\0132=.google.cloud.dial"
-          + "ogflow.cx.v3beta1.WebhookRequest.IntentI"
-          + "nfo\022?\n\tpage_info\030\004 \001(\0132,.google.cloud.di"
-          + "alogflow.cx.v3beta1.PageInfo\022E\n\014session_"
-          + "info\030\005 \001(\0132/.google.cloud.dialogflow.cx."
-          + "v3beta1.SessionInfo\022E\n\010messages\030\007 \003(\01323."
-          + "google.cloud.dialogflow.cx.v3beta1.Respo"
-          + "nseMessage\022(\n\007payload\030\010 \001(\0132\027.google.pro"
-          + "tobuf.Struct\032\036\n\017FulfillmentInfo\022\013\n\003tag\030\001"
-          + " \001(\t\032\233\003\n\nIntentInfo\022B\n\023last_matched_inte"
-          + "nt\030\001 \001(\tB%\372A\"\n dialogflow.googleapis.com"
-          + "/Intent\022a\n\nparameters\030\002 \003(\0132M.google.clo"
-          + "ud.dialogflow.cx.v3beta1.WebhookRequest."
-          + "IntentInfo.ParametersEntry\032^\n\024IntentPara"
-          + "meterValue\022\026\n\016original_value\030\001 \001(\t\022.\n\016re"
-          + "solved_value\030\002 \001(\0132\026.google.protobuf.Val"
-          + "ue\032\205\001\n\017ParametersEntry\022\013\n\003key\030\001 \001(\t\022a\n\005v"
-          + "alue\030\002 \001(\0132R.google.cloud.dialogflow.cx."
-          + "v3beta1.WebhookRequest.IntentInfo.Intent"
-          + "ParameterValue:\0028\001\"\310\005\n\017WebhookResponse\022e"
-          + "\n\024fulfillment_response\030\001 \001(\0132G.google.cl"
-          + "oud.dialogflow.cx.v3beta1.WebhookRespons"
-          + "e.FulfillmentResponse\022?\n\tpage_info\030\002 \001(\013"
-          + "2,.google.cloud.dialogflow.cx.v3beta1.Pa"
-          + "geInfo\022E\n\014session_info\030\003 \001(\0132/.google.cl"
-          + "oud.dialogflow.cx.v3beta1.SessionInfo\022(\n"
-          + "\007payload\030\004 \001(\0132\027.google.protobuf.Struct\022"
-          + ":\n\013target_page\030\005 \001(\tB#\372A \n\036dialogflow.go"
-          + "ogleapis.com/PageH\000\022:\n\013target_flow\030\006 \001(\t"
-          + "B#\372A \n\036dialogflow.googleapis.com/FlowH\000\032"
-          + "\225\002\n\023FulfillmentResponse\022E\n\010messages\030\001 \003("
-          + "\01323.google.cloud.dialogflow.cx.v3beta1.R"
-          + "esponseMessage\022m\n\016merge_behavior\030\002 \001(\0162U"
-          + ".google.cloud.dialogflow.cx.v3beta1.Webh"
-          + "ookResponse.FulfillmentResponse.MergeBeh"
-          + "avior\"H\n\rMergeBehavior\022\036\n\032MERGE_BEHAVIOR"
-          + "_UNSPECIFIED\020\000\022\n\n\006APPEND\020\001\022\013\n\007REPLACE\020\002B"
-          + "\014\n\ntransition\"\254\004\n\010PageInfo\0229\n\014current_pa"
-          + "ge\030\001 \001(\tB#\372A \n\036dialogflow.googleapis.com"
-          + "/Page\022H\n\tform_info\030\003 \001(\01325.google.cloud."
-          + "dialogflow.cx.v3beta1.PageInfo.FormInfo\032"
-          + "\232\003\n\010FormInfo\022[\n\016parameter_info\030\002 \003(\0132C.g"
-          + "oogle.cloud.dialogflow.cx.v3beta1.PageIn"
-          + "fo.FormInfo.ParameterInfo\032\260\002\n\rParameterI"
-          + "nfo\022\024\n\014display_name\030\001 \001(\t\022\020\n\010required\030\002 "
-          + "\001(\010\022a\n\005state\030\003 \001(\0162R.google.cloud.dialog"
-          + "flow.cx.v3beta1.PageInfo.FormInfo.Parame"
-          + "terInfo.ParameterState\022%\n\005value\030\004 \001(\0132\026."
-          + "google.protobuf.Value\022\026\n\016just_collected\030"
-          + "\005 \001(\010\"U\n\016ParameterState\022\037\n\033PARAMETER_STA"
-          + "TE_UNSPECIFIED\020\000\022\t\n\005EMPTY\020\001\022\013\n\007INVALID\020\002"
-          + "\022\n\n\006FILLED\020\003\"\346\001\n\013SessionInfo\0227\n\007session\030"
-          + "\001 \001(\tB&\372A#\n!dialogflow.googleapis.com/Se"
-          + "ssion\022S\n\nparameters\030\002 \003(\0132?.google.cloud"
-          + ".dialogflow.cx.v3beta1.SessionInfo.Param"
-          + "etersEntry\032I\n\017ParametersEntry\022\013\n\003key\030\001 \001"
-          + "(\t\022%\n\005value\030\002 \001(\0132\026.google.protobuf.Valu"
-          + "e:\0028\0012\375\010\n\010Webhooks\022\316\001\n\014ListWebhooks\0227.go"
-          + "ogle.cloud.dialogflow.cx.v3beta1.ListWeb"
-          + "hooksRequest\0328.google.cloud.dialogflow.c"
-          + "x.v3beta1.ListWebhooksResponse\"K\202\323\344\223\002<\022:"
-          + "/v3beta1/{parent=projects/*/locations/*/"
-          + "agents/*}/webhooks\332A\006parent\022\273\001\n\nGetWebho"
-          + "ok\0225.google.cloud.dialogflow.cx.v3beta1."
-          + "GetWebhookRequest\032+.google.cloud.dialogf"
-          + "low.cx.v3beta1.Webhook\"I\202\323\344\223\002<\022:/v3beta1"
-          + "/{name=projects/*/locations/*/agents/*/w"
-          + "ebhooks/*}\332A\004name\022\324\001\n\rCreateWebhook\0228.go"
-          + "ogle.cloud.dialogflow.cx.v3beta1.CreateW"
-          + "ebhookRequest\032+.google.cloud.dialogflow."
-          + "cx.v3beta1.Webhook\"\\\202\323\344\223\002E\":/v3beta1/{pa"
-          + "rent=projects/*/locations/*/agents/*}/we"
-          + "bhooks:\007webhook\332A\016parent,webhook\022\341\001\n\rUpd"
+          + "com/Webhook\022\r\n\005force\030\002 \001(\010\"\234\007\n\016WebhookRe"
+          + "quest\022!\n\031detect_intent_response_id\030\001 \001(\t"
+          + "\022\\\n\020fulfillment_info\030\006 \001(\0132B.google.clou"
+          + "d.dialogflow.cx.v3beta1.WebhookRequest.F"
+          + "ulfillmentInfo\022R\n\013intent_info\030\003 \001(\0132=.go"
+          + "ogle.cloud.dialogflow.cx.v3beta1.Webhook"
+          + "Request.IntentInfo\022?\n\tpage_info\030\004 \001(\0132,."
+          + "google.cloud.dialogflow.cx.v3beta1.PageI"
+          + "nfo\022E\n\014session_info\030\005 \001(\0132/.google.cloud"
+          + ".dialogflow.cx.v3beta1.SessionInfo\022E\n\010me"
+          + "ssages\030\007 \003(\01323.google.cloud.dialogflow.c"
+          + "x.v3beta1.ResponseMessage\022(\n\007payload\030\010 \001"
+          + "(\0132\027.google.protobuf.Struct\032\036\n\017Fulfillme"
+          + "ntInfo\022\013\n\003tag\030\001 \001(\t\032\233\003\n\nIntentInfo\022B\n\023la"
+          + "st_matched_intent\030\001 \001(\tB%\372A\"\n dialogflow"
+          + ".googleapis.com/Intent\022a\n\nparameters\030\002 \003"
+          + "(\0132M.google.cloud.dialogflow.cx.v3beta1."
+          + "WebhookRequest.IntentInfo.ParametersEntr"
+          + "y\032^\n\024IntentParameterValue\022\026\n\016original_va"
+          + "lue\030\001 \001(\t\022.\n\016resolved_value\030\002 \001(\0132\026.goog"
+          + "le.protobuf.Value\032\205\001\n\017ParametersEntry\022\013\n"
+          + "\003key\030\001 \001(\t\022a\n\005value\030\002 \001(\0132R.google.cloud"
+          + ".dialogflow.cx.v3beta1.WebhookRequest.In"
+          + "tentInfo.IntentParameterValue:\0028\001\"\310\005\n\017We"
+          + "bhookResponse\022e\n\024fulfillment_response\030\001 "
+          + "\001(\0132G.google.cloud.dialogflow.cx.v3beta1"
+          + ".WebhookResponse.FulfillmentResponse\022?\n\t"
+          + "page_info\030\002 \001(\0132,.google.cloud.dialogflo"
+          + "w.cx.v3beta1.PageInfo\022E\n\014session_info\030\003 "
+          + "\001(\0132/.google.cloud.dialogflow.cx.v3beta1"
+          + ".SessionInfo\022(\n\007payload\030\004 \001(\0132\027.google.p"
+          + "rotobuf.Struct\022:\n\013target_page\030\005 \001(\tB#\372A "
+          + "\n\036dialogflow.googleapis.com/PageH\000\022:\n\013ta"
+          + "rget_flow\030\006 \001(\tB#\372A \n\036dialogflow.googlea"
+          + "pis.com/FlowH\000\032\225\002\n\023FulfillmentResponse\022E"
+          + "\n\010messages\030\001 \003(\01323.google.cloud.dialogfl"
+          + "ow.cx.v3beta1.ResponseMessage\022m\n\016merge_b"
+          + "ehavior\030\002 \001(\0162U.google.cloud.dialogflow."
+          + "cx.v3beta1.WebhookResponse.FulfillmentRe"
+          + "sponse.MergeBehavior\"H\n\rMergeBehavior\022\036\n"
+          + "\032MERGE_BEHAVIOR_UNSPECIFIED\020\000\022\n\n\006APPEND\020"
+          + "\001\022\013\n\007REPLACE\020\002B\014\n\ntransition\"\254\004\n\010PageInf"
+          + "o\0229\n\014current_page\030\001 \001(\tB#\372A \n\036dialogflow"
+          + ".googleapis.com/Page\022H\n\tform_info\030\003 \001(\0132"
+          + "5.google.cloud.dialogflow.cx.v3beta1.Pag"
+          + "eInfo.FormInfo\032\232\003\n\010FormInfo\022[\n\016parameter"
+          + "_info\030\002 \003(\0132C.google.cloud.dialogflow.cx"
+          + ".v3beta1.PageInfo.FormInfo.ParameterInfo"
+          + "\032\260\002\n\rParameterInfo\022\024\n\014display_name\030\001 \001(\t"
+          + "\022\020\n\010required\030\002 \001(\010\022a\n\005state\030\003 \001(\0162R.goog"
+          + "le.cloud.dialogflow.cx.v3beta1.PageInfo."
+          + "FormInfo.ParameterInfo.ParameterState\022%\n"
+          + "\005value\030\004 \001(\0132\026.google.protobuf.Value\022\026\n\016"
+          + "just_collected\030\005 \001(\010\"U\n\016ParameterState\022\037"
+          + "\n\033PARAMETER_STATE_UNSPECIFIED\020\000\022\t\n\005EMPTY"
+          + "\020\001\022\013\n\007INVALID\020\002\022\n\n\006FILLED\020\003\"\346\001\n\013SessionI"
+          + "nfo\0227\n\007session\030\001 \001(\tB&\372A#\n!dialogflow.go"
+          + "ogleapis.com/Session\022S\n\nparameters\030\002 \003(\013"
+          + "2?.google.cloud.dialogflow.cx.v3beta1.Se"
+          + "ssionInfo.ParametersEntry\032I\n\017ParametersE"
+          + "ntry\022\013\n\003key\030\001 \001(\t\022%\n\005value\030\002 \001(\0132\026.googl"
+          + "e.protobuf.Value:\0028\0012\375\010\n\010Webhooks\022\316\001\n\014Li"
+          + "stWebhooks\0227.google.cloud.dialogflow.cx."
+          + "v3beta1.ListWebhooksRequest\0328.google.clo"
+          + "ud.dialogflow.cx.v3beta1.ListWebhooksRes"
+          + "ponse\"K\202\323\344\223\002<\022:/v3beta1/{parent=projects"
+          + "/*/locations/*/agents/*}/webhooks\332A\006pare"
+          + "nt\022\273\001\n\nGetWebhook\0225.google.cloud.dialogf"
+          + "low.cx.v3beta1.GetWebhookRequest\032+.googl"
+          + "e.cloud.dialogflow.cx.v3beta1.Webhook\"I\202"
+          + "\323\344\223\002<\022:/v3beta1/{name=projects/*/locatio"
+          + "ns/*/agents/*/webhooks/*}\332A\004name\022\324\001\n\rCre"
           + "ateWebhook\0228.google.cloud.dialogflow.cx."
-          + "v3beta1.UpdateWebhookRequest\032+.google.cl"
-          + "oud.dialogflow.cx.v3beta1.Webhook\"i\202\323\344\223\002"
-          + "M2B/v3beta1/{webhook.name=projects/*/loc"
-          + "ations/*/agents/*/webhooks/*}:\007webhook\332A"
-          + "\023webhook,update_mask\022\254\001\n\rDeleteWebhook\0228"
-          + ".google.cloud.dialogflow.cx.v3beta1.Dele"
-          + "teWebhookRequest\032\026.google.protobuf.Empty"
-          + "\"I\202\323\344\223\002<*:/v3beta1/{name=projects/*/loca"
-          + "tions/*/agents/*/webhooks/*}\332A\004name\032x\312A\031"
-          + "dialogflow.googleapis.com\322AYhttps://www."
-          + "googleapis.com/auth/cloud-platform,https"
-          + "://www.googleapis.com/auth/dialogflowB\253\001"
-          + "\n&com.google.cloud.dialogflow.cx.v3beta1"
-          + "B\014WebhookProtoP\001ZDgoogle.golang.org/genp"
-          + "roto/googleapis/cloud/dialogflow/cx/v3be"
-          + "ta1;cx\370\001\001\242\002\002DF\252\002\"Google.Cloud.Dialogflow"
-          + ".Cx.V3Beta1b\006proto3"
+          + "v3beta1.CreateWebhookRequest\032+.google.cl"
+          + "oud.dialogflow.cx.v3beta1.Webhook\"\\\202\323\344\223\002"
+          + "E\":/v3beta1/{parent=projects/*/locations"
+          + "/*/agents/*}/webhooks:\007webhook\332A\016parent,"
+          + "webhook\022\341\001\n\rUpdateWebhook\0228.google.cloud"
+          + ".dialogflow.cx.v3beta1.UpdateWebhookRequ"
+          + "est\032+.google.cloud.dialogflow.cx.v3beta1"
+          + ".Webhook\"i\202\323\344\223\002M2B/v3beta1/{webhook.name"
+          + "=projects/*/locations/*/agents/*/webhook"
+          + "s/*}:\007webhook\332A\023webhook,update_mask\022\254\001\n\r"
+          + "DeleteWebhook\0228.google.cloud.dialogflow."
+          + "cx.v3beta1.DeleteWebhookRequest\032\026.google"
+          + ".protobuf.Empty\"I\202\323\344\223\002<*:/v3beta1/{name="
+          + "projects/*/locations/*/agents/*/webhooks"
+          + "/*}\332A\004name\032x\312A\031dialogflow.googleapis.com"
+          + "\322AYhttps://www.googleapis.com/auth/cloud"
+          + "-platform,https://www.googleapis.com/aut"
+          + "h/dialogflowB\253\001\n&com.google.cloud.dialog"
+          + "flow.cx.v3beta1B\014WebhookProtoP\001ZDgoogle."
+          + "golang.org/genproto/googleapis/cloud/dia"
+          + "logflow/cx/v3beta1;cx\370\001\001\242\002\002DF\252\002\"Google.C"
+          + "loud.Dialogflow.Cx.V3Beta1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -345,7 +345,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_dialogflow_cx_v3beta1_DeleteWebhookRequest_descriptor,
             new java.lang.String[] {
-              "Name",
+              "Name", "Force",
             });
     internal_static_google_cloud_dialogflow_cx_v3beta1_WebhookRequest_descriptor =
         getDescriptor().getMessageTypes().get(7);
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookRequest.java
index 54559d8d0..02c120351 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookRequest.java
@@ -901,8 +901,9 @@ public interface IntentInfoOrBuilder
      *
      * <pre>
      * Always present. The unique identifier of the last matched
-     * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-     * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+     * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
      * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -915,8 +916,9 @@ public interface IntentInfoOrBuilder
      *
      * <pre>
      * Always present. The unique identifier of the last matched
-     * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-     * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+     * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
      * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -2187,8 +2189,9 @@ public com.google.protobuf.Parser<IntentParameterValue> getParserForType() {
      *
      * <pre>
      * Always present. The unique identifier of the last matched
-     * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-     * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+     * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
      * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -2212,8 +2215,9 @@ public java.lang.String getLastMatchedIntent() {
      *
      * <pre>
      * Always present. The unique identifier of the last matched
-     * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-     * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+     * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
      * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -2770,8 +2774,9 @@ public Builder mergeFrom(
        *
        * <pre>
        * Always present. The unique identifier of the last matched
-       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-       * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+       * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+       * ID&gt;/intents/&lt;Intent ID&gt;`.
        * </pre>
        *
        * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -2794,8 +2799,9 @@ public java.lang.String getLastMatchedIntent() {
        *
        * <pre>
        * Always present. The unique identifier of the last matched
-       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-       * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+       * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+       * ID&gt;/intents/&lt;Intent ID&gt;`.
        * </pre>
        *
        * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -2818,8 +2824,9 @@ public com.google.protobuf.ByteString getLastMatchedIntentBytes() {
        *
        * <pre>
        * Always present. The unique identifier of the last matched
-       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-       * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+       * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+       * ID&gt;/intents/&lt;Intent ID&gt;`.
        * </pre>
        *
        * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -2841,8 +2848,9 @@ public Builder setLastMatchedIntent(java.lang.String value) {
        *
        * <pre>
        * Always present. The unique identifier of the last matched
-       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-       * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+       * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+       * ID&gt;/intents/&lt;Intent ID&gt;`.
        * </pre>
        *
        * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -2860,8 +2868,9 @@ public Builder clearLastMatchedIntent() {
        *
        * <pre>
        * Always present. The unique identifier of the last matched
-       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-       * ID&gt;/agents/&lt;Agent ID&gt;/intents/&lt;Intent ID&gt;`.
+       * [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+       * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+       * ID&gt;/intents/&lt;Intent ID&gt;`.
        * </pre>
        *
        * <code>string last_matched_intent = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -3172,8 +3181,9 @@ public com.google.protobuf.Parser<IntentInfo> getParserForType() {
    *
    *
    * <pre>
-   * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-   * will be returned to the API caller.
+   * Always present. The unique identifier of the
+   * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+   * that will be returned to the API caller.
    * </pre>
    *
    * <code>string detect_intent_response_id = 1;</code>
@@ -3196,8 +3206,9 @@ public java.lang.String getDetectIntentResponseId() {
    *
    *
    * <pre>
-   * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-   * will be returned to the API caller.
+   * Always present. The unique identifier of the
+   * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+   * that will be returned to the API caller.
    * </pre>
    *
    * <code>string detect_intent_response_id = 1;</code>
@@ -3504,7 +3515,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessageOrBuilder getMessag
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -3519,7 +3531,8 @@ public boolean hasPayload() {
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -3534,7 +3547,8 @@ public com.google.protobuf.Struct getPayload() {
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -4066,8 +4080,9 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -4089,8 +4104,9 @@ public java.lang.String getDetectIntentResponseId() {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -4112,8 +4128,9 @@ public com.google.protobuf.ByteString getDetectIntentResponseIdBytes() {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -4134,8 +4151,9 @@ public Builder setDetectIntentResponseId(java.lang.String value) {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -4152,8 +4170,9 @@ public Builder clearDetectIntentResponseId() {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -5363,7 +5382,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.ResponseMessage.Builder addMessage
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5377,7 +5397,8 @@ public boolean hasPayload() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5395,7 +5416,8 @@ public com.google.protobuf.Struct getPayload() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5417,7 +5439,8 @@ public Builder setPayload(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5436,7 +5459,8 @@ public Builder setPayload(com.google.protobuf.Struct.Builder builderForValue) {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5460,7 +5484,8 @@ public Builder mergePayload(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5480,7 +5505,8 @@ public Builder clearPayload() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5494,7 +5520,8 @@ public com.google.protobuf.Struct.Builder getPayloadBuilder() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5510,7 +5537,8 @@ public com.google.protobuf.StructOrBuilder getPayloadOrBuilder() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookRequestOrBuilder.java
index 88aac4b74..7fc74410e 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookRequestOrBuilder.java
@@ -27,8 +27,9 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-   * will be returned to the API caller.
+   * Always present. The unique identifier of the
+   * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+   * that will be returned to the API caller.
    * </pre>
    *
    * <code>string detect_intent_response_id = 1;</code>
@@ -40,8 +41,9 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-   * will be returned to the API caller.
+   * Always present. The unique identifier of the
+   * [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+   * that will be returned to the API caller.
    * </pre>
    *
    * <code>string detect_intent_response_id = 1;</code>
@@ -264,7 +266,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -276,7 +279,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -288,7 +292,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookResponse.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookResponse.java
index f0fd8ac36..c90059205 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookResponse.java
@@ -1817,7 +1817,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SessionInfoOrBuilder getSessionInf
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -1832,7 +1833,8 @@ public boolean hasPayload() {
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -1847,7 +1849,8 @@ public com.google.protobuf.Struct getPayload() {
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3094,7 +3097,8 @@ public com.google.cloud.dialogflow.cx.v3beta1.SessionInfoOrBuilder getSessionInf
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3108,7 +3112,8 @@ public boolean hasPayload() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3126,7 +3131,8 @@ public com.google.protobuf.Struct getPayload() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3148,7 +3154,8 @@ public Builder setPayload(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3167,7 +3174,8 @@ public Builder setPayload(com.google.protobuf.Struct.Builder builderForValue) {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3191,7 +3199,8 @@ public Builder mergePayload(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3211,7 +3220,8 @@ public Builder clearPayload() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3225,7 +3235,8 @@ public com.google.protobuf.Struct.Builder getPayloadBuilder() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3241,7 +3252,8 @@ public com.google.protobuf.StructOrBuilder getPayloadOrBuilder() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookResponseOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookResponseOrBuilder.java
index 95adb567c..3b51c0215 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookResponseOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/java/com/google/cloud/dialogflow/cx/v3beta1/WebhookResponseOrBuilder.java
@@ -149,7 +149,8 @@ public interface WebhookResponseOrBuilder
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -161,7 +162,8 @@ public interface WebhookResponseOrBuilder
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -173,7 +175,8 @@ public interface WebhookResponseOrBuilder
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/audio_config.proto b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/audio_config.proto
index c0043a529..52a7706d7 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/audio_config.proto
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/audio_config.proto
@@ -16,10 +16,10 @@ syntax = "proto3";
 
 package google.cloud.dialogflow.cx.v3beta1;
 
+import "google/api/annotations.proto";
 import "google/api/field_behavior.proto";
 import "google/api/resource.proto";
 import "google/protobuf/duration.proto";
-import "google/api/annotations.proto";
 
 option cc_enable_arenas = true;
 option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1";
@@ -29,6 +29,31 @@ option java_outer_classname = "AudioConfigProto";
 option java_package = "com.google.cloud.dialogflow.cx.v3beta1";
 option objc_class_prefix = "DF";
 
+// 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;
+}
+
 // Audio encoding of the audio content sent in the conversational query request.
 // Refer to the
 // [Cloud Speech API
@@ -78,31 +103,6 @@ enum AudioEncoding {
   AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7;
 }
 
-// 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;
-}
-
 // Instructs the speech recognizer on how to process the audio content.
 message InputAudioConfig {
   // Required. Audio encoding of the audio content to process.
@@ -115,10 +115,12 @@ message InputAudioConfig {
   // more details.
   int32 sample_rate_hertz = 2;
 
-  // Optional. If `true`, Dialogflow returns [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
-  // [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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.
+  // Optional. If `true`, Dialogflow returns
+  // [SpeechWordInfo][google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo] in
+  // [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.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
@@ -142,7 +144,8 @@ message InputAudioConfig {
   // for more details.
   string model = 7;
 
-  // Optional. Which variant of the [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+  // Optional. Which variant of the [Speech
+  // model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
   SpeechModelVariant model_variant = 10;
 
   // Optional. If `false` (default), recognition does not cease until the
@@ -156,7 +159,8 @@ message InputAudioConfig {
   bool single_utterance = 8;
 }
 
-// Variant of the specified [Speech model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
+// Variant of the specified [Speech
+// model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] to use.
 //
 // See the [Cloud Speech
 // documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models)
@@ -185,8 +189,8 @@ enum SpeechModelVariant {
   // Use an enhanced model variant:
   //
   // * If an enhanced variant does not exist for the given
-  //   [model][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.model] and request language, Dialogflow falls
-  //   back to the standard variant.
+  //   [model][google.cloud.dialogflow.cx.v3beta1.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)
@@ -208,9 +212,10 @@ message VoiceSelectionParams {
 
   // 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.v3beta1.VoiceSelectionParams.name]. Note that this is only a preference, not requirement. If a
-  // voice of the appropriate gender is not available, the synthesizer should
-  // substitute a voice with a different gender rather than failing the request.
+  // [name][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.name]. Note
+  // that this is only a preference, not requirement. If a voice of the
+  // appropriate gender is not available, the synthesizer should substitute a
+  // voice with a different gender rather than failing the request.
   SsmlVoiceGender ssml_gender = 2;
 }
 
@@ -266,7 +271,8 @@ enum SsmlVoiceGender {
 // 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];
+  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
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/entity_type.proto b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/entity_type.proto
index f12cd70f8..c53112c5d 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/entity_type.proto
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/entity_type.proto
@@ -31,7 +31,8 @@ option java_outer_classname = "EntityTypeProto";
 option java_package = "com.google.cloud.dialogflow.cx.v3beta1";
 option objc_class_prefix = "DF";
 
-// Service for managing [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
+// Service for managing
+// [EntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityType].
 service EntityTypes {
   option (google.api.default_host) = "dialogflow.googleapis.com";
   option (google.api.oauth_scopes) =
@@ -39,7 +40,8 @@ service EntityTypes {
       "https://www.googleapis.com/auth/dialogflow";
 
   // Returns the list of all entity types in the specified agent.
-  rpc ListEntityTypes(ListEntityTypesRequest) returns (ListEntityTypesResponse) {
+  rpc ListEntityTypes(ListEntityTypesRequest)
+      returns (ListEntityTypesResponse) {
     option (google.api.http) = {
       get: "/v3beta1/{parent=projects/*/locations/*/agents/*}/entityTypes"
     };
@@ -73,7 +75,8 @@ service EntityTypes {
   }
 
   // Deletes the specified entity type.
-  rpc DeleteEntityType(DeleteEntityTypeRequest) returns (google.protobuf.Empty) {
+  rpc DeleteEntityType(DeleteEntityTypeRequest)
+      returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v3beta1/{name=projects/*/locations/*/agents/*/entityTypes/*}"
     };
@@ -104,7 +107,9 @@ service EntityTypes {
 //
 // *   **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.v3beta1.SessionEntityType] type.
+//     represented by the
+//     [SessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityType]
+//     type.
 //
 // For more information about entity types, see the [Dialogflow
 // documentation](https://cloud.google.com/dialogflow/docs/entities-overview).
@@ -179,12 +184,14 @@ message EntityType {
   }
 
   // The unique identifier of the entity type.
-  // Required for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+  // Required for
+  // [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/entityTypes/<Entity Type ID>`.
   string name = 1;
 
-  // Required. The human-readable name of the entity type, unique within the agent.
+  // 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.
@@ -207,7 +214,8 @@ message EntityType {
   bool enable_fuzzy_extraction = 7;
 }
 
-// The request message for [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
+// The request message for
+// [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
 message ListEntityTypesRequest {
   // Required. The agent to list all entity types for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
@@ -240,7 +248,8 @@ message ListEntityTypesRequest {
   string page_token = 4;
 }
 
-// The response message for [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.EntityTypes.ListEntityTypes].
+// The response message for
+// [EntityTypes.ListEntityTypes][google.cloud.dialogflow.cx.v3beta1.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.
@@ -251,7 +260,8 @@ message ListEntityTypesResponse {
   string next_page_token = 2;
 }
 
-// The request message for [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType].
+// The request message for
+// [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType].
 message GetEntityTypeRequest {
   // Required. The name of the entity type.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
@@ -278,7 +288,8 @@ message GetEntityTypeRequest {
   string language_code = 2;
 }
 
-// The request message for [EntityTypes.CreateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.CreateEntityType].
+// The request message for
+// [EntityTypes.CreateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.CreateEntityType].
 message CreateEntityTypeRequest {
   // Required. The agent to create a entity type for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
@@ -306,7 +317,8 @@ message CreateEntityTypeRequest {
   string language_code = 3;
 }
 
-// The request message for [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
+// The request message for
+// [EntityTypes.UpdateEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.UpdateEntityType].
 message UpdateEntityTypeRequest {
   // Required. The entity type to update.
   EntityType entity_type = 1 [(google.api.field_behavior) = REQUIRED];
@@ -328,7 +340,8 @@ message UpdateEntityTypeRequest {
   google.protobuf.FieldMask update_mask = 3;
 }
 
-// The request message for [EntityTypes.DeleteEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.DeleteEntityType].
+// The request message for
+// [EntityTypes.DeleteEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.DeleteEntityType].
 message DeleteEntityTypeRequest {
   // Required. The name of the entity type to delete.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
@@ -339,4 +352,18 @@ message DeleteEntityTypeRequest {
       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.v3beta1.Form.Parameter] of the
+  //    entity type will be changed to
+  //    '@sys.any' and intent
+  //    [parameter][google.cloud.dialogflow.cx.v3beta1.Intent.Parameter] of the
+  //    entity type will be removed).
+  bool force = 2;
 }
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/flow.proto b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/flow.proto
index 6541a9d94..ba80d8e98 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/flow.proto
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/flow.proto
@@ -107,9 +107,6 @@ message NluSettings {
     // Use standard NLU model.
     MODEL_TYPE_STANDARD = 1;
 
-    // Use custom NLU model.
-    MODEL_TYPE_CUSTOM = 2;
-
     // Use advanced NLU model.
     MODEL_TYPE_ADVANCED = 3;
   }
@@ -206,16 +203,18 @@ message Flow {
   // regardless of the current page. Event handlers defined in the page
   // have higher priority than those defined in the flow.
   //
-  // Unlike [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes], these handlers are
-  // evaluated on a first-match basis. The first one that matches the event
-  // get executed, with the rest being ignored.
+  // Unlike
+  // [transition_routes][google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes],
+  // these handlers are evaluated on a first-match basis. The first one that
+  // matches the event get executed, with the rest being ignored.
   repeated EventHandler event_handlers = 10;
 
   // NLU related settings of the flow.
   NluSettings nlu_settings = 11;
 }
 
-// The request message for [Flows.CreateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow].
+// The request message for
+// [Flows.CreateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow].
 message CreateFlowRequest {
   // Required. The agent to create a flow for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
@@ -242,16 +241,15 @@ message CreateFlowRequest {
   string language_code = 3;
 }
 
-// The request message for [Flows.DeleteFlow][google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow].
+// The request message for
+// [Flows.DeleteFlow][google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow].
 message DeleteFlowRequest {
   // Required. The name of the flow to delete.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/flows/<Flow ID>`.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
-    (google.api.resource_reference) = {
-      type: "dialogflow.googleapis.com/Flow"
-    }
+    (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Flow" }
   ];
 
   // This field has no effect for flows with no incoming transitions.
@@ -260,11 +258,15 @@ message DeleteFlowRequest {
   // *  If `force` is set to false, an error will be returned with message
   //    indicating the incoming transitions.
   // *  If `force` is set to true, Dialogflow will remove the flow, as well as
-  //    any transitions to the flow.
+  //    any transitions to the flow (i.e. [Target
+  //    flow][EventHandler.target_flow] in event handlers or [Target
+  //    flow][TransitionRoute.target_flow] in transition routes that point to
+  //    this flow will be cleared).
   bool force = 2;
 }
 
-// The request message for [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
+// The request message for
+// [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
 message ListFlowsRequest {
   // Required. The agent containing the flows.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
@@ -296,7 +298,8 @@ message ListFlowsRequest {
   string language_code = 4;
 }
 
-// The response message for [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
+// The response message for
+// [Flows.ListFlows][google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows].
 message ListFlowsResponse {
   // The list of flows. There will be a maximum number of items returned based
   // on the page_size field in the request.
@@ -307,16 +310,15 @@ message ListFlowsResponse {
   string next_page_token = 2;
 }
 
-// The response message for [Flows.GetFlow][google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow].
+// The response message for
+// [Flows.GetFlow][google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow].
 message GetFlowRequest {
   // Required. The name of the flow to get.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/flows/<Flow ID>`.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
-    (google.api.resource_reference) = {
-      type: "dialogflow.googleapis.com/Flow"
-    }
+    (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Flow" }
   ];
 
   // The language to retrieve the flow for. The following fields are language
@@ -333,14 +335,16 @@ message GetFlowRequest {
   string language_code = 2;
 }
 
-// The request message for [Flows.UpdateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow].
+// The request message for
+// [Flows.UpdateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow].
 message UpdateFlowRequest {
   // Required. The flow to update.
   Flow flow = 1 [(google.api.field_behavior) = REQUIRED];
 
-  // Required. The mask to control which fields get updated. If `update_mask` is not
-  // specified, an error will be returned.
-  google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
+  // Required. The mask to control which fields get updated. If `update_mask` is
+  // not specified, an error will be returned.
+  google.protobuf.FieldMask update_mask = 2
+      [(google.api.field_behavior) = REQUIRED];
 
   // The language of the following fields in `flow`:
   //
@@ -355,7 +359,8 @@ message UpdateFlowRequest {
   string language_code = 3;
 }
 
-// The request message for [Flows.TrainFlow][google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow].
+// The request message for
+// [Flows.TrainFlow][google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow].
 message TrainFlowRequest {
   // Required. The flow to train.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/page.proto b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/page.proto
index c63b16178..32696477d 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/page.proto
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/page.proto
@@ -106,7 +106,10 @@ message Page {
   };
 
   // The unique identifier of the page.
-  // Required for the [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage] method. [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
+  // Required for the
+  // [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage]
+  // method.
+  // [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage]
   // populates the name automatically.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/flows/<Flow ID>/pages/<Page ID>`.
@@ -122,8 +125,10 @@ message Page {
   // relevant to the page.
   Form form = 4;
 
-  // Ordered list of [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup] associated
-  // with the page. Transition route groups must be unique within a page.
+  // Ordered list of
+  // [`TransitionRouteGroups`][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]
+  // associated with the page. Transition route groups must be unique within a
+  // page.
   //
   // *   If multiple transition routes within a page scope refer to the same
   //     intent, then the precedence order is: page's transition route -> page's
@@ -134,9 +139,10 @@ message Page {
   //
   // Format:`projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/flows/<Flow ID>/transitionRouteGroups/<TransitionRouteGroup ID>`.
-  repeated string transition_route_groups = 11 [(google.api.resource_reference) = {
-                                                  type: "dialogflow.googleapis.com/TransitionRouteGroup"
-                                                }];
+  repeated string transition_route_groups = 11
+      [(google.api.resource_reference) = {
+        type: "dialogflow.googleapis.com/TransitionRouteGroup"
+      }];
 
   // A list of transitions for the transition rules of this page.
   // They route the conversation to another page in the same flow, or another
@@ -147,7 +153,8 @@ message Page {
   //
   // *   TransitionRoutes defined in the page with intent specified.
   // *   TransitionRoutes defined in the
-  // [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
+  // [transition route
+  // groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups].
   // *   TransitionRoutes defined in flow with intent specified.
   // *   TransitionRoutes defined in the page with only condition specified.
   repeated TransitionRoute transition_routes = 9;
@@ -160,8 +167,9 @@ message Page {
 // A form is a data model that groups related parameters that can be collected
 // from the user. The process in which the agent prompts the user and collects
 // parameter values from the user is called form filling. A form can be added to
-// a [page][google.cloud.dialogflow.cx.v3beta1.Page]. When form filling is done, the filled parameters will be
-// written to the [session][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+// a [page][google.cloud.dialogflow.cx.v3beta1.Page]. When form filling is done,
+// the filled parameters will be written to the
+// [session][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
 message Form {
   // Represents a form parameter.
   message Parameter {
@@ -169,7 +177,8 @@ message Form {
     message FillBehavior {
       // Required. The fulfillment to provide the initial prompt that the agent
       // can present to the user in order to fill the parameter.
-      Fulfillment initial_prompt_fulfillment = 3 [(google.api.field_behavior) = REQUIRED];
+      Fulfillment initial_prompt_fulfillment = 3
+          [(google.api.field_behavior) = REQUIRED];
 
       // The handlers for parameter-level events, used to provide reprompt for
       // the parameter or transition to a different page/flow. The supported
@@ -243,17 +252,22 @@ message Form {
   repeated Parameter parameters = 1;
 }
 
-// An event handler specifies an [event][google.cloud.dialogflow.cx.v3beta1.EventHandler.event] that can be handled
-// during a session. When the specified event happens, the following actions are
-// taken in order:
+// An event handler specifies an
+// [event][google.cloud.dialogflow.cx.v3beta1.EventHandler.event] that can be
+// handled during a session. When the specified event happens, the following
+// actions are taken in order:
 //
 // *   If there is a
-// [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.EventHandler.trigger_fulfillment] associated with
-// the event, it will be called.
-// *   If there is a [`target_page`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_page] associated
-// with the event, the session will transition into the specified page.
-// *   If there is a [`target_flow`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_flow] associated
-// with the event, the session will transition into the specified flow.
+// [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.EventHandler.trigger_fulfillment]
+// associated with the event, it will be called.
+// *   If there is a
+// [`target_page`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_page]
+// associated with the event, the session will transition into the specified
+// page.
+// *   If there is a
+// [`target_flow`][google.cloud.dialogflow.cx.v3beta1.EventHandler.target_flow]
+// associated with the event, the session will transition into the specified
+// flow.
 message EventHandler {
   // Output only. The unique identifier of this event handler.
   string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
@@ -268,41 +282,49 @@ message EventHandler {
   Fulfillment trigger_fulfillment = 5;
 
   // The target to transition to, either a page in the same host flow (the flow
-  // that owns this [TransitionRoute][google.cloud.dialogflow.cx.v3beta1.TransitionRoute]), or another flow in the same agent.
+  // that owns this
+  // [TransitionRoute][google.cloud.dialogflow.cx.v3beta1.TransitionRoute]), or
+  // another flow in the same agent.
   oneof target {
     // The target page to transition to.
     // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
     // ID>/flows/<Flow ID>/pages/<Page ID>`.
     string target_page = 2 [(google.api.resource_reference) = {
-                              type: "dialogflow.googleapis.com/Page"
-                            }];
+      type: "dialogflow.googleapis.com/Page"
+    }];
 
     // The target flow to transition to.
     // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
     // ID>/flows/<Flow ID>`.
     string target_flow = 3 [(google.api.resource_reference) = {
-                              type: "dialogflow.googleapis.com/Flow"
-                            }];
+      type: "dialogflow.googleapis.com/Flow"
+    }];
   }
 }
 
-// A transition route specifies a [intent][google.cloud.dialogflow.cx.v3beta1.Intent] that can be matched and/or a
-// data condition that can be evaluated during a session. When a specified
-// transition is matched, the following actions are taken in order:
+// A transition route specifies a
+// [intent][google.cloud.dialogflow.cx.v3beta1.Intent] that can be matched
+// and/or a data condition that can be evaluated during a session. When a
+// specified transition is matched, the following actions are taken in order:
 //
 // *   If there is a
-// [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.trigger_fulfillment] associated with
-// the transition, it will be called.
-// *   If there is a [`target_page`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_page] associated
-// with the transition, the session will transition into the specified page.
-// *   If there is a [`target_flow`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_flow] associated
-// with the transition, the session will transition into the specified flow.
+// [`trigger_fulfillment`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.trigger_fulfillment]
+// associated with the transition, it will be called.
+// *   If there is a
+// [`target_page`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_page]
+// associated with the transition, the session will transition into the
+// specified page.
+// *   If there is a
+// [`target_flow`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.target_flow]
+// associated with the transition, the session will transition into the
+// specified flow.
 message TransitionRoute {
   // Output only. The unique identifier of this transition route.
   string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
 
-  // The unique identifier of an [Intent][google.cloud.dialogflow.cx.v3beta1.Intent].
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
+  // The unique identifier of an
+  // [Intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+  // `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/intents/<Intent ID>`.
   // Indicates that the transition can only happen when the given intent is
   // matched.
@@ -310,11 +332,12 @@ message TransitionRoute {
   // `intent` and `condition` are specified, the transition can only happen
   // when both are fulfilled.
   string intent = 1 [(google.api.resource_reference) = {
-                       type: "dialogflow.googleapis.com/Intent"
-                     }];
+    type: "dialogflow.googleapis.com/Intent"
+  }];
 
-  // The condition to evaluate against [form parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or
-  // [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+  // The condition to evaluate against [form
+  // parameters][google.cloud.dialogflow.cx.v3beta1.Form.parameters] or [session
+  // parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
   //
   // See the [conditions
   // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
@@ -329,25 +352,28 @@ message TransitionRoute {
   Fulfillment trigger_fulfillment = 3;
 
   // The target to transition to, either a page in the same host flow (the flow
-  // that owns this [TransitionRoute][google.cloud.dialogflow.cx.v3beta1.TransitionRoute]), or another flow in the same agent.
+  // that owns this
+  // [TransitionRoute][google.cloud.dialogflow.cx.v3beta1.TransitionRoute]), or
+  // another flow in the same agent.
   oneof target {
     // The target page to transition to.
     // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
     // ID>/flows/<Flow ID>/pages/<Page ID>`.
     string target_page = 4 [(google.api.resource_reference) = {
-                              type: "dialogflow.googleapis.com/Page"
-                            }];
+      type: "dialogflow.googleapis.com/Page"
+    }];
 
     // The target flow to transition to.
     // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
     // ID>/flows/<Flow ID>`.
     string target_flow = 5 [(google.api.resource_reference) = {
-                              type: "dialogflow.googleapis.com/Flow"
-                            }];
+      type: "dialogflow.googleapis.com/Flow"
+    }];
   }
 }
 
-// The request message for [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
+// The request message for
+// [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
 message ListPagesRequest {
   // Required. The flow to list all pages for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
@@ -365,7 +391,7 @@ message ListPagesRequest {
   // *  `Page.entry_fulfillment.messages`
   // *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
   // *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-  // *  `Page.transition_route.trigger_fulfillment.messages`
+  // *  `Page.transition_routes.trigger_fulfillment.messages`
   // *
   // `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
   //
@@ -384,7 +410,8 @@ message ListPagesRequest {
   string page_token = 4;
 }
 
-// The response message for [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
+// The response message for
+// [Pages.ListPages][google.cloud.dialogflow.cx.v3beta1.Pages.ListPages].
 message ListPagesResponse {
   // The list of pages. There will be a maximum number of items returned based
   // on the page_size field in the request.
@@ -395,16 +422,15 @@ message ListPagesResponse {
   string next_page_token = 2;
 }
 
-// The request message for [Pages.GetPage][google.cloud.dialogflow.cx.v3beta1.Pages.GetPage].
+// The request message for
+// [Pages.GetPage][google.cloud.dialogflow.cx.v3beta1.Pages.GetPage].
 message GetPageRequest {
   // Required. The name of the page.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/flows/<Flow ID>/pages/<Page ID>`.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
-    (google.api.resource_reference) = {
-      type: "dialogflow.googleapis.com/Page"
-    }
+    (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Page" }
   ];
 
   // The language to retrieve the page for. The following fields are language
@@ -413,7 +439,7 @@ message GetPageRequest {
   // *  `Page.entry_fulfillment.messages`
   // *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
   // *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-  // *  `Page.transition_route.trigger_fulfillment.messages`
+  // *  `Page.transition_routes.trigger_fulfillment.messages`
   // *
   // `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
   //
@@ -425,7 +451,8 @@ message GetPageRequest {
   string language_code = 2;
 }
 
-// The request message for [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage].
+// The request message for
+// [Pages.CreatePage][google.cloud.dialogflow.cx.v3beta1.Pages.CreatePage].
 message CreatePageRequest {
   // Required. The flow to create a page for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
@@ -445,7 +472,7 @@ message CreatePageRequest {
   // *  `Page.entry_fulfillment.messages`
   // *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
   // *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-  // *  `Page.transition_route.trigger_fulfillment.messages`
+  // *  `Page.transition_routes.trigger_fulfillment.messages`
   // *
   // `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
   //
@@ -457,7 +484,8 @@ message CreatePageRequest {
   string language_code = 3;
 }
 
-// The request message for [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage].
+// The request message for
+// [Pages.UpdatePage][google.cloud.dialogflow.cx.v3beta1.Pages.UpdatePage].
 message UpdatePageRequest {
   // Required. The page to update.
   Page page = 1 [(google.api.field_behavior) = REQUIRED];
@@ -467,7 +495,7 @@ message UpdatePageRequest {
   // *  `Page.entry_fulfillment.messages`
   // *  `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages`
   // *  `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages`
-  // *  `Page.transition_route.trigger_fulfillment.messages`
+  // *  `Page.transition_routes.trigger_fulfillment.messages`
   // *
   // `Page.transition_route_groups.transition_routes.trigger_fulfillment.messages`
   //
@@ -483,16 +511,15 @@ message UpdatePageRequest {
   google.protobuf.FieldMask update_mask = 3;
 }
 
-// The request message for [Pages.DeletePage][google.cloud.dialogflow.cx.v3beta1.Pages.DeletePage].
+// The request message for
+// [Pages.DeletePage][google.cloud.dialogflow.cx.v3beta1.Pages.DeletePage].
 message DeletePageRequest {
   // Required. The name of the page to delete.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/Flows/<flow ID>/pages/<Page ID>`.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
-    (google.api.resource_reference) = {
-      type: "dialogflow.googleapis.com/Page"
-    }
+    (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Page" }
   ];
 
   // This field has no effect for pages with no incoming transitions.
@@ -501,6 +528,9 @@ message DeletePageRequest {
   // *  If `force` is set to false, an error will be returned with message
   //    indicating the incoming transitions.
   // *  If `force` is set to true, Dialogflow will remove the page, as well as
-  //    any transitions to the page.
+  //    any transitions to the page (i.e. [Target
+  //    page][EventHandler.target_page] in event handlers or [Target
+  //    page][TransitionRoute.target_page] in transition routes that point to
+  //    this page will be cleared).
   bool force = 2;
 }
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/response_message.proto b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/response_message.proto
index 2822d612e..328a25e09 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/response_message.proto
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/response_message.proto
@@ -16,9 +16,9 @@ syntax = "proto3";
 
 package google.cloud.dialogflow.cx.v3beta1;
 
+import "google/api/annotations.proto";
 import "google/api/field_behavior.proto";
 import "google/protobuf/struct.proto";
-import "google/api/annotations.proto";
 
 option cc_enable_arenas = true;
 option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1";
@@ -51,30 +51,11 @@ message ResponseMessage {
     // Required. A collection of text responses.
     repeated string text = 1 [(google.api.field_behavior) = REQUIRED];
 
-    // Whether the playback of this message can be interrupted by the end
-    // user's speech and the client can then starts the next Dialogflow
+    // Output only. Whether the playback of this message can be interrupted by
+    // the end user's speech and the client can then starts the next Dialogflow
     // request.
-    bool allow_playback_interruption = 2;
-  }
-
-  // Indicates that the conversation should be handed off to a human agent.
-  //
-  // Dialogflow only uses this to determine which conversations were handed off
-  // to a human agent for measurement purposes. What else to do with this signal
-  // is up to you and your handoff procedures.
-  //
-  // You may set this, for example:
-  // * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
-  //   entering the page indicates something went extremely wrong in the
-  //   conversation.
-  // * In a webhook response when you determine that the customer issue can only
-  //   be handled by a human.
-  message HumanAgentHandoff {
-    option deprecated = true;
-
-    // Custom metadata for your handoff procedure. Dialogflow doesn't impose
-    // any structure on this.
-    google.protobuf.Struct metadata = 1;
+    bool allow_playback_interruption = 2
+        [(google.api.field_behavior) = OUTPUT_ONLY];
   }
 
   // Indicates that the conversation should be handed off to a live agent.
@@ -84,7 +65,9 @@ message ResponseMessage {
   // is up to you and your handoff procedures.
   //
   // You may set this, for example:
-  // * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
+  // * In the
+  // [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment]
+  // of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
   //   entering the page indicates something went extremely wrong in the
   //   conversation.
   // * In a webhook response when you determine that the customer issue can only
@@ -105,7 +88,9 @@ message ResponseMessage {
   // [ConversationSuccess][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess].
   //
   // You may set this, for example:
-  // * In the [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment] of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
+  // * In the
+  // [entry_fulfillment][google.cloud.dialogflow.cx.v3beta1.Page.entry_fulfillment]
+  // of a [Page][google.cloud.dialogflow.cx.v3beta1.Page] if
   //   entering the page indicates that the conversation succeeded.
   // * In a webhook response when you determine that you handled the customer
   //   issue.
@@ -114,18 +99,6 @@ message ResponseMessage {
     google.protobuf.Struct metadata = 1;
   }
 
-  // Specifies an audio clip to be played by the client as part of the response.
-  message PlayAudio {
-    // Required. URI of the audio clip. Dialogflow does not impose any validation on this
-    // value. It is specific to the client that reads it.
-    string audio_uri = 1 [(google.api.field_behavior) = REQUIRED];
-
-    // Whether the playback of this message can be interrupted by the end
-    // user's speech and the client can then starts the next Dialogflow
-    // request.
-    bool allow_playback_interruption = 2;
-  }
-
   // A text or ssml response that is preferentially used for TTS output audio
   // synthesis, as described in the comment on the ResponseMessage message.
   message OutputAudioText {
@@ -143,9 +116,7 @@ message ResponseMessage {
   // Indicates that interaction with the Dialogflow agent has ended.
   // This message is generated by Dialogflow only and not supposed to be
   // defined by the user.
-  message EndInteraction {
-
-  }
+  message EndInteraction {}
 
   // Represents an audio message that is composed of both segments
   // synthesized from the Dialogflow agent prompts and ones hosted externally
@@ -168,16 +139,30 @@ message ResponseMessage {
         string uri = 2;
       }
 
-      // Whether the playback of this segment can be interrupted by the end
-      // user's speech and the client should then start the next Dialogflow
-      // request.
-      bool allow_playback_interruption = 3;
+      // Output only. Whether the playback of this segment can be interrupted by
+      // the end user's speech and the client should then start the next
+      // Dialogflow request.
+      bool allow_playback_interruption = 3
+          [(google.api.field_behavior) = OUTPUT_ONLY];
     }
 
     // Segments this audio response is composed of.
     repeated Segment segments = 1;
   }
 
+  // Specifies an audio clip to be played by the client as part of the response.
+  message PlayAudio {
+    // Required. URI of the audio clip. Dialogflow does not impose any
+    // validation on this value. It is specific to the client that reads it.
+    string audio_uri = 1 [(google.api.field_behavior) = REQUIRED];
+
+    // Output only. Whether the playback of this message can be interrupted by
+    // the end user's speech and the client can then starts the next Dialogflow
+    // request.
+    bool allow_playback_interruption = 2
+        [(google.api.field_behavior) = OUTPUT_ONLY];
+  }
+
   // Required. The rich response message.
   oneof message {
     // Returns a text response.
@@ -186,9 +171,6 @@ message ResponseMessage {
     // Returns a response containing a custom, platform-specific payload.
     google.protobuf.Struct payload = 2;
 
-    // Hands off conversation to a human agent.
-    HumanAgentHandoff human_agent_handoff = 6 [deprecated = true];
-
     // Indicates that the conversation succeeded.
     ConversationSuccess conversation_success = 9;
 
@@ -199,22 +181,23 @@ message ResponseMessage {
     // Hands off conversation to a human agent.
     LiveAgentHandoff live_agent_handoff = 10;
 
-    // Output only. A signal that indicates the interaction with the Dialogflow agent has
-    // ended.
-    // This message is generated by Dialogflow only when the conversation
-    // reaches `END_SESSION` or `END_PAGE` page. It is not supposed to be
-    // defined by the user.
-    // It's guaranteed that there is at most one such message in each response.
-    EndInteraction end_interaction = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
+    // Output only. A signal that indicates the interaction with the Dialogflow
+    // agent has ended. This message is generated by Dialogflow only when the
+    // conversation reaches `END_SESSION` or `END_PAGE` page. It is not supposed
+    // to be defined by the user. It's guaranteed that there is at most one such
+    // message in each response.
+    EndInteraction end_interaction = 11
+        [(google.api.field_behavior) = OUTPUT_ONLY];
 
     // Signal that the client should play an audio clip hosted at a
     // client-specific URI. Dialogflow uses this to construct
-    // [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio]. However, Dialogflow itself
-    // does not try to read or process the URI in any way.
+    // [mixed_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio].
+    // However, Dialogflow itself does not try to read or process the URI in any
+    // way.
     PlayAudio play_audio = 12;
 
-    // Output only. An audio response message composed of both the synthesized Dialogflow
-    // agent responses and responses defined via
+    // Output only. An audio response message composed of both the synthesized
+    // Dialogflow agent responses and responses defined via
     // [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio].
     // This message is generated by Dialogflow only and not supposed to be
     // defined by the user.
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/session.proto b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/session.proto
index 5853a8cc3..9f962d4a7 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/session.proto
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/session.proto
@@ -17,6 +17,7 @@ syntax = "proto3";
 package google.cloud.dialogflow.cx.v3beta1;
 
 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/v3beta1/audio_config.proto";
@@ -28,7 +29,6 @@ import "google/protobuf/duration.proto";
 import "google/protobuf/struct.proto";
 import "google/rpc/status.proto";
 import "google/type/latlng.proto";
-import "google/api/client.proto";
 
 option cc_enable_arenas = true;
 option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1";
@@ -44,8 +44,9 @@ option (google.api.resource_definition) = {
 };
 
 // A session represents an interaction with a user. You retrieve user input
-// and pass it to the [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent] method to determine
-// user intent and respond.
+// and pass it to the
+// [DetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent]
+// method to determine user intent and respond.
 service Sessions {
   option (google.api.default_host) = "dialogflow.googleapis.com";
   option (google.api.oauth_scopes) =
@@ -60,14 +61,18 @@ service Sessions {
     option (google.api.http) = {
       post: "/v3beta1/{session=projects/*/locations/*/agents/*/sessions/*}:detectIntent"
       body: "*"
+      additional_bindings {
+        post: "/v3beta1/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:detectIntent"
+        body: "*"
+      }
     };
   }
 
   // Processes a natural language query in audio format in a streaming fashion
   // and returns structured, actionable data as a result. This method is only
   // available via the gRPC API (not REST).
-  rpc StreamingDetectIntent(stream StreamingDetectIntentRequest) returns (stream StreamingDetectIntentResponse) {
-  }
+  rpc StreamingDetectIntent(stream StreamingDetectIntentRequest)
+      returns (stream StreamingDetectIntentResponse) {}
 
   // Returns preliminary intent match results, doesn't change the session
   // status.
@@ -75,16 +80,28 @@ service Sessions {
     option (google.api.http) = {
       post: "/v3beta1/{session=projects/*/locations/*/agents/*/sessions/*}:matchIntent"
       body: "*"
+      additional_bindings {
+        post: "/v3beta1/{session=projects/*/locations/*/agents/*/environments/*/sessions/*}:matchIntent"
+        body: "*"
+      }
     };
   }
 
-  // Fulfills a matched intent returned by [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
-  // Must be called after [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent], with input from
-  // [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse]. Otherwise, the behavior is undefined.
+  // Fulfills a matched intent returned by
+  // [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent].
+  // Must be called after
+  // [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent],
+  // with input from
+  // [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse].
+  // Otherwise, the behavior is undefined.
   rpc FulfillIntent(FulfillIntentRequest) returns (FulfillIntentResponse) {
     option (google.api.http) = {
       post: "/v3beta1/{match_intent_request.session=projects/*/locations/*/agents/*/sessions/*}:fulfillIntent"
       body: "*"
+      additional_bindings {
+        post: "/v3beta1/{match_intent_request.session=projects/*/locations/*/agents/*/environments/*/sessions/*}:fulfillIntent"
+        body: "*"
+      }
     };
   }
 }
@@ -93,7 +110,10 @@ service Sessions {
 message DetectIntentRequest {
   // Required. The name of the session this query is sent to.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/sessions/<Session ID>`.
+  // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location
+  // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`.
+  // If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
   // It's up to the API caller to choose an appropriate `Session ID`. It can be
   // a random number or some type of session identifiers (preferably hashed).
   // The length of the `Session ID` must not exceed 36 characters.
@@ -126,9 +146,9 @@ message DetectIntentResponse {
   // The audio data bytes encoded as specified in the request.
   // Note: The output audio is generated based on the values of default platform
   // text responses found in the
-  // [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-  // multiple default text responses exist, they will be concatenated when
-  // generating audio. If no default platform text responses exist, the
+  // [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+  // field. If multiple default text responses exist, they will be concatenated
+  // when generating audio. If no default platform text responses exist, the
   // generated audio content will be empty.
   //
   // In some scenarios, multiple output audio fields may be present in the
@@ -141,24 +161,29 @@ message DetectIntentResponse {
 }
 
 // The top-level message sent by the client to the
-// [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent] method.
+// [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent]
+// method.
 //
 // Multiple request messages should be sent in order:
 //
 // 1.  The first message must contain
 // [session][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.session],
-//     [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input] plus optionally
-//     [query_params][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_params]. If the client
-//     wants to receive an audio response, it should also contain
+//     [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input]
+//     plus optionally
+//     [query_params][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_params].
+//     If the client wants to receive an audio response, it should also contain
 //     [output_audio_config][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.output_audio_config].
 //
-// 2.  If [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input] was set to
-//     [query_input.audio.config][google.cloud.dialogflow.cx.v3beta1.AudioInput.config], all subsequent messages
-//     must contain [query_input.audio.audio][google.cloud.dialogflow.cx.v3beta1.AudioInput.audio] to continue with
-//     Speech recognition.
-//     If you decide to rather detect an intent from text
-//     input after you already started Speech recognition, please send a message
-//     with [query_input.text][google.cloud.dialogflow.cx.v3beta1.QueryInput.text].
+// 2.  If
+// [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input]
+// was set to
+//     [query_input.audio.config][google.cloud.dialogflow.cx.v3beta1.AudioInput.config],
+//     all subsequent messages must contain
+//     [query_input.audio.audio][google.cloud.dialogflow.cx.v3beta1.AudioInput.audio]
+//     to continue with Speech recognition. If you decide to rather detect an
+//     intent from text input after you already started Speech recognition,
+//     please send a message with
+//     [query_input.text][google.cloud.dialogflow.cx.v3beta1.QueryInput.text].
 //
 //     However, note that:
 //
@@ -171,14 +196,17 @@ message DetectIntentResponse {
 message StreamingDetectIntentRequest {
   // The name of the session this query is sent to.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/sessions/<Session ID>`.
+  // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location
+  // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`.
+  // If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
   // It's up to the API caller to choose an appropriate `Session ID`. It can be
   // a random number or some type of session identifiers (preferably hashed).
   // The length of the `Session ID` must not exceed 36 characters.
   // Note: session must be set in the first request.
   string session = 1 [(google.api.resource_reference) = {
-                        type: "dialogflow.googleapis.com/Session"
-                      }];
+    type: "dialogflow.googleapis.com/Session"
+  }];
 
   // The parameters of this query.
   QueryParameters query_params = 2;
@@ -259,8 +287,8 @@ message StreamingRecognitionResult {
     // additional results). The client should stop sending additional audio
     // data, half-close the gRPC connection, and wait for any additional results
     // until the server closes the gRPC connection. This message is only sent if
-    // [`single_utterance`][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.single_utterance] was set to
-    // `true`, and is not used otherwise.
+    // [`single_utterance`][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.single_utterance]
+    // was set to `true`, and is not used otherwise.
     END_OF_SINGLE_UTTERANCE = 2;
   }
 
@@ -296,7 +324,8 @@ message StreamingRecognitionResult {
   float stability = 6;
 
   // Word-specific information for the words recognized by Speech in
-  // [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and
+  // [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript].
+  // Populated if and only if `message_type` = `TRANSCRIPT` and
   // [InputAudioConfig.enable_word_info] is set.
   repeated SpeechWordInfo speech_word_info = 7;
 
@@ -376,20 +405,22 @@ message QueryInput {
 message QueryResult {
   // The original conversational query.
   oneof query {
-    // If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-    // will contain a copy of the text.
+    // If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+    // was provided as input, this field will contain a copy of the text.
     string text = 1;
 
-    // If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-    // contain a copy of the intent identifier.
+    // If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+    // provided as input, this field will contain a copy of the intent
+    // identifier.
     string trigger_intent = 11;
 
-    // If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-    // this field will contain the trascript for the audio.
+    // If [natural language speech
+    // audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+    // input, this field will contain the trascript for the audio.
     string transcript = 12;
 
-    // If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain
-    // the name of the event.
+    // If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided
+    // as input, this field will contain the name of the event.
     string trigger_event = 14;
   }
 
@@ -399,7 +430,8 @@ message QueryResult {
   // for a list of the currently supported language codes.
   string language_code = 2;
 
-  // The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
+  // The collected [session
+  // parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters].
   //
   // Depending on your protocol or client library language, this is a
   // map, associative array, symbol table, dictionary, or JSON object
@@ -424,19 +456,23 @@ message QueryResult {
   // The list of webhook call status in the order of call sequence.
   repeated google.rpc.Status webhook_statuses = 13;
 
-  // The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in
-  // the order of call sequence. If some webhook call fails or doesn't return
+  // The list of webhook payload in
+  // [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload],
+  // in the order of call sequence. If some webhook call fails or doesn't return
   // any payload, an empty `Struct` would be used instead.
   repeated google.protobuf.Struct webhook_payloads = 6;
 
-  // The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-  // including but not limited to `name` and `display_name`.
+  // The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+  // fields are filled in this message, including but not limited to `name` and
+  // `display_name`.
   Page current_page = 7;
 
-  // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields
-  // are filled in this message, including but not limited to: `name` and
-  // `display_name`.
-  // This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+  // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+  // conversational query. Some, not all fields are filled in this message,
+  // including but not limited to: `name` and `display_name`. This field is
+  // deprecated, please use
+  // [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+  // instead.
   Intent intent = 8 [deprecated = true];
 
   // The intent detection confidence. Values range from 0.0 (completely
@@ -445,7 +481,9 @@ message QueryResult {
   // help match the best intent within the classification threshold.
   // This value may change for the same end-user expression at any time due to a
   // model retraining or change in implementation.
-  // This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead.
+  // This field is deprecated, please use
+  // [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match]
+  // instead.
   float intent_detection_confidence = 9 [deprecated = true];
 
   // Intent match result, could be an intent or an event.
@@ -459,8 +497,8 @@ message QueryResult {
 
 // Represents the natural language text to be processed.
 message TextInput {
-  // Required. The UTF-8 encoded natural language text to be processed. Text length must
-  // not exceed 256 characters.
+  // Required. The UTF-8 encoded natural language text to be processed. Text
+  // length must not exceed 256 characters.
   string text = 1 [(google.api.field_behavior) = REQUIRED];
 }
 
@@ -485,8 +523,9 @@ message AudioInput {
 
   // The natural language speech audio to be processed.
   // A single request can contain up to 1 minute of speech audio data.
-  // The [transcribed text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot contain more than 256
-  // bytes.
+  // The [transcribed
+  // text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot
+  // contain more than 256 bytes.
   //
   // For non-streaming audio detect intent, both `config` and `audio` must be
   // provided.
@@ -518,9 +557,10 @@ message Match {
     NO_INPUT = 5;
   }
 
-  // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in
-  // this message, including but not limited to: `name` and `display_name`. Only
-  // filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
+  // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the
+  // query. Some, not all fields are filled in this message, including but not
+  // limited to: `name` and `display_name`. Only filled for
+  // [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type.
   Intent intent = 1;
 
   // The collection of parameters extracted from the query.
@@ -561,7 +601,10 @@ message Match {
 message MatchIntentRequest {
   // Required. The name of the session this query is sent to.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/sessions/<Session ID>`.
+  // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location
+  // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`.
+  // If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
   // It's up to the API caller to choose an appropriate `Session ID`. It can be
   // a random number or some type of session identifiers (preferably hashed).
   // The length of the `Session ID` must not exceed 36 characters.
@@ -583,16 +626,18 @@ message MatchIntentRequest {
 message MatchIntentResponse {
   // The original conversational query.
   oneof query {
-    // If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field
-    // will contain a copy of the text.
+    // If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput]
+    // was provided as input, this field will contain a copy of the text.
     string text = 1;
 
-    // If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will
-    // contain a copy of the intent identifier.
+    // If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was
+    // provided as input, this field will contain a copy of the intent
+    // identifier.
     string trigger_intent = 2;
 
-    // If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input,
-    // this field will contain the trascript for the audio.
+    // If [natural language speech
+    // audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as
+    // input, this field will contain the trascript for the audio.
     string transcript = 3;
   }
 
@@ -600,8 +645,9 @@ message MatchIntentResponse {
   // we have that the particular intent matches the query.
   repeated Match matches = 4;
 
-  // The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message,
-  // including but not limited to `name` and `display_name`.
+  // The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all
+  // fields are filled in this message, including but not limited to `name` and
+  // `display_name`.
   Page current_page = 5;
 }
 
@@ -630,9 +676,9 @@ message FulfillIntentResponse {
   // The audio data bytes encoded as specified in the request.
   // Note: The output audio is generated based on the values of default platform
   // text responses found in the
-  // [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If
-  // multiple default text responses exist, they will be concatenated when
-  // generating audio. If no default platform text responses exist, the
+  // [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages]
+  // field. If multiple default text responses exist, they will be concatenated
+  // when generating audio. If no default platform text responses exist, the
   // generated audio content will be empty.
   //
   // In some scenarios, multiple output audio fields may be present in the
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto
index 2e4fb4b19..25dd8f5f8 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto
@@ -32,7 +32,8 @@ option java_outer_classname = "SessionEntityTypeProto";
 option java_package = "com.google.cloud.dialogflow.cx.v3beta1";
 option objc_class_prefix = "DF";
 
-// Service for managing [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
+// Service for managing
+// [SessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityType].
 service SessionEntityTypes {
   option (google.api.default_host) = "dialogflow.googleapis.com";
   option (google.api.oauth_scopes) =
@@ -40,17 +41,25 @@ service SessionEntityTypes {
       "https://www.googleapis.com/auth/dialogflow";
 
   // Returns the list of all session entity types in the specified session.
-  rpc ListSessionEntityTypes(ListSessionEntityTypesRequest) returns (ListSessionEntityTypesResponse) {
+  rpc ListSessionEntityTypes(ListSessionEntityTypesRequest)
+      returns (ListSessionEntityTypesResponse) {
     option (google.api.http) = {
       get: "/v3beta1/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes"
+      additional_bindings {
+        get: "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes"
+      }
     };
     option (google.api.method_signature) = "parent";
   }
 
   // Retrieves the specified session entity type.
-  rpc GetSessionEntityType(GetSessionEntityTypeRequest) returns (SessionEntityType) {
+  rpc GetSessionEntityType(GetSessionEntityTypeRequest)
+      returns (SessionEntityType) {
     option (google.api.http) = {
       get: "/v3beta1/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}"
+      additional_bindings {
+        get: "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}"
+      }
     };
     option (google.api.method_signature) = "name";
   }
@@ -59,27 +68,41 @@ service SessionEntityTypes {
   //
   // If the specified session entity type already exists, overrides the
   // session entity type.
-  rpc CreateSessionEntityType(CreateSessionEntityTypeRequest) returns (SessionEntityType) {
+  rpc CreateSessionEntityType(CreateSessionEntityTypeRequest)
+      returns (SessionEntityType) {
     option (google.api.http) = {
       post: "/v3beta1/{parent=projects/*/locations/*/agents/*/sessions/*}/entityTypes"
       body: "session_entity_type"
+      additional_bindings {
+        post: "/v3beta1/{parent=projects/*/locations/*/agents/*/environments/*/sessions/*}/entityTypes"
+        body: "session_entity_type"
+      }
     };
     option (google.api.method_signature) = "parent,session_entity_type";
   }
 
   // Updates the specified session entity type.
-  rpc UpdateSessionEntityType(UpdateSessionEntityTypeRequest) returns (SessionEntityType) {
+  rpc UpdateSessionEntityType(UpdateSessionEntityTypeRequest)
+      returns (SessionEntityType) {
     option (google.api.http) = {
       patch: "/v3beta1/{session_entity_type.name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}"
       body: "session_entity_type"
+      additional_bindings {
+        patch: "/v3beta1/{session_entity_type.name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}"
+        body: "session_entity_type"
+      }
     };
     option (google.api.method_signature) = "session_entity_type,update_mask";
   }
 
   // Deletes the specified session entity type.
-  rpc DeleteSessionEntityType(DeleteSessionEntityTypeRequest) returns (google.protobuf.Empty) {
+  rpc DeleteSessionEntityType(DeleteSessionEntityTypeRequest)
+      returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v3beta1/{name=projects/*/locations/*/agents/*/sessions/*/entityTypes/*}"
+      additional_bindings {
+        delete: "/v3beta1/{name=projects/*/locations/*/agents/*/environments/*/sessions/*/entityTypes/*}"
+      }
     };
     option (google.api.method_signature) = "name";
   }
@@ -90,9 +113,9 @@ service SessionEntityTypes {
 // preferences, playlists, and so on.
 //
 // You can redefine a session entity type at the session level to extend or
-// replace a [custom entity type][google.cloud.dialogflow.cx.v3beta1.EntityType] at the user session level (we
-// refer to the entity types defined at the agent level as "custom entity
-// types").
+// replace a [custom entity type][google.cloud.dialogflow.cx.v3beta1.EntityType]
+// at the user session level (we refer to the entity types defined at the agent
+// level as "custom entity types").
 //
 // Note: session entity types apply to all queries, regardless of the language.
 //
@@ -121,31 +144,41 @@ message SessionEntityType {
     // `GetSessionEntityType`, `CreateSessionEntityType` and
     // `UpdateSessionEntityType` only return the additional entities added in
     // this session entity type. If you want to get the supplemented list,
-    // please call [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType] on the custom entity type
-    // and merge.
+    // please call
+    // [EntityTypes.GetEntityType][google.cloud.dialogflow.cx.v3beta1.EntityTypes.GetEntityType]
+    // on the custom entity type and merge.
     ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2;
   }
 
   // Required. The unique identifier of the session entity type.
   // Format: `projects/<Project ID>/locations/<Location
   // ID>/agents/<Agent ID>/sessions/<Session ID>/entityTypes/<Entity Type
-  // ID>`.
+  // ID>` or `projects/<Project ID>/locations/<Location ID>/agents/<Agent
+  // ID>/environments/<Environment ID>/sessions/<Session ID>/entityTypes/<Entity
+  // Type ID>`. If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
   string name = 1 [(google.api.field_behavior) = REQUIRED];
 
-  // Required. Indicates whether the additional data should override or supplement the
-  // custom entity type definition.
-  EntityOverrideMode entity_override_mode = 3 [(google.api.field_behavior) = REQUIRED];
+  // Required. Indicates whether the additional data should override or
+  // supplement the custom entity type definition.
+  EntityOverrideMode entity_override_mode = 3
+      [(google.api.field_behavior) = REQUIRED];
 
-  // Required. The collection of entities to override or supplement the custom entity
-  // type.
-  repeated EntityType.Entity entities = 4 [(google.api.field_behavior) = REQUIRED];
+  // Required. The collection of entities to override or supplement the custom
+  // entity type.
+  repeated EntityType.Entity entities = 4
+      [(google.api.field_behavior) = REQUIRED];
 }
 
-// The request message for [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
+// The request message for
+// [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
 message ListSessionEntityTypesRequest {
   // Required. The session to list all session entity types from.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/sessions/<Session ID>`.
+  // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location
+  // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`.
+  // If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
   string parent = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
@@ -161,7 +194,8 @@ message ListSessionEntityTypesRequest {
   string page_token = 3;
 }
 
-// The response message for [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
+// The response message for
+// [SessionEntityTypes.ListSessionEntityTypes][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.ListSessionEntityTypes].
 message ListSessionEntityTypesResponse {
   // The list of session entity types. There will be a maximum number of items
   // returned based on the page_size field in the request.
@@ -172,11 +206,16 @@ message ListSessionEntityTypesResponse {
   string next_page_token = 2;
 }
 
-// The request message for [SessionEntityTypes.GetSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.GetSessionEntityType].
+// The request message for
+// [SessionEntityTypes.GetSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.GetSessionEntityType].
 message GetSessionEntityTypeRequest {
   // Required. The name of the session entity type.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/sessions/<Session ID>/entityTypes/<Entity Type ID>`.
+  // ID>/sessions/<Session ID>/entityTypes/<Entity Type ID>` or
+  // `projects/<Project ID>/locations/<Location ID>/agents/<Agent
+  // ID>/environments/<Environment ID>/sessions/<Session ID>/entityTypes/<Entity
+  // Type ID>`. If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
@@ -185,11 +224,15 @@ message GetSessionEntityTypeRequest {
   ];
 }
 
-// The request message for [SessionEntityTypes.CreateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.CreateSessionEntityType].
+// The request message for
+// [SessionEntityTypes.CreateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.CreateSessionEntityType].
 message CreateSessionEntityTypeRequest {
   // Required. The session to create a session entity type for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/sessions/<Session ID>`.
+  // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location
+  // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`.
+  // If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
   string parent = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
@@ -198,25 +241,37 @@ message CreateSessionEntityTypeRequest {
   ];
 
   // Required. The session entity type to create.
-  SessionEntityType session_entity_type = 2 [(google.api.field_behavior) = REQUIRED];
+  SessionEntityType session_entity_type = 2
+      [(google.api.field_behavior) = REQUIRED];
 }
 
-// The request message for [SessionEntityTypes.UpdateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.UpdateSessionEntityType].
+// The request message for
+// [SessionEntityTypes.UpdateSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.UpdateSessionEntityType].
 message UpdateSessionEntityTypeRequest {
   // Required. The session entity type to update.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/sessions/<Session ID>/entityTypes/<Entity Type ID>`.
-  SessionEntityType session_entity_type = 1 [(google.api.field_behavior) = REQUIRED];
+  // ID>/sessions/<Session ID>/entityTypes/<Entity Type ID>` or
+  // `projects/<Project ID>/locations/<Location ID>/agents/<Agent
+  // ID>/environments/<Environment ID>/sessions/<Session ID>/entityTypes/<Entity
+  // Type ID>`. If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
+  SessionEntityType session_entity_type = 1
+      [(google.api.field_behavior) = REQUIRED];
 
   // The mask to control which fields get updated.
   google.protobuf.FieldMask update_mask = 2;
 }
 
-// The request message for [SessionEntityTypes.DeleteSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.DeleteSessionEntityType].
+// The request message for
+// [SessionEntityTypes.DeleteSessionEntityType][google.cloud.dialogflow.cx.v3beta1.SessionEntityTypes.DeleteSessionEntityType].
 message DeleteSessionEntityTypeRequest {
   // Required. The name of the session entity type to delete.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/sessions/<Session ID>/entityTypes/<Entity Type ID>`.
+  // ID>/sessions/<Session ID>/entityTypes/<Entity Type ID>` or
+  // `projects/<Project ID>/locations/<Location ID>/agents/<Agent
+  // ID>/environments/<Environment ID>/sessions/<Session ID>/entityTypes/<Entity
+  // Type ID>`. If `Environment ID` is not specified, we assume default 'draft'
+  // environment.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
diff --git a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/webhook.proto b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/webhook.proto
index ff5654742..3c7892196 100644
--- a/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/webhook.proto
+++ b/proto-google-cloud-dialogflow-cx-v3beta1/src/main/proto/google/cloud/dialogflow/cx/v3beta1/webhook.proto
@@ -96,7 +96,8 @@ message Webhook {
 
   // Represents configuration for a generic web service.
   message GenericWebService {
-    // Required. The webhook URI for receiving POST requests. It must use https protocol.
+    // Required. The webhook URI for receiving POST requests. It must use https
+    // protocol.
     string uri = 1 [(google.api.field_behavior) = REQUIRED];
 
     // The user name for HTTP Basic authentication.
@@ -111,10 +112,12 @@ message Webhook {
   }
 
   // The unique identifier of the webhook.
-  // Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook] method.
-  // [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook] populates the name automatically.
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/webhooks/<Webhook ID>`.
+  // Required for the
+  // [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook]
+  // method.
+  // [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook]
+  // populates the name automatically. Format: `projects/<Project
+  // ID>/locations/<Location ID>/agents/<Agent ID>/webhooks/<Webhook ID>`.
   string name = 1;
 
   // Required. The human-readable name of the webhook, unique within the agent.
@@ -135,7 +138,8 @@ message Webhook {
   bool disabled = 5;
 }
 
-// The request message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
+// The request message for
+// [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
 message ListWebhooksRequest {
   // Required. The agent to list all webhooks for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
@@ -154,7 +158,8 @@ message ListWebhooksRequest {
   string page_token = 3;
 }
 
-// The response message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
+// The response message for
+// [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3beta1.Webhooks.ListWebhooks].
 message ListWebhooksResponse {
   // The list of webhooks. There will be a maximum number of items returned
   // based on the page_size field in the request.
@@ -165,7 +170,8 @@ message ListWebhooksResponse {
   string next_page_token = 2;
 }
 
-// The request message for [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.GetWebhook].
+// The request message for
+// [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.GetWebhook].
 message GetWebhookRequest {
   // Required. The name of the webhook.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
@@ -178,7 +184,8 @@ message GetWebhookRequest {
   ];
 }
 
-// The request message for [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook].
+// The request message for
+// [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.CreateWebhook].
 message CreateWebhookRequest {
   // Required. The agent to create a webhook for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
@@ -193,7 +200,8 @@ message CreateWebhookRequest {
   Webhook webhook = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
-// The request message for [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook].
+// The request message for
+// [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.UpdateWebhook].
 message UpdateWebhookRequest {
   // Required. The webhook to update.
   Webhook webhook = 1 [(google.api.field_behavior) = REQUIRED];
@@ -203,7 +211,8 @@ message UpdateWebhookRequest {
   google.protobuf.FieldMask update_mask = 2;
 }
 
-// The request message for [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.DeleteWebhook].
+// The request message for
+// [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3beta1.Webhooks.DeleteWebhook].
 message DeleteWebhookRequest {
   // Required. The name of the webhook to delete.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
@@ -214,6 +223,18 @@ message DeleteWebhookRequest {
       type: "dialogflow.googleapis.com/Webhook"
     }
   ];
+
+  // This field has no effect for webhook not being used.
+  // For webhooks that are used by pages/flows/transition route groups:
+  //
+  // *  If `force` is set to false, an error will be returned with message
+  //    indicating the referenced resources.
+  // *  If `force` is set to true, Dialogflow will remove the webhook, as well
+  //    as any references to the webhook (i.e.
+  //    [Webhook][google.cloud.dialogflow.cx.v3beta1.Fulfillment.webhook] and
+  //    [tag][google.cloud.dialogflow.cx.v3beta1.Fulfillment.tag]in fulfillments
+  //    that point to this webhook will be removed).
+  bool force = 2;
 }
 
 // The request message for a webhook call.
@@ -238,11 +259,12 @@ message WebhookRequest {
     }
 
     // Always present. The unique identifier of the last matched
-    // [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format: `projects/<Project ID>/locations/<Location
-    // ID>/agents/<Agent ID>/intents/<Intent ID>`.
+    // [intent][google.cloud.dialogflow.cx.v3beta1.Intent]. Format:
+    // `projects/<Project ID>/locations/<Location ID>/agents/<Agent
+    // ID>/intents/<Intent ID>`.
     string last_matched_intent = 1 [(google.api.resource_reference) = {
-                                      type: "dialogflow.googleapis.com/Intent"
-                                    }];
+      type: "dialogflow.googleapis.com/Intent"
+    }];
 
     // Parameters identified as a result of intent matching. This is a map of
     // the name of the identified parameter to the value of the parameter
@@ -251,8 +273,9 @@ message WebhookRequest {
     map<string, IntentParameterValue> parameters = 2;
   }
 
-  // Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse] that
-  // will be returned to the API caller.
+  // Always present. The unique identifier of the
+  // [DetectIntentResponse][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse]
+  // that will be returned to the API caller.
   string detect_intent_response_id = 1;
 
   // Always present. Information about the fulfillment that triggered this
@@ -273,7 +296,8 @@ message WebhookRequest {
   // [WebhookResponse.fulfillment_response][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.fulfillment_response];
   repeated ResponseMessage messages = 7;
 
-  // Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
+  // Custom data set in
+  // [QueryParameters.payload][google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload].
   google.protobuf.Struct payload = 8;
 }
 
@@ -314,7 +338,8 @@ message WebhookResponse {
   // if it does not intend to modify session status.
   SessionInfo session_info = 3;
 
-  // Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
+  // Value to append directly to
+  // [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads].
   google.protobuf.Struct payload = 4;
 
   // The target to transition to. This can be set optionally to indicate an
@@ -325,15 +350,15 @@ message WebhookResponse {
     // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
     // ID>/flows/<Flow ID>/pages/<Page ID>`.
     string target_page = 5 [(google.api.resource_reference) = {
-                              type: "dialogflow.googleapis.com/Page"
-                            }];
+      type: "dialogflow.googleapis.com/Page"
+    }];
 
     // The target flow to transition to.
     // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
     // ID>/flows/<Flow ID>`.
     string target_flow = 6 [(google.api.resource_reference) = {
-                              type: "dialogflow.googleapis.com/Flow"
-                            }];
+      type: "dialogflow.googleapis.com/Flow"
+    }];
   }
 }
 
@@ -360,71 +385,98 @@ message PageInfo {
         FILLED = 3;
       }
 
-      // Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
+      // Always present for
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+      // Required for
       // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
       // The human-readable name of the parameter, unique within the form. This
       // field cannot be modified by the webhook.
       string display_name = 1;
 
-      // Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+      // Optional for both
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+      // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
       // Indicates whether the parameter is required. Optional parameters will
       // not trigger prompts; however, they are filled if the user specifies
       // them. Required parameters must be filled before form filling concludes.
       bool required = 2;
 
-      // Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Required for
-      // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The state of the parameter. This field can be set
-      // to [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID] by
-      // the webhook to invalidate the parameter; other values set by the
+      // Always present for
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+      // Required for
+      // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+      // The state of the parameter. This field can be set to
+      // [INVALID][google.cloud.dialogflow.cx.v3beta1.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+      // by the webhook to invalidate the parameter; other values set by the
       // webhook will be ignored.
       ParameterState state = 3;
 
-      // Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+      // Optional for both
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+      // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
       // The value of the parameter. This field can be set by the webhook to
       // change the parameter value.
       google.protobuf.Value value = 4;
 
-      // Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+      // Optional for
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+      // Ignored for
+      // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
       // Indicates if the parameter value was just collected on the last
       // conversation turn.
       bool just_collected = 5;
     }
 
-    // Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+    // Optional for both
+    // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+    // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
     // The parameters contained in the form. Note that the webhook cannot add
     // or remove any form parameter.
     repeated ParameterInfo parameter_info = 2;
   }
 
-  // Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-  // The unique identifier of the current page.
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/flows/<Flow ID>/pages/<Page ID>`.
-  string current_page = 1 [(google.api.resource_reference) = {
-                             type: "dialogflow.googleapis.com/Page"
-                           }];
+  // Always present for
+  // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+  // Ignored for
+  // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+  // unique identifier of the current page. Format: `projects/<Project
+  // ID>/locations/<Location ID>/agents/<Agent ID>/flows/<Flow ID>/pages/<Page
+  // ID>`.
+  string current_page = 1 [
+    (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Page" }
+  ];
 
-  // Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
+  // Optional for both
+  // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest] and
+  // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
   // Information about the form.
   FormInfo form_info = 3;
 }
 
 // Represents session information communicated to and from the webhook.
 message SessionInfo {
-  // Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-  // The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This
-  // field can be used by the webhook to identify a user.
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
+  // Always present for
+  // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+  // Ignored for
+  // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+  // unique identifier of the
+  // [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session].
+  // This field can be used by the webhook to identify a user. Format:
+  // `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/sessions/<Session ID>`.
   string session = 1 [(google.api.resource_reference) = {
-                        type: "dialogflow.googleapis.com/Session"
-                      }];
-
-  // Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse].
-  // All parameters collected from forms and intents during the session.
-  // Parameters can be created, updated, or removed by the webhook. To remove a
-  // parameter from the session, the webhook should explicitly set the parameter
-  // value to null in [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The map is keyed by parameters'
-  // display names.
+    type: "dialogflow.googleapis.com/Session"
+  }];
+
+  // Optional for
+  // [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest].
+  // Optional for
+  // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. All
+  // parameters collected from forms and intents during the session. Parameters
+  // can be created, updated, or removed by the webhook. To remove a parameter
+  // from the session, the webhook should explicitly set the parameter value to
+  // null in
+  // [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. The
+  // map is keyed by parameters' display names.
   map<string, google.protobuf.Value> parameters = 2;
 }
diff --git a/synth.metadata b/synth.metadata
index 7aa84a4e5..5a7080f12 100644
--- a/synth.metadata
+++ b/synth.metadata
@@ -11,8 +11,8 @@
       "git": {
         "name": "googleapis",
         "remote": "https://github.com/googleapis/googleapis.git",
-        "sha": "457ae33da792c0a799f72c5f494443ebe26186f0",
-        "internalRef": "327031420"
+        "sha": "6ee93932840fb3ccbaaa1527d549ddc04e4812fc",
+        "internalRef": "327289448"
       }
     },
     {