diff --git a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsClient.java b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsClient.java
index 3c788c8c7..c2bc75084 100644
--- a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsClient.java
+++ b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsClient.java
@@ -179,8 +179,8 @@ public final OperationsClient getOperationsClient() {
    * }</pre>
    *
    * @param parent Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions
-   *     for. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/flows/&lt;Flow ID&gt;`.
+   *     for. Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final ListVersionsPagedResponse listVersions(FlowName parent) {
@@ -207,8 +207,8 @@ public final ListVersionsPagedResponse listVersions(FlowName parent) {
    * }</pre>
    *
    * @param parent Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions
-   *     for. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/flows/&lt;Flow ID&gt;`.
+   *     for. Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final ListVersionsPagedResponse listVersions(String parent) {
@@ -318,8 +318,7 @@ public final UnaryCallable<ListVersionsRequest, ListVersionsResponse> listVersio
    * }</pre>
    *
    * @param name Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]. Format:
-   *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final Version getVersion(VersionName name) {
@@ -343,8 +342,7 @@ public final Version getVersion(VersionName name) {
    * }</pre>
    *
    * @param name Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]. Format:
-   *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final Version getVersion(String name) {
@@ -425,8 +423,8 @@ public final UnaryCallable<GetVersionRequest, Version> getVersionCallable() {
    * }</pre>
    *
    * @param parent Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
-   *     [Version][google.cloud.dialogflow.cx.v3.Version] for. Format: `projects/&lt;Project
-   *     ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;`.
+   *     [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * @param version Required. The version to create.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
@@ -464,8 +462,8 @@ public final OperationFuture<Version, CreateVersionOperationMetadata> createVers
    * }</pre>
    *
    * @param parent Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
-   *     [Version][google.cloud.dialogflow.cx.v3.Version] for. Format: `projects/&lt;Project
-   *     ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;`.
+   *     [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * @param version Required. The version to create.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
@@ -663,8 +661,8 @@ public final UnaryCallable<UpdateVersionRequest, Version> updateVersionCallable(
    * }</pre>
    *
    * @param name Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to
-   *     delete. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   *     delete. Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final void deleteVersion(VersionName name) {
@@ -688,8 +686,8 @@ public final void deleteVersion(VersionName name) {
    * }</pre>
    *
    * @param name Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to
-   *     delete. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   *     ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   *     delete. Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final void deleteVersion(String name) {
@@ -770,8 +768,8 @@ public final UnaryCallable<DeleteVersionRequest, Empty> deleteVersionCallable()
    * }</pre>
    *
    * @param name Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to
-   *     draft flow. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-   *     ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   *     draft flow. Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final OperationFuture<Empty, Struct> loadVersionAsync(VersionName name) {
@@ -804,8 +802,8 @@ public final OperationFuture<Empty, Struct> loadVersionAsync(VersionName name) {
    * }</pre>
    *
    * @param name Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to
-   *     draft flow. Format: `projects/&lt;Project ID&gt;/locations/&lt;Location
-   *     ID&gt;/agents/&lt;Agent ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   *     draft flow. Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
    */
   public final OperationFuture<Empty, Struct> loadVersionAsync(String name) {
@@ -917,6 +915,119 @@ public final UnaryCallable<LoadVersionRequest, Operation> loadVersionCallable()
     return stub.loadVersionCallable();
   }
 
+  // AUTO-GENERATED DOCUMENTATION AND METHOD.
+  /**
+   * Compares the specified base version with target version.
+   *
+   * <p>Sample code:
+   *
+   * <pre>{@code
+   * try (VersionsClient versionsClient = VersionsClient.create()) {
+   *   VersionName baseVersion =
+   *       VersionName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[VERSION]");
+   *   CompareVersionsResponse response = versionsClient.compareVersions(baseVersion);
+   * }
+   * }</pre>
+   *
+   * @param baseVersion Required. Name of the base flow version to compare with the target version.
+   *     Use version ID `0` to indicate the draft version of the specified flow.
+   *     <p>Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+   */
+  public final CompareVersionsResponse compareVersions(VersionName baseVersion) {
+    CompareVersionsRequest request =
+        CompareVersionsRequest.newBuilder()
+            .setBaseVersion(baseVersion == null ? null : baseVersion.toString())
+            .build();
+    return compareVersions(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD.
+  /**
+   * Compares the specified base version with target version.
+   *
+   * <p>Sample code:
+   *
+   * <pre>{@code
+   * try (VersionsClient versionsClient = VersionsClient.create()) {
+   *   String baseVersion =
+   *       VersionName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[VERSION]").toString();
+   *   CompareVersionsResponse response = versionsClient.compareVersions(baseVersion);
+   * }
+   * }</pre>
+   *
+   * @param baseVersion Required. Name of the base flow version to compare with the target version.
+   *     Use version ID `0` to indicate the draft version of the specified flow.
+   *     <p>Format:
+   *     `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+   */
+  public final CompareVersionsResponse compareVersions(String baseVersion) {
+    CompareVersionsRequest request =
+        CompareVersionsRequest.newBuilder().setBaseVersion(baseVersion).build();
+    return compareVersions(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD.
+  /**
+   * Compares the specified base version with target version.
+   *
+   * <p>Sample code:
+   *
+   * <pre>{@code
+   * try (VersionsClient versionsClient = VersionsClient.create()) {
+   *   CompareVersionsRequest request =
+   *       CompareVersionsRequest.newBuilder()
+   *           .setBaseVersion(
+   *               VersionName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[VERSION]")
+   *                   .toString())
+   *           .setTargetVersion(
+   *               VersionName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[VERSION]")
+   *                   .toString())
+   *           .setLanguageCode("languageCode-2092349083")
+   *           .build();
+   *   CompareVersionsResponse response = versionsClient.compareVersions(request);
+   * }
+   * }</pre>
+   *
+   * @param request The request object containing all of the parameters for the API call.
+   * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+   */
+  public final CompareVersionsResponse compareVersions(CompareVersionsRequest request) {
+    return compareVersionsCallable().call(request);
+  }
+
+  // AUTO-GENERATED DOCUMENTATION AND METHOD.
+  /**
+   * Compares the specified base version with target version.
+   *
+   * <p>Sample code:
+   *
+   * <pre>{@code
+   * try (VersionsClient versionsClient = VersionsClient.create()) {
+   *   CompareVersionsRequest request =
+   *       CompareVersionsRequest.newBuilder()
+   *           .setBaseVersion(
+   *               VersionName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[VERSION]")
+   *                   .toString())
+   *           .setTargetVersion(
+   *               VersionName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[VERSION]")
+   *                   .toString())
+   *           .setLanguageCode("languageCode-2092349083")
+   *           .build();
+   *   ApiFuture<CompareVersionsResponse> future =
+   *       versionsClient.compareVersionsCallable().futureCall(request);
+   *   // Do something.
+   *   CompareVersionsResponse response = future.get();
+   * }
+   * }</pre>
+   */
+  public final UnaryCallable<CompareVersionsRequest, CompareVersionsResponse>
+      compareVersionsCallable() {
+    return stub.compareVersionsCallable();
+  }
+
   @Override
   public final void close() {
     stub.close();
diff --git a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsSettings.java b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsSettings.java
index 15c2fa80c..8ec6fef26 100644
--- a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsSettings.java
+++ b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsSettings.java
@@ -114,6 +114,12 @@ public OperationCallSettings<LoadVersionRequest, Empty, Struct> loadVersionOpera
     return ((VersionsStubSettings) getStubSettings()).loadVersionOperationSettings();
   }
 
+  /** Returns the object with the settings used for calls to compareVersions. */
+  public UnaryCallSettings<CompareVersionsRequest, CompareVersionsResponse>
+      compareVersionsSettings() {
+    return ((VersionsStubSettings) getStubSettings()).compareVersionsSettings();
+  }
+
   public static final VersionsSettings create(VersionsStubSettings stub) throws IOException {
     return new VersionsSettings.Builder(stub.toBuilder()).build();
   }
@@ -255,6 +261,12 @@ public UnaryCallSettings.Builder<LoadVersionRequest, Operation> loadVersionSetti
       return getStubSettingsBuilder().loadVersionOperationSettings();
     }
 
+    /** Returns the builder for the settings used for calls to compareVersions. */
+    public UnaryCallSettings.Builder<CompareVersionsRequest, CompareVersionsResponse>
+        compareVersionsSettings() {
+      return getStubSettingsBuilder().compareVersionsSettings();
+    }
+
     @Override
     public VersionsSettings build() throws IOException {
       return new VersionsSettings(this);
diff --git a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/gapic_metadata.json b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/gapic_metadata.json
index 56504fac0..398904795 100644
--- a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/gapic_metadata.json
+++ b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/gapic_metadata.json
@@ -391,6 +391,9 @@
         "grpc": {
           "libraryClient": "VersionsClient",
           "rpcs": {
+            "CompareVersions": {
+              "methods": ["compareVersions", "compareVersions", "compareVersions", "compareVersionsCallable"]
+            },
             "CreateVersion": {
               "methods": ["createVersionAsync", "createVersionAsync", "createVersionAsync", "createVersionOperationCallable", "createVersionCallable"]
             },
diff --git a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/GrpcVersionsStub.java b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/GrpcVersionsStub.java
index 616b2b3c9..65cb8f53f 100644
--- a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/GrpcVersionsStub.java
+++ b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/GrpcVersionsStub.java
@@ -25,6 +25,8 @@
 import com.google.api.gax.rpc.ClientContext;
 import com.google.api.gax.rpc.OperationCallable;
 import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest;
+import com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse;
 import com.google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata;
 import com.google.cloud.dialogflow.cx.v3.CreateVersionRequest;
 import com.google.cloud.dialogflow.cx.v3.DeleteVersionRequest;
@@ -107,6 +109,17 @@ public class GrpcVersionsStub extends VersionsStub {
           .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
           .build();
 
+  private static final MethodDescriptor<CompareVersionsRequest, CompareVersionsResponse>
+      compareVersionsMethodDescriptor =
+          MethodDescriptor.<CompareVersionsRequest, CompareVersionsResponse>newBuilder()
+              .setType(MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName("google.cloud.dialogflow.cx.v3.Versions/CompareVersions")
+              .setRequestMarshaller(
+                  ProtoUtils.marshaller(CompareVersionsRequest.getDefaultInstance()))
+              .setResponseMarshaller(
+                  ProtoUtils.marshaller(CompareVersionsResponse.getDefaultInstance()))
+              .build();
+
   private final UnaryCallable<ListVersionsRequest, ListVersionsResponse> listVersionsCallable;
   private final UnaryCallable<ListVersionsRequest, ListVersionsPagedResponse>
       listVersionsPagedCallable;
@@ -118,6 +131,8 @@ public class GrpcVersionsStub extends VersionsStub {
   private final UnaryCallable<DeleteVersionRequest, Empty> deleteVersionCallable;
   private final UnaryCallable<LoadVersionRequest, Operation> loadVersionCallable;
   private final OperationCallable<LoadVersionRequest, Empty, Struct> loadVersionOperationCallable;
+  private final UnaryCallable<CompareVersionsRequest, CompareVersionsResponse>
+      compareVersionsCallable;
 
   private final BackgroundResource backgroundResources;
   private final GrpcOperationsStub operationsStub;
@@ -218,6 +233,17 @@ protected GrpcVersionsStub(
                   return params.build();
                 })
             .build();
+    GrpcCallSettings<CompareVersionsRequest, CompareVersionsResponse>
+        compareVersionsTransportSettings =
+            GrpcCallSettings.<CompareVersionsRequest, CompareVersionsResponse>newBuilder()
+                .setMethodDescriptor(compareVersionsMethodDescriptor)
+                .setParamsExtractor(
+                    request -> {
+                      ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
+                      params.put("base_version", String.valueOf(request.getBaseVersion()));
+                      return params.build();
+                    })
+                .build();
 
     this.listVersionsCallable =
         callableFactory.createUnaryCallable(
@@ -252,6 +278,9 @@ protected GrpcVersionsStub(
             settings.loadVersionOperationSettings(),
             clientContext,
             operationsStub);
+    this.compareVersionsCallable =
+        callableFactory.createUnaryCallable(
+            compareVersionsTransportSettings, settings.compareVersionsSettings(), clientContext);
 
     this.backgroundResources =
         new BackgroundResourceAggregation(clientContext.getBackgroundResources());
@@ -307,6 +336,11 @@ public OperationCallable<LoadVersionRequest, Empty, Struct> loadVersionOperation
     return loadVersionOperationCallable;
   }
 
+  @Override
+  public UnaryCallable<CompareVersionsRequest, CompareVersionsResponse> compareVersionsCallable() {
+    return compareVersionsCallable;
+  }
+
   @Override
   public final void close() {
     try {
diff --git a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/VersionsStub.java b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/VersionsStub.java
index bfe12c950..380e60dfe 100644
--- a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/VersionsStub.java
+++ b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/VersionsStub.java
@@ -21,6 +21,8 @@
 import com.google.api.gax.core.BackgroundResource;
 import com.google.api.gax.rpc.OperationCallable;
 import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest;
+import com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse;
 import com.google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata;
 import com.google.cloud.dialogflow.cx.v3.CreateVersionRequest;
 import com.google.cloud.dialogflow.cx.v3.DeleteVersionRequest;
@@ -86,6 +88,10 @@ public UnaryCallable<LoadVersionRequest, Operation> loadVersionCallable() {
     throw new UnsupportedOperationException("Not implemented: loadVersionCallable()");
   }
 
+  public UnaryCallable<CompareVersionsRequest, CompareVersionsResponse> compareVersionsCallable() {
+    throw new UnsupportedOperationException("Not implemented: compareVersionsCallable()");
+  }
+
   @Override
   public abstract void close();
 }
diff --git a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/VersionsStubSettings.java b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/VersionsStubSettings.java
index b40b5a5b5..7842adf0c 100644
--- a/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/VersionsStubSettings.java
+++ b/google-cloud-dialogflow-cx/src/main/java/com/google/cloud/dialogflow/cx/v3/stub/VersionsStubSettings.java
@@ -44,6 +44,8 @@
 import com.google.api.gax.rpc.TransportChannelProvider;
 import com.google.api.gax.rpc.UnaryCallSettings;
 import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest;
+import com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse;
 import com.google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata;
 import com.google.cloud.dialogflow.cx.v3.CreateVersionRequest;
 import com.google.cloud.dialogflow.cx.v3.DeleteVersionRequest;
@@ -117,6 +119,8 @@ public class VersionsStubSettings extends StubSettings<VersionsStubSettings> {
   private final UnaryCallSettings<LoadVersionRequest, Operation> loadVersionSettings;
   private final OperationCallSettings<LoadVersionRequest, Empty, Struct>
       loadVersionOperationSettings;
+  private final UnaryCallSettings<CompareVersionsRequest, CompareVersionsResponse>
+      compareVersionsSettings;
 
   private static final PagedListDescriptor<ListVersionsRequest, ListVersionsResponse, Version>
       LIST_VERSIONS_PAGE_STR_DESC =
@@ -213,6 +217,12 @@ public OperationCallSettings<LoadVersionRequest, Empty, Struct> loadVersionOpera
     return loadVersionOperationSettings;
   }
 
+  /** Returns the object with the settings used for calls to compareVersions. */
+  public UnaryCallSettings<CompareVersionsRequest, CompareVersionsResponse>
+      compareVersionsSettings() {
+    return compareVersionsSettings;
+  }
+
   @BetaApi("A restructuring of stub classes is planned, so this may break in the future")
   public VersionsStub createStub() throws IOException {
     if (getTransportChannelProvider()
@@ -296,6 +306,7 @@ protected VersionsStubSettings(Builder settingsBuilder) throws IOException {
     deleteVersionSettings = settingsBuilder.deleteVersionSettings().build();
     loadVersionSettings = settingsBuilder.loadVersionSettings().build();
     loadVersionOperationSettings = settingsBuilder.loadVersionOperationSettings().build();
+    compareVersionsSettings = settingsBuilder.compareVersionsSettings().build();
   }
 
   /** Builder for VersionsStubSettings. */
@@ -314,6 +325,8 @@ public static class Builder extends StubSettings.Builder<VersionsStubSettings, B
     private final UnaryCallSettings.Builder<LoadVersionRequest, Operation> loadVersionSettings;
     private final OperationCallSettings.Builder<LoadVersionRequest, Empty, Struct>
         loadVersionOperationSettings;
+    private final UnaryCallSettings.Builder<CompareVersionsRequest, CompareVersionsResponse>
+        compareVersionsSettings;
     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
         RETRYABLE_CODE_DEFINITIONS;
 
@@ -360,6 +373,7 @@ protected Builder(ClientContext clientContext) {
       deleteVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
       loadVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
       loadVersionOperationSettings = OperationCallSettings.newBuilder();
+      compareVersionsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
       unaryMethodSettingsBuilders =
           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
@@ -368,7 +382,8 @@ protected Builder(ClientContext clientContext) {
               createVersionSettings,
               updateVersionSettings,
               deleteVersionSettings,
-              loadVersionSettings);
+              loadVersionSettings,
+              compareVersionsSettings);
       initDefaults(this);
     }
 
@@ -383,6 +398,7 @@ protected Builder(VersionsStubSettings settings) {
       deleteVersionSettings = settings.deleteVersionSettings.toBuilder();
       loadVersionSettings = settings.loadVersionSettings.toBuilder();
       loadVersionOperationSettings = settings.loadVersionOperationSettings.toBuilder();
+      compareVersionsSettings = settings.compareVersionsSettings.toBuilder();
 
       unaryMethodSettingsBuilders =
           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
@@ -391,7 +407,8 @@ protected Builder(VersionsStubSettings settings) {
               createVersionSettings,
               updateVersionSettings,
               deleteVersionSettings,
-              loadVersionSettings);
+              loadVersionSettings,
+              compareVersionsSettings);
     }
 
     private static Builder createDefault() {
@@ -438,6 +455,11 @@ private static Builder initDefaults(Builder builder) {
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
 
+      builder
+          .compareVersionsSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
+
       builder
           .createVersionOperationSettings()
           .setInitialCallSettings(
@@ -553,6 +575,12 @@ public UnaryCallSettings.Builder<LoadVersionRequest, Operation> loadVersionSetti
       return loadVersionOperationSettings;
     }
 
+    /** Returns the builder for the settings used for calls to compareVersions. */
+    public UnaryCallSettings.Builder<CompareVersionsRequest, CompareVersionsResponse>
+        compareVersionsSettings() {
+      return compareVersionsSettings;
+    }
+
     @Override
     public VersionsStubSettings build() throws IOException {
       return new VersionsStubSettings(this);
diff --git a/google-cloud-dialogflow-cx/src/test/java/com/google/cloud/dialogflow/cx/v3/MockVersionsImpl.java b/google-cloud-dialogflow-cx/src/test/java/com/google/cloud/dialogflow/cx/v3/MockVersionsImpl.java
index 230c6c9fd..f9dfba444 100644
--- a/google-cloud-dialogflow-cx/src/test/java/com/google/cloud/dialogflow/cx/v3/MockVersionsImpl.java
+++ b/google-cloud-dialogflow-cx/src/test/java/com/google/cloud/dialogflow/cx/v3/MockVersionsImpl.java
@@ -182,4 +182,25 @@ public void loadVersion(LoadVersionRequest request, StreamObserver<Operation> re
                   Exception.class.getName())));
     }
   }
+
+  @Override
+  public void compareVersions(
+      CompareVersionsRequest request, StreamObserver<CompareVersionsResponse> responseObserver) {
+    Object response = responses.poll();
+    if (response instanceof CompareVersionsResponse) {
+      requests.add(request);
+      responseObserver.onNext(((CompareVersionsResponse) response));
+      responseObserver.onCompleted();
+    } else if (response instanceof Exception) {
+      responseObserver.onError(((Exception) response));
+    } else {
+      responseObserver.onError(
+          new IllegalArgumentException(
+              String.format(
+                  "Unrecognized response type %s for method CompareVersions, expected %s or %s",
+                  response == null ? "null" : response.getClass().getName(),
+                  CompareVersionsResponse.class.getName(),
+                  Exception.class.getName())));
+    }
+  }
 }
diff --git a/google-cloud-dialogflow-cx/src/test/java/com/google/cloud/dialogflow/cx/v3/VersionsClientTest.java b/google-cloud-dialogflow-cx/src/test/java/com/google/cloud/dialogflow/cx/v3/VersionsClientTest.java
index 7fa4081e3..e38c95ffc 100644
--- a/google-cloud-dialogflow-cx/src/test/java/com/google/cloud/dialogflow/cx/v3/VersionsClientTest.java
+++ b/google-cloud-dialogflow-cx/src/test/java/com/google/cloud/dialogflow/cx/v3/VersionsClientTest.java
@@ -572,4 +572,86 @@ public void loadVersionExceptionTest2() throws Exception {
       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
     }
   }
+
+  @Test
+  public void compareVersionsTest() throws Exception {
+    CompareVersionsResponse expectedResponse =
+        CompareVersionsResponse.newBuilder()
+            .setBaseVersionContentJson("baseVersionContentJson-856795718")
+            .setTargetVersionContentJson("targetVersionContentJson813797498")
+            .setCompareTime(Timestamp.newBuilder().build())
+            .build();
+    mockVersions.addResponse(expectedResponse);
+
+    VersionName baseVersion =
+        VersionName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[VERSION]");
+
+    CompareVersionsResponse actualResponse = client.compareVersions(baseVersion);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<AbstractMessage> actualRequests = mockVersions.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    CompareVersionsRequest actualRequest = ((CompareVersionsRequest) actualRequests.get(0));
+
+    Assert.assertEquals(baseVersion.toString(), actualRequest.getBaseVersion());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  public void compareVersionsExceptionTest() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
+    mockVersions.addException(exception);
+
+    try {
+      VersionName baseVersion =
+          VersionName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[VERSION]");
+      client.compareVersions(baseVersion);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void compareVersionsTest2() throws Exception {
+    CompareVersionsResponse expectedResponse =
+        CompareVersionsResponse.newBuilder()
+            .setBaseVersionContentJson("baseVersionContentJson-856795718")
+            .setTargetVersionContentJson("targetVersionContentJson813797498")
+            .setCompareTime(Timestamp.newBuilder().build())
+            .build();
+    mockVersions.addResponse(expectedResponse);
+
+    String baseVersion = "baseVersion-1641901881";
+
+    CompareVersionsResponse actualResponse = client.compareVersions(baseVersion);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<AbstractMessage> actualRequests = mockVersions.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    CompareVersionsRequest actualRequest = ((CompareVersionsRequest) actualRequests.get(0));
+
+    Assert.assertEquals(baseVersion, actualRequest.getBaseVersion());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  public void compareVersionsExceptionTest2() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
+    mockVersions.addException(exception);
+
+    try {
+      String baseVersion = "baseVersion-1641901881";
+      client.compareVersions(baseVersion);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
 }
diff --git a/grpc-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsGrpc.java b/grpc-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsGrpc.java
index 31d7de6ac..352102b0f 100644
--- a/grpc-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsGrpc.java
+++ b/grpc-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionsGrpc.java
@@ -298,6 +298,52 @@ private VersionsGrpc() {}
     return getLoadVersionMethod;
   }
 
+  private static volatile io.grpc.MethodDescriptor<
+          com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest,
+          com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>
+      getCompareVersionsMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "CompareVersions",
+      requestType = com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest.class,
+      responseType = com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor<
+          com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest,
+          com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>
+      getCompareVersionsMethod() {
+    io.grpc.MethodDescriptor<
+            com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest,
+            com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>
+        getCompareVersionsMethod;
+    if ((getCompareVersionsMethod = VersionsGrpc.getCompareVersionsMethod) == null) {
+      synchronized (VersionsGrpc.class) {
+        if ((getCompareVersionsMethod = VersionsGrpc.getCompareVersionsMethod) == null) {
+          VersionsGrpc.getCompareVersionsMethod =
+              getCompareVersionsMethod =
+                  io.grpc.MethodDescriptor
+                      .<com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest,
+                          com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>
+                          newBuilder()
+                      .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+                      .setFullMethodName(generateFullMethodName(SERVICE_NAME, "CompareVersions"))
+                      .setSampledToLocalTracing(true)
+                      .setRequestMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest
+                                  .getDefaultInstance()))
+                      .setResponseMarshaller(
+                          io.grpc.protobuf.ProtoUtils.marshaller(
+                              com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse
+                                  .getDefaultInstance()))
+                      .setSchemaDescriptor(new VersionsMethodDescriptorSupplier("CompareVersions"))
+                      .build();
+        }
+      }
+    }
+    return getCompareVersionsMethod;
+  }
+
   /** Creates a new async stub that supports all call types for the service */
   public static VersionsStub newStub(io.grpc.Channel channel) {
     io.grpc.stub.AbstractStub.StubFactory<VersionsStub> factory =
@@ -351,7 +397,8 @@ public abstract static class VersionsImplBase implements io.grpc.BindableService
      *
      *
      * <pre>
-     * Returns the list of all versions in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+     * Returns the list of all versions in the specified
+     * [Flow][google.cloud.dialogflow.cx.v3.Flow].
      * </pre>
      */
     public void listVersions(
@@ -379,11 +426,13 @@ public void getVersion(
      *
      *
      * <pre>
-     * Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+     * Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified
+     * [Flow][google.cloud.dialogflow.cx.v3.Flow].
      * This method is a [long-running
      * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
      * The returned `Operation` type has the following method-specific fields:
-     * - `metadata`: [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
+     * - `metadata`:
+     * [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
      * - `response`: [Version][google.cloud.dialogflow.cx.v3.Version]
      * </pre>
      */
@@ -443,6 +492,21 @@ public void loadVersion(
           getLoadVersionMethod(), responseObserver);
     }
 
+    /**
+     *
+     *
+     * <pre>
+     * Compares the specified base version with target version.
+     * </pre>
+     */
+    public void compareVersions(
+        com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest request,
+        io.grpc.stub.StreamObserver<com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>
+            responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(
+          getCompareVersionsMethod(), responseObserver);
+    }
+
     @java.lang.Override
     public final io.grpc.ServerServiceDefinition bindService() {
       return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
@@ -483,6 +547,13 @@ public final io.grpc.ServerServiceDefinition bindService() {
                   new MethodHandlers<
                       com.google.cloud.dialogflow.cx.v3.LoadVersionRequest,
                       com.google.longrunning.Operation>(this, METHODID_LOAD_VERSION)))
+          .addMethod(
+              getCompareVersionsMethod(),
+              io.grpc.stub.ServerCalls.asyncUnaryCall(
+                  new MethodHandlers<
+                      com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest,
+                      com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>(
+                      this, METHODID_COMPARE_VERSIONS)))
           .build();
     }
   }
@@ -508,7 +579,8 @@ protected VersionsStub build(io.grpc.Channel channel, io.grpc.CallOptions callOp
      *
      *
      * <pre>
-     * Returns the list of all versions in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+     * Returns the list of all versions in the specified
+     * [Flow][google.cloud.dialogflow.cx.v3.Flow].
      * </pre>
      */
     public void listVersions(
@@ -539,11 +611,13 @@ public void getVersion(
      *
      *
      * <pre>
-     * Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+     * Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified
+     * [Flow][google.cloud.dialogflow.cx.v3.Flow].
      * This method is a [long-running
      * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
      * The returned `Operation` type has the following method-specific fields:
-     * - `metadata`: [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
+     * - `metadata`:
+     * [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
      * - `response`: [Version][google.cloud.dialogflow.cx.v3.Version]
      * </pre>
      */
@@ -610,6 +684,23 @@ public void loadVersion(
           request,
           responseObserver);
     }
+
+    /**
+     *
+     *
+     * <pre>
+     * Compares the specified base version with target version.
+     * </pre>
+     */
+    public void compareVersions(
+        com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest request,
+        io.grpc.stub.StreamObserver<com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>
+            responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getCompareVersionsMethod(), getCallOptions()),
+          request,
+          responseObserver);
+    }
   }
 
   /**
@@ -634,7 +725,8 @@ protected VersionsBlockingStub build(io.grpc.Channel channel, io.grpc.CallOption
      *
      *
      * <pre>
-     * Returns the list of all versions in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+     * Returns the list of all versions in the specified
+     * [Flow][google.cloud.dialogflow.cx.v3.Flow].
      * </pre>
      */
     public com.google.cloud.dialogflow.cx.v3.ListVersionsResponse listVersions(
@@ -660,11 +752,13 @@ public com.google.cloud.dialogflow.cx.v3.Version getVersion(
      *
      *
      * <pre>
-     * Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+     * Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified
+     * [Flow][google.cloud.dialogflow.cx.v3.Flow].
      * This method is a [long-running
      * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
      * The returned `Operation` type has the following method-specific fields:
-     * - `metadata`: [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
+     * - `metadata`:
+     * [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
      * - `response`: [Version][google.cloud.dialogflow.cx.v3.Version]
      * </pre>
      */
@@ -719,6 +813,19 @@ public com.google.longrunning.Operation loadVersion(
       return io.grpc.stub.ClientCalls.blockingUnaryCall(
           getChannel(), getLoadVersionMethod(), getCallOptions(), request);
     }
+
+    /**
+     *
+     *
+     * <pre>
+     * Compares the specified base version with target version.
+     * </pre>
+     */
+    public com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse compareVersions(
+        com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getCompareVersionsMethod(), getCallOptions(), request);
+    }
   }
 
   /**
@@ -743,7 +850,8 @@ protected VersionsFutureStub build(io.grpc.Channel channel, io.grpc.CallOptions
      *
      *
      * <pre>
-     * Returns the list of all versions in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+     * Returns the list of all versions in the specified
+     * [Flow][google.cloud.dialogflow.cx.v3.Flow].
      * </pre>
      */
     public com.google.common.util.concurrent.ListenableFuture<
@@ -771,11 +879,13 @@ protected VersionsFutureStub build(io.grpc.Channel channel, io.grpc.CallOptions
      *
      *
      * <pre>
-     * Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+     * Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified
+     * [Flow][google.cloud.dialogflow.cx.v3.Flow].
      * This method is a [long-running
      * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
      * The returned `Operation` type has the following method-specific fields:
-     * - `metadata`: [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
+     * - `metadata`:
+     * [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
      * - `response`: [Version][google.cloud.dialogflow.cx.v3.Version]
      * </pre>
      */
@@ -831,6 +941,20 @@ protected VersionsFutureStub build(io.grpc.Channel channel, io.grpc.CallOptions
       return io.grpc.stub.ClientCalls.futureUnaryCall(
           getChannel().newCall(getLoadVersionMethod(), getCallOptions()), request);
     }
+
+    /**
+     *
+     *
+     * <pre>
+     * Compares the specified base version with target version.
+     * </pre>
+     */
+    public com.google.common.util.concurrent.ListenableFuture<
+            com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>
+        compareVersions(com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getCompareVersionsMethod(), getCallOptions()), request);
+    }
   }
 
   private static final int METHODID_LIST_VERSIONS = 0;
@@ -839,6 +963,7 @@ protected VersionsFutureStub build(io.grpc.Channel channel, io.grpc.CallOptions
   private static final int METHODID_UPDATE_VERSION = 3;
   private static final int METHODID_DELETE_VERSION = 4;
   private static final int METHODID_LOAD_VERSION = 5;
+  private static final int METHODID_COMPARE_VERSIONS = 6;
 
   private static final class MethodHandlers<Req, Resp>
       implements io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
@@ -890,6 +1015,13 @@ public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserv
               (com.google.cloud.dialogflow.cx.v3.LoadVersionRequest) request,
               (io.grpc.stub.StreamObserver<com.google.longrunning.Operation>) responseObserver);
           break;
+        case METHODID_COMPARE_VERSIONS:
+          serviceImpl.compareVersions(
+              (com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest) request,
+              (io.grpc.stub.StreamObserver<
+                      com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse>)
+                  responseObserver);
+          break;
         default:
           throw new AssertionError();
       }
@@ -958,6 +1090,7 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
                       .addMethod(getUpdateVersionMethod())
                       .addMethod(getDeleteVersionMethod())
                       .addMethod(getLoadVersionMethod())
+                      .addMethod(getCompareVersionsMethod())
                       .build();
         }
       }
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsRequest.java
new file mode 100644
index 000000000..8eaf83cee
--- /dev/null
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsRequest.java
@@ -0,0 +1,1102 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/dialogflow/cx/v3/version.proto
+
+package com.google.cloud.dialogflow.cx.v3;
+
+/**
+ *
+ *
+ * <pre>
+ * The request message for
+ * [Versions.CompareVersions][google.cloud.dialogflow.cx.v3.Versions.CompareVersions].
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.dialogflow.cx.v3.CompareVersionsRequest}
+ */
+public final class CompareVersionsRequest extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3.CompareVersionsRequest)
+    CompareVersionsRequestOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use CompareVersionsRequest.newBuilder() to construct.
+  private CompareVersionsRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private CompareVersionsRequest() {
+    baseVersion_ = "";
+    targetVersion_ = "";
+    languageCode_ = "";
+  }
+
+  @java.lang.Override
+  @SuppressWarnings({"unused"})
+  protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+    return new CompareVersionsRequest();
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private CompareVersionsRequest(
+      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();
+
+              baseVersion_ = s;
+              break;
+            }
+          case 18:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              targetVersion_ = s;
+              break;
+            }
+          case 26:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              languageCode_ = s;
+              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.v3.VersionProto
+        .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.dialogflow.cx.v3.VersionProto
+        .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest.class,
+            com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest.Builder.class);
+  }
+
+  public static final int BASE_VERSION_FIELD_NUMBER = 1;
+  private volatile java.lang.Object baseVersion_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. Name of the base flow version to compare with the target version.
+   * Use version ID `0` to indicate the draft version of the specified flow.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * </pre>
+   *
+   * <code>
+   * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   *
+   * @return The baseVersion.
+   */
+  @java.lang.Override
+  public java.lang.String getBaseVersion() {
+    java.lang.Object ref = baseVersion_;
+    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();
+      baseVersion_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. Name of the base flow version to compare with the target version.
+   * Use version ID `0` to indicate the draft version of the specified flow.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * </pre>
+   *
+   * <code>
+   * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   *
+   * @return The bytes for baseVersion.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString getBaseVersionBytes() {
+    java.lang.Object ref = baseVersion_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      baseVersion_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int TARGET_VERSION_FIELD_NUMBER = 2;
+  private volatile java.lang.Object targetVersion_;
+  /**
+   *
+   *
+   * <pre>
+   * Required. Name of the target flow version to compare with the
+   * base version. Use version ID `0` to indicate the draft version of the
+   * specified flow. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * </pre>
+   *
+   * <code>
+   * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   *
+   * @return The targetVersion.
+   */
+  @java.lang.Override
+  public java.lang.String getTargetVersion() {
+    java.lang.Object ref = targetVersion_;
+    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();
+      targetVersion_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Required. Name of the target flow version to compare with the
+   * base version. Use version ID `0` to indicate the draft version of the
+   * specified flow. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * </pre>
+   *
+   * <code>
+   * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   *
+   * @return The bytes for targetVersion.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString getTargetVersionBytes() {
+    java.lang.Object ref = targetVersion_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      targetVersion_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int LANGUAGE_CODE_FIELD_NUMBER = 3;
+  private volatile java.lang.Object languageCode_;
+  /**
+   *
+   *
+   * <pre>
+   * The language to compare the flow versions for.
+   * If not specified, the agent's default language is used.
+   * [Many
+   * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+   * supported. Note: languages must be enabled in the agent before they can be
+   * used.
+   * </pre>
+   *
+   * <code>string language_code = 3;</code>
+   *
+   * @return The languageCode.
+   */
+  @java.lang.Override
+  public java.lang.String getLanguageCode() {
+    java.lang.Object ref = languageCode_;
+    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();
+      languageCode_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * The language to compare the flow versions for.
+   * If not specified, the agent's default language is used.
+   * [Many
+   * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+   * supported. Note: languages must be enabled in the agent before they can be
+   * used.
+   * </pre>
+   *
+   * <code>string language_code = 3;</code>
+   *
+   * @return The bytes for languageCode.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString getLanguageCodeBytes() {
+    java.lang.Object ref = languageCode_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      languageCode_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  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 {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseVersion_)) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, baseVersion_);
+    }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetVersion_)) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, targetVersion_);
+    }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(languageCode_)) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, languageCode_);
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseVersion_)) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, baseVersion_);
+    }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetVersion_)) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, targetVersion_);
+    }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(languageCode_)) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, languageCode_);
+    }
+    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.v3.CompareVersionsRequest)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest other =
+        (com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest) obj;
+
+    if (!getBaseVersion().equals(other.getBaseVersion())) return false;
+    if (!getTargetVersion().equals(other.getTargetVersion())) return false;
+    if (!getLanguageCode().equals(other.getLanguageCode())) return false;
+    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 = (37 * hash) + BASE_VERSION_FIELD_NUMBER;
+    hash = (53 * hash) + getBaseVersion().hashCode();
+    hash = (37 * hash) + TARGET_VERSION_FIELD_NUMBER;
+    hash = (53 * hash) + getTargetVersion().hashCode();
+    hash = (37 * hash) + LANGUAGE_CODE_FIELD_NUMBER;
+    hash = (53 * hash) + getLanguageCode().hashCode();
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest parseFrom(
+      java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest 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.v3.CompareVersionsRequest parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest 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.v3.CompareVersionsRequest parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest 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.v3.CompareVersionsRequest parseFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest 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.v3.CompareVersionsRequest parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest 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.v3.CompareVersionsRequest 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.v3.CompareVersionsRequest 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.v3.CompareVersionsRequest 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>
+   * The request message for
+   * [Versions.CompareVersions][google.cloud.dialogflow.cx.v3.Versions.CompareVersions].
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.dialogflow.cx.v3.CompareVersionsRequest}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3.CompareVersionsRequest)
+      com.google.cloud.dialogflow.cx.v3.CompareVersionsRequestOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.dialogflow.cx.v3.VersionProto
+          .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.dialogflow.cx.v3.VersionProto
+          .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest.class,
+              com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest.Builder.class);
+    }
+
+    // Construct using com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest.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();
+      baseVersion_ = "";
+
+      targetVersion_ = "";
+
+      languageCode_ = "";
+
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.dialogflow.cx.v3.VersionProto
+          .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest getDefaultInstanceForType() {
+      return com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest build() {
+      com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest buildPartial() {
+      com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest result =
+          new com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest(this);
+      result.baseVersion_ = baseVersion_;
+      result.targetVersion_ = targetVersion_;
+      result.languageCode_ = languageCode_;
+      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.v3.CompareVersionsRequest) {
+        return mergeFrom((com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest other) {
+      if (other == com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest.getDefaultInstance())
+        return this;
+      if (!other.getBaseVersion().isEmpty()) {
+        baseVersion_ = other.baseVersion_;
+        onChanged();
+      }
+      if (!other.getTargetVersion().isEmpty()) {
+        targetVersion_ = other.targetVersion_;
+        onChanged();
+      }
+      if (!other.getLanguageCode().isEmpty()) {
+        languageCode_ = other.languageCode_;
+        onChanged();
+      }
+      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.v3.CompareVersionsRequest parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage =
+            (com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object baseVersion_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the base flow version to compare with the target version.
+     * Use version ID `0` to indicate the draft version of the specified flow.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @return The baseVersion.
+     */
+    public java.lang.String getBaseVersion() {
+      java.lang.Object ref = baseVersion_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        baseVersion_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the base flow version to compare with the target version.
+     * Use version ID `0` to indicate the draft version of the specified flow.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @return The bytes for baseVersion.
+     */
+    public com.google.protobuf.ByteString getBaseVersionBytes() {
+      java.lang.Object ref = baseVersion_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        baseVersion_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the base flow version to compare with the target version.
+     * Use version ID `0` to indicate the draft version of the specified flow.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @param value The baseVersion to set.
+     * @return This builder for chaining.
+     */
+    public Builder setBaseVersion(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      baseVersion_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the base flow version to compare with the target version.
+     * Use version ID `0` to indicate the draft version of the specified flow.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearBaseVersion() {
+
+      baseVersion_ = getDefaultInstance().getBaseVersion();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the base flow version to compare with the target version.
+     * Use version ID `0` to indicate the draft version of the specified flow.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @param value The bytes for baseVersion to set.
+     * @return This builder for chaining.
+     */
+    public Builder setBaseVersionBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      baseVersion_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object targetVersion_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the target flow version to compare with the
+     * base version. Use version ID `0` to indicate the draft version of the
+     * specified flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @return The targetVersion.
+     */
+    public java.lang.String getTargetVersion() {
+      java.lang.Object ref = targetVersion_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        targetVersion_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the target flow version to compare with the
+     * base version. Use version ID `0` to indicate the draft version of the
+     * specified flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @return The bytes for targetVersion.
+     */
+    public com.google.protobuf.ByteString getTargetVersionBytes() {
+      java.lang.Object ref = targetVersion_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        targetVersion_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the target flow version to compare with the
+     * base version. Use version ID `0` to indicate the draft version of the
+     * specified flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @param value The targetVersion to set.
+     * @return This builder for chaining.
+     */
+    public Builder setTargetVersion(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      targetVersion_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the target flow version to compare with the
+     * base version. Use version ID `0` to indicate the draft version of the
+     * specified flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearTargetVersion() {
+
+      targetVersion_ = getDefaultInstance().getTargetVersion();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Required. Name of the target flow version to compare with the
+     * base version. Use version ID `0` to indicate the draft version of the
+     * specified flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * </pre>
+     *
+     * <code>
+     * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+     * </code>
+     *
+     * @param value The bytes for targetVersion to set.
+     * @return This builder for chaining.
+     */
+    public Builder setTargetVersionBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      targetVersion_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object languageCode_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * The language to compare the flow versions for.
+     * If not specified, the agent's default language is used.
+     * [Many
+     * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+     * supported. Note: languages must be enabled in the agent before they can be
+     * used.
+     * </pre>
+     *
+     * <code>string language_code = 3;</code>
+     *
+     * @return The languageCode.
+     */
+    public java.lang.String getLanguageCode() {
+      java.lang.Object ref = languageCode_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        languageCode_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The language to compare the flow versions for.
+     * If not specified, the agent's default language is used.
+     * [Many
+     * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+     * supported. Note: languages must be enabled in the agent before they can be
+     * used.
+     * </pre>
+     *
+     * <code>string language_code = 3;</code>
+     *
+     * @return The bytes for languageCode.
+     */
+    public com.google.protobuf.ByteString getLanguageCodeBytes() {
+      java.lang.Object ref = languageCode_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        languageCode_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The language to compare the flow versions for.
+     * If not specified, the agent's default language is used.
+     * [Many
+     * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+     * supported. Note: languages must be enabled in the agent before they can be
+     * used.
+     * </pre>
+     *
+     * <code>string language_code = 3;</code>
+     *
+     * @param value The languageCode to set.
+     * @return This builder for chaining.
+     */
+    public Builder setLanguageCode(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      languageCode_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The language to compare the flow versions for.
+     * If not specified, the agent's default language is used.
+     * [Many
+     * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+     * supported. Note: languages must be enabled in the agent before they can be
+     * used.
+     * </pre>
+     *
+     * <code>string language_code = 3;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearLanguageCode() {
+
+      languageCode_ = getDefaultInstance().getLanguageCode();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The language to compare the flow versions for.
+     * If not specified, the agent's default language is used.
+     * [Many
+     * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+     * supported. Note: languages must be enabled in the agent before they can be
+     * used.
+     * </pre>
+     *
+     * <code>string language_code = 3;</code>
+     *
+     * @param value The bytes for languageCode to set.
+     * @return This builder for chaining.
+     */
+    public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      languageCode_ = 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.v3.CompareVersionsRequest)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3.CompareVersionsRequest)
+  private static final com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest();
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<CompareVersionsRequest> PARSER =
+      new com.google.protobuf.AbstractParser<CompareVersionsRequest>() {
+        @java.lang.Override
+        public CompareVersionsRequest parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new CompareVersionsRequest(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<CompareVersionsRequest> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<CompareVersionsRequest> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.dialogflow.cx.v3.CompareVersionsRequest getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsRequestOrBuilder.java
new file mode 100644
index 000000000..04c139c85
--- /dev/null
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsRequestOrBuilder.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/dialogflow/cx/v3/version.proto
+
+package com.google.cloud.dialogflow.cx.v3;
+
+public interface CompareVersionsRequestOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3.CompareVersionsRequest)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. Name of the base flow version to compare with the target version.
+   * Use version ID `0` to indicate the draft version of the specified flow.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * </pre>
+   *
+   * <code>
+   * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   *
+   * @return The baseVersion.
+   */
+  java.lang.String getBaseVersion();
+  /**
+   *
+   *
+   * <pre>
+   * Required. Name of the base flow version to compare with the target version.
+   * Use version ID `0` to indicate the draft version of the specified flow.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * </pre>
+   *
+   * <code>
+   * string base_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   *
+   * @return The bytes for baseVersion.
+   */
+  com.google.protobuf.ByteString getBaseVersionBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * Required. Name of the target flow version to compare with the
+   * base version. Use version ID `0` to indicate the draft version of the
+   * specified flow. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * </pre>
+   *
+   * <code>
+   * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   *
+   * @return The targetVersion.
+   */
+  java.lang.String getTargetVersion();
+  /**
+   *
+   *
+   * <pre>
+   * Required. Name of the target flow version to compare with the
+   * base version. Use version ID `0` to indicate the draft version of the
+   * specified flow. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * </pre>
+   *
+   * <code>
+   * string target_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+   * </code>
+   *
+   * @return The bytes for targetVersion.
+   */
+  com.google.protobuf.ByteString getTargetVersionBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * The language to compare the flow versions for.
+   * If not specified, the agent's default language is used.
+   * [Many
+   * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+   * supported. Note: languages must be enabled in the agent before they can be
+   * used.
+   * </pre>
+   *
+   * <code>string language_code = 3;</code>
+   *
+   * @return The languageCode.
+   */
+  java.lang.String getLanguageCode();
+  /**
+   *
+   *
+   * <pre>
+   * The language to compare the flow versions for.
+   * If not specified, the agent's default language is used.
+   * [Many
+   * languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+   * supported. Note: languages must be enabled in the agent before they can be
+   * used.
+   * </pre>
+   *
+   * <code>string language_code = 3;</code>
+   *
+   * @return The bytes for languageCode.
+   */
+  com.google.protobuf.ByteString getLanguageCodeBytes();
+}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsResponse.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsResponse.java
new file mode 100644
index 000000000..4a57d4c53
--- /dev/null
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsResponse.java
@@ -0,0 +1,1093 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/dialogflow/cx/v3/version.proto
+
+package com.google.cloud.dialogflow.cx.v3;
+
+/**
+ *
+ *
+ * <pre>
+ * The response message for
+ * [Versions.CompareVersions][google.cloud.dialogflow.cx.v3.Versions.CompareVersions].
+ * </pre>
+ *
+ * Protobuf type {@code google.cloud.dialogflow.cx.v3.CompareVersionsResponse}
+ */
+public final class CompareVersionsResponse extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.cloud.dialogflow.cx.v3.CompareVersionsResponse)
+    CompareVersionsResponseOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use CompareVersionsResponse.newBuilder() to construct.
+  private CompareVersionsResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private CompareVersionsResponse() {
+    baseVersionContentJson_ = "";
+    targetVersionContentJson_ = "";
+  }
+
+  @java.lang.Override
+  @SuppressWarnings({"unused"})
+  protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+    return new CompareVersionsResponse();
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  private CompareVersionsResponse(
+      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();
+
+              baseVersionContentJson_ = s;
+              break;
+            }
+          case 18:
+            {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              targetVersionContentJson_ = s;
+              break;
+            }
+          case 26:
+            {
+              com.google.protobuf.Timestamp.Builder subBuilder = null;
+              if (compareTime_ != null) {
+                subBuilder = compareTime_.toBuilder();
+              }
+              compareTime_ =
+                  input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(compareTime_);
+                compareTime_ = subBuilder.buildPartial();
+              }
+
+              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.v3.VersionProto
+        .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.cloud.dialogflow.cx.v3.VersionProto
+        .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse.class,
+            com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse.Builder.class);
+  }
+
+  public static final int BASE_VERSION_CONTENT_JSON_FIELD_NUMBER = 1;
+  private volatile java.lang.Object baseVersionContentJson_;
+  /**
+   *
+   *
+   * <pre>
+   * JSON representation of the base version content.
+   * </pre>
+   *
+   * <code>string base_version_content_json = 1;</code>
+   *
+   * @return The baseVersionContentJson.
+   */
+  @java.lang.Override
+  public java.lang.String getBaseVersionContentJson() {
+    java.lang.Object ref = baseVersionContentJson_;
+    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();
+      baseVersionContentJson_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * JSON representation of the base version content.
+   * </pre>
+   *
+   * <code>string base_version_content_json = 1;</code>
+   *
+   * @return The bytes for baseVersionContentJson.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString getBaseVersionContentJsonBytes() {
+    java.lang.Object ref = baseVersionContentJson_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      baseVersionContentJson_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int TARGET_VERSION_CONTENT_JSON_FIELD_NUMBER = 2;
+  private volatile java.lang.Object targetVersionContentJson_;
+  /**
+   *
+   *
+   * <pre>
+   * JSON representation of the target version content.
+   * </pre>
+   *
+   * <code>string target_version_content_json = 2;</code>
+   *
+   * @return The targetVersionContentJson.
+   */
+  @java.lang.Override
+  public java.lang.String getTargetVersionContentJson() {
+    java.lang.Object ref = targetVersionContentJson_;
+    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();
+      targetVersionContentJson_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * JSON representation of the target version content.
+   * </pre>
+   *
+   * <code>string target_version_content_json = 2;</code>
+   *
+   * @return The bytes for targetVersionContentJson.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString getTargetVersionContentJsonBytes() {
+    java.lang.Object ref = targetVersionContentJson_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      targetVersionContentJson_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int COMPARE_TIME_FIELD_NUMBER = 3;
+  private com.google.protobuf.Timestamp compareTime_;
+  /**
+   *
+   *
+   * <pre>
+   * The timestamp when the two version compares.
+   * </pre>
+   *
+   * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+   *
+   * @return Whether the compareTime field is set.
+   */
+  @java.lang.Override
+  public boolean hasCompareTime() {
+    return compareTime_ != null;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * The timestamp when the two version compares.
+   * </pre>
+   *
+   * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+   *
+   * @return The compareTime.
+   */
+  @java.lang.Override
+  public com.google.protobuf.Timestamp getCompareTime() {
+    return compareTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : compareTime_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * The timestamp when the two version compares.
+   * </pre>
+   *
+   * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+   */
+  @java.lang.Override
+  public com.google.protobuf.TimestampOrBuilder getCompareTimeOrBuilder() {
+    return getCompareTime();
+  }
+
+  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 {
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseVersionContentJson_)) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, baseVersionContentJson_);
+    }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetVersionContentJson_)) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, targetVersionContentJson_);
+    }
+    if (compareTime_ != null) {
+      output.writeMessage(3, getCompareTime());
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseVersionContentJson_)) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, baseVersionContentJson_);
+    }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetVersionContentJson_)) {
+      size +=
+          com.google.protobuf.GeneratedMessageV3.computeStringSize(2, targetVersionContentJson_);
+    }
+    if (compareTime_ != null) {
+      size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getCompareTime());
+    }
+    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.v3.CompareVersionsResponse)) {
+      return super.equals(obj);
+    }
+    com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse other =
+        (com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse) obj;
+
+    if (!getBaseVersionContentJson().equals(other.getBaseVersionContentJson())) return false;
+    if (!getTargetVersionContentJson().equals(other.getTargetVersionContentJson())) return false;
+    if (hasCompareTime() != other.hasCompareTime()) return false;
+    if (hasCompareTime()) {
+      if (!getCompareTime().equals(other.getCompareTime())) return false;
+    }
+    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 = (37 * hash) + BASE_VERSION_CONTENT_JSON_FIELD_NUMBER;
+    hash = (53 * hash) + getBaseVersionContentJson().hashCode();
+    hash = (37 * hash) + TARGET_VERSION_CONTENT_JSON_FIELD_NUMBER;
+    hash = (53 * hash) + getTargetVersionContentJson().hashCode();
+    if (hasCompareTime()) {
+      hash = (37 * hash) + COMPARE_TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getCompareTime().hashCode();
+    }
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse parseFrom(
+      java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse 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.v3.CompareVersionsResponse parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse 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.v3.CompareVersionsResponse parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse 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.v3.CompareVersionsResponse parseFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse 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.v3.CompareVersionsResponse parseDelimitedFrom(
+      java.io.InputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse 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.v3.CompareVersionsResponse 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.v3.CompareVersionsResponse 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.v3.CompareVersionsResponse 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>
+   * The response message for
+   * [Versions.CompareVersions][google.cloud.dialogflow.cx.v3.Versions.CompareVersions].
+   * </pre>
+   *
+   * Protobuf type {@code google.cloud.dialogflow.cx.v3.CompareVersionsResponse}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.cloud.dialogflow.cx.v3.CompareVersionsResponse)
+      com.google.cloud.dialogflow.cx.v3.CompareVersionsResponseOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.cloud.dialogflow.cx.v3.VersionProto
+          .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.cloud.dialogflow.cx.v3.VersionProto
+          .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse.class,
+              com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse.Builder.class);
+    }
+
+    // Construct using com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse.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();
+      baseVersionContentJson_ = "";
+
+      targetVersionContentJson_ = "";
+
+      if (compareTimeBuilder_ == null) {
+        compareTime_ = null;
+      } else {
+        compareTime_ = null;
+        compareTimeBuilder_ = null;
+      }
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.cloud.dialogflow.cx.v3.VersionProto
+          .internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse getDefaultInstanceForType() {
+      return com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse build() {
+      com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse buildPartial() {
+      com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse result =
+          new com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse(this);
+      result.baseVersionContentJson_ = baseVersionContentJson_;
+      result.targetVersionContentJson_ = targetVersionContentJson_;
+      if (compareTimeBuilder_ == null) {
+        result.compareTime_ = compareTime_;
+      } else {
+        result.compareTime_ = compareTimeBuilder_.build();
+      }
+      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.v3.CompareVersionsResponse) {
+        return mergeFrom((com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse other) {
+      if (other == com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse.getDefaultInstance())
+        return this;
+      if (!other.getBaseVersionContentJson().isEmpty()) {
+        baseVersionContentJson_ = other.baseVersionContentJson_;
+        onChanged();
+      }
+      if (!other.getTargetVersionContentJson().isEmpty()) {
+        targetVersionContentJson_ = other.targetVersionContentJson_;
+        onChanged();
+      }
+      if (other.hasCompareTime()) {
+        mergeCompareTime(other.getCompareTime());
+      }
+      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.v3.CompareVersionsResponse parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage =
+            (com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object baseVersionContentJson_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the base version content.
+     * </pre>
+     *
+     * <code>string base_version_content_json = 1;</code>
+     *
+     * @return The baseVersionContentJson.
+     */
+    public java.lang.String getBaseVersionContentJson() {
+      java.lang.Object ref = baseVersionContentJson_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        baseVersionContentJson_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the base version content.
+     * </pre>
+     *
+     * <code>string base_version_content_json = 1;</code>
+     *
+     * @return The bytes for baseVersionContentJson.
+     */
+    public com.google.protobuf.ByteString getBaseVersionContentJsonBytes() {
+      java.lang.Object ref = baseVersionContentJson_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        baseVersionContentJson_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the base version content.
+     * </pre>
+     *
+     * <code>string base_version_content_json = 1;</code>
+     *
+     * @param value The baseVersionContentJson to set.
+     * @return This builder for chaining.
+     */
+    public Builder setBaseVersionContentJson(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      baseVersionContentJson_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the base version content.
+     * </pre>
+     *
+     * <code>string base_version_content_json = 1;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearBaseVersionContentJson() {
+
+      baseVersionContentJson_ = getDefaultInstance().getBaseVersionContentJson();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the base version content.
+     * </pre>
+     *
+     * <code>string base_version_content_json = 1;</code>
+     *
+     * @param value The bytes for baseVersionContentJson to set.
+     * @return This builder for chaining.
+     */
+    public Builder setBaseVersionContentJsonBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      baseVersionContentJson_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object targetVersionContentJson_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the target version content.
+     * </pre>
+     *
+     * <code>string target_version_content_json = 2;</code>
+     *
+     * @return The targetVersionContentJson.
+     */
+    public java.lang.String getTargetVersionContentJson() {
+      java.lang.Object ref = targetVersionContentJson_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        targetVersionContentJson_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the target version content.
+     * </pre>
+     *
+     * <code>string target_version_content_json = 2;</code>
+     *
+     * @return The bytes for targetVersionContentJson.
+     */
+    public com.google.protobuf.ByteString getTargetVersionContentJsonBytes() {
+      java.lang.Object ref = targetVersionContentJson_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        targetVersionContentJson_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the target version content.
+     * </pre>
+     *
+     * <code>string target_version_content_json = 2;</code>
+     *
+     * @param value The targetVersionContentJson to set.
+     * @return This builder for chaining.
+     */
+    public Builder setTargetVersionContentJson(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+
+      targetVersionContentJson_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the target version content.
+     * </pre>
+     *
+     * <code>string target_version_content_json = 2;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearTargetVersionContentJson() {
+
+      targetVersionContentJson_ = getDefaultInstance().getTargetVersionContentJson();
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * JSON representation of the target version content.
+     * </pre>
+     *
+     * <code>string target_version_content_json = 2;</code>
+     *
+     * @param value The bytes for targetVersionContentJson to set.
+     * @return This builder for chaining.
+     */
+    public Builder setTargetVersionContentJsonBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+
+      targetVersionContentJson_ = value;
+      onChanged();
+      return this;
+    }
+
+    private com.google.protobuf.Timestamp compareTime_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.Timestamp,
+            com.google.protobuf.Timestamp.Builder,
+            com.google.protobuf.TimestampOrBuilder>
+        compareTimeBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     *
+     * @return Whether the compareTime field is set.
+     */
+    public boolean hasCompareTime() {
+      return compareTimeBuilder_ != null || compareTime_ != null;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     *
+     * @return The compareTime.
+     */
+    public com.google.protobuf.Timestamp getCompareTime() {
+      if (compareTimeBuilder_ == null) {
+        return compareTime_ == null
+            ? com.google.protobuf.Timestamp.getDefaultInstance()
+            : compareTime_;
+      } else {
+        return compareTimeBuilder_.getMessage();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     */
+    public Builder setCompareTime(com.google.protobuf.Timestamp value) {
+      if (compareTimeBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        compareTime_ = value;
+        onChanged();
+      } else {
+        compareTimeBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     */
+    public Builder setCompareTime(com.google.protobuf.Timestamp.Builder builderForValue) {
+      if (compareTimeBuilder_ == null) {
+        compareTime_ = builderForValue.build();
+        onChanged();
+      } else {
+        compareTimeBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     */
+    public Builder mergeCompareTime(com.google.protobuf.Timestamp value) {
+      if (compareTimeBuilder_ == null) {
+        if (compareTime_ != null) {
+          compareTime_ =
+              com.google.protobuf.Timestamp.newBuilder(compareTime_)
+                  .mergeFrom(value)
+                  .buildPartial();
+        } else {
+          compareTime_ = value;
+        }
+        onChanged();
+      } else {
+        compareTimeBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     */
+    public Builder clearCompareTime() {
+      if (compareTimeBuilder_ == null) {
+        compareTime_ = null;
+        onChanged();
+      } else {
+        compareTime_ = null;
+        compareTimeBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     */
+    public com.google.protobuf.Timestamp.Builder getCompareTimeBuilder() {
+
+      onChanged();
+      return getCompareTimeFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     */
+    public com.google.protobuf.TimestampOrBuilder getCompareTimeOrBuilder() {
+      if (compareTimeBuilder_ != null) {
+        return compareTimeBuilder_.getMessageOrBuilder();
+      } else {
+        return compareTime_ == null
+            ? com.google.protobuf.Timestamp.getDefaultInstance()
+            : compareTime_;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The timestamp when the two version compares.
+     * </pre>
+     *
+     * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.Timestamp,
+            com.google.protobuf.Timestamp.Builder,
+            com.google.protobuf.TimestampOrBuilder>
+        getCompareTimeFieldBuilder() {
+      if (compareTimeBuilder_ == null) {
+        compareTimeBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.protobuf.Timestamp,
+                com.google.protobuf.Timestamp.Builder,
+                com.google.protobuf.TimestampOrBuilder>(
+                getCompareTime(), getParentForChildren(), isClean());
+        compareTime_ = null;
+      }
+      return compareTimeBuilder_;
+    }
+
+    @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.v3.CompareVersionsResponse)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.cloud.dialogflow.cx.v3.CompareVersionsResponse)
+  private static final com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse();
+  }
+
+  public static com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<CompareVersionsResponse> PARSER =
+      new com.google.protobuf.AbstractParser<CompareVersionsResponse>() {
+        @java.lang.Override
+        public CompareVersionsResponse parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new CompareVersionsResponse(input, extensionRegistry);
+        }
+      };
+
+  public static com.google.protobuf.Parser<CompareVersionsResponse> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<CompareVersionsResponse> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.cloud.dialogflow.cx.v3.CompareVersionsResponse getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsResponseOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsResponseOrBuilder.java
new file mode 100644
index 000000000..4ba2cd07b
--- /dev/null
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CompareVersionsResponseOrBuilder.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/cloud/dialogflow/cx/v3/version.proto
+
+package com.google.cloud.dialogflow.cx.v3;
+
+public interface CompareVersionsResponseOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.cloud.dialogflow.cx.v3.CompareVersionsResponse)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * JSON representation of the base version content.
+   * </pre>
+   *
+   * <code>string base_version_content_json = 1;</code>
+   *
+   * @return The baseVersionContentJson.
+   */
+  java.lang.String getBaseVersionContentJson();
+  /**
+   *
+   *
+   * <pre>
+   * JSON representation of the base version content.
+   * </pre>
+   *
+   * <code>string base_version_content_json = 1;</code>
+   *
+   * @return The bytes for baseVersionContentJson.
+   */
+  com.google.protobuf.ByteString getBaseVersionContentJsonBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * JSON representation of the target version content.
+   * </pre>
+   *
+   * <code>string target_version_content_json = 2;</code>
+   *
+   * @return The targetVersionContentJson.
+   */
+  java.lang.String getTargetVersionContentJson();
+  /**
+   *
+   *
+   * <pre>
+   * JSON representation of the target version content.
+   * </pre>
+   *
+   * <code>string target_version_content_json = 2;</code>
+   *
+   * @return The bytes for targetVersionContentJson.
+   */
+  com.google.protobuf.ByteString getTargetVersionContentJsonBytes();
+
+  /**
+   *
+   *
+   * <pre>
+   * The timestamp when the two version compares.
+   * </pre>
+   *
+   * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+   *
+   * @return Whether the compareTime field is set.
+   */
+  boolean hasCompareTime();
+  /**
+   *
+   *
+   * <pre>
+   * The timestamp when the two version compares.
+   * </pre>
+   *
+   * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+   *
+   * @return The compareTime.
+   */
+  com.google.protobuf.Timestamp getCompareTime();
+  /**
+   *
+   *
+   * <pre>
+   * The timestamp when the two version compares.
+   * </pre>
+   *
+   * <code>.google.protobuf.Timestamp compare_time = 3;</code>
+   */
+  com.google.protobuf.TimestampOrBuilder getCompareTimeOrBuilder();
+}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionOperationMetadata.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionOperationMetadata.java
index 7fd27f0a0..6e064d2a3 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionOperationMetadata.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionOperationMetadata.java
@@ -120,8 +120,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    * <pre>
    * Name of the created version.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -145,8 +145,8 @@ public java.lang.String getVersion() {
    *
    * <pre>
    * Name of the created version.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -496,8 +496,8 @@ public Builder mergeFrom(
      *
      * <pre>
      * Name of the created version.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -520,8 +520,8 @@ public java.lang.String getVersion() {
      *
      * <pre>
      * Name of the created version.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -544,8 +544,8 @@ public com.google.protobuf.ByteString getVersionBytes() {
      *
      * <pre>
      * Name of the created version.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -567,8 +567,8 @@ public Builder setVersion(java.lang.String value) {
      *
      * <pre>
      * Name of the created version.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -586,8 +586,8 @@ public Builder clearVersion() {
      *
      * <pre>
      * Name of the created version.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionOperationMetadataOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionOperationMetadataOrBuilder.java
index fcb6797f3..d8f51d952 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionOperationMetadataOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionOperationMetadataOrBuilder.java
@@ -28,8 +28,8 @@ public interface CreateVersionOperationMetadataOrBuilder
    *
    * <pre>
    * Name of the created version.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
@@ -42,8 +42,8 @@ public interface CreateVersionOperationMetadataOrBuilder
    *
    * <pre>
    * Name of the created version.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>string version = 1 [(.google.api.resource_reference) = { ... }</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionRequest.java
index 4ad3fceb1..cec2a1a18 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Versions.CreateVersion][google.cloud.dialogflow.cx.v3.Versions.CreateVersion].
+ * The request message for
+ * [Versions.CreateVersion][google.cloud.dialogflow.cx.v3.Versions.CreateVersion].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.CreateVersionRequest}
@@ -133,9 +134,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;`.
+   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+   * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * </pre>
    *
    * <code>
@@ -160,9 +161,9 @@ public java.lang.String getParent() {
    *
    *
    * <pre>
-   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;`.
+   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+   * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * </pre>
    *
    * <code>
@@ -416,7 +417,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Versions.CreateVersion][google.cloud.dialogflow.cx.v3.Versions.CreateVersion].
+   * The request message for
+   * [Versions.CreateVersion][google.cloud.dialogflow.cx.v3.Versions.CreateVersion].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.CreateVersionRequest}
@@ -590,9 +592,9 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+     * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
@@ -616,9 +618,9 @@ public java.lang.String getParent() {
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+     * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
@@ -642,9 +644,9 @@ public com.google.protobuf.ByteString getParentBytes() {
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+     * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
@@ -667,9 +669,9 @@ public Builder setParent(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+     * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
@@ -688,9 +690,9 @@ public Builder clearParent() {
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+     * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionRequestOrBuilder.java
index 39aac7d69..156175f45 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateVersionRequestOrBuilder.java
@@ -27,9 +27,9 @@ public interface CreateVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;`.
+   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+   * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * </pre>
    *
    * <code>
@@ -43,9 +43,9 @@ public interface CreateVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;`.
+   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+   * [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateWebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateWebhookRequest.java
index 61e64c4a6..54b9304e2 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateWebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/CreateWebhookRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.CreateWebhook].
+ * The request message for
+ * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.CreateWebhook].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.CreateWebhookRequest}
@@ -414,7 +415,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.CreateWebhook].
+   * The request message for
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.CreateWebhook].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.CreateWebhookRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteVersionRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteVersionRequest.java
index eb580cf9d..e55d2c3fc 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteVersionRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteVersionRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Versions.DeleteVersion][google.cloud.dialogflow.cx.v3.Versions.DeleteVersion].
+ * The request message for
+ * [Versions.DeleteVersion][google.cloud.dialogflow.cx.v3.Versions.DeleteVersion].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.DeleteVersionRequest}
@@ -117,9 +118,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+   * to delete. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -144,9 +145,9 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+   * to delete. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -332,7 +333,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Versions.DeleteVersion][google.cloud.dialogflow.cx.v3.Versions.DeleteVersion].
+   * The request message for
+   * [Versions.DeleteVersion][google.cloud.dialogflow.cx.v3.Versions.DeleteVersion].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.DeleteVersionRequest}
@@ -492,9 +494,9 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+     * to delete. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -518,9 +520,9 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+     * to delete. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -544,9 +546,9 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+     * to delete. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -569,9 +571,9 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+     * to delete. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -590,9 +592,9 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+     * to delete. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteVersionRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteVersionRequestOrBuilder.java
index eaf1a2d2d..fe34f9984 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteVersionRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteVersionRequestOrBuilder.java
@@ -27,9 +27,9 @@ public interface DeleteVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+   * to delete. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -43,9 +43,9 @@ public interface DeleteVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+   * to delete. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteWebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteWebhookRequest.java
index ee0ec2b48..b53b2332d 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteWebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteWebhookRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3.Webhooks.DeleteWebhook].
+ * The request message for
+ * [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3.Webhooks.DeleteWebhook].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.DeleteWebhookRequest}
@@ -184,9 +185,10 @@ public com.google.protobuf.ByteString getNameBytes() {
    * *  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.v3.Fulfillment.webhook]
-   *    and [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that point to this webhook
-   *    will be removed).
+   *    as any references to the webhook (i.e.
+   *    [Webhook][google.cloud.dialogflow.cx.v3.Fulfillment.webhook] and
+   *    [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that
+   *    point to this webhook will be removed).
    * </pre>
    *
    * <code>bool force = 2;</code>
@@ -371,7 +373,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3.Webhooks.DeleteWebhook].
+   * The request message for
+   * [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3.Webhooks.DeleteWebhook].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.DeleteWebhookRequest}
@@ -668,9 +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 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.v3.Fulfillment.webhook]
-     *    and [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that point to this webhook
-     *    will be removed).
+     *    as any references to the webhook (i.e.
+     *    [Webhook][google.cloud.dialogflow.cx.v3.Fulfillment.webhook] and
+     *    [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that
+     *    point to this webhook will be removed).
      * </pre>
      *
      * <code>bool force = 2;</code>
@@ -690,9 +694,10 @@ public boolean getForce() {
      * *  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.v3.Fulfillment.webhook]
-     *    and [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that point to this webhook
-     *    will be removed).
+     *    as any references to the webhook (i.e.
+     *    [Webhook][google.cloud.dialogflow.cx.v3.Fulfillment.webhook] and
+     *    [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that
+     *    point to this webhook will be removed).
      * </pre>
      *
      * <code>bool force = 2;</code>
@@ -715,9 +720,10 @@ public Builder setForce(boolean value) {
      * *  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.v3.Fulfillment.webhook]
-     *    and [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that point to this webhook
-     *    will be removed).
+     *    as any references to the webhook (i.e.
+     *    [Webhook][google.cloud.dialogflow.cx.v3.Fulfillment.webhook] and
+     *    [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that
+     *    point to this webhook will be removed).
      * </pre>
      *
      * <code>bool force = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteWebhookRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteWebhookRequestOrBuilder.java
index b12df9bdb..d1272ace6 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteWebhookRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/DeleteWebhookRequestOrBuilder.java
@@ -65,9 +65,10 @@ public interface DeleteWebhookRequestOrBuilder
    * *  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.v3.Fulfillment.webhook]
-   *    and [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that point to this webhook
-   *    will be removed).
+   *    as any references to the webhook (i.e.
+   *    [Webhook][google.cloud.dialogflow.cx.v3.Fulfillment.webhook] and
+   *    [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that
+   *    point to this webhook will be removed).
    * </pre>
    *
    * <code>bool force = 2;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetVersionRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetVersionRequest.java
index 96916ad69..1d4239b24 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetVersionRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetVersionRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Versions.GetVersion][google.cloud.dialogflow.cx.v3.Versions.GetVersion].
+ * The request message for
+ * [Versions.GetVersion][google.cloud.dialogflow.cx.v3.Versions.GetVersion].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.GetVersionRequest}
@@ -118,8 +119,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    * <pre>
    * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -145,8 +146,8 @@ public java.lang.String getName() {
    *
    * <pre>
    * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -331,7 +332,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Versions.GetVersion][google.cloud.dialogflow.cx.v3.Versions.GetVersion].
+   * The request message for
+   * [Versions.GetVersion][google.cloud.dialogflow.cx.v3.Versions.GetVersion].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.GetVersionRequest}
@@ -492,8 +494,8 @@ public Builder mergeFrom(
      *
      * <pre>
      * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -518,8 +520,8 @@ public java.lang.String getName() {
      *
      * <pre>
      * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -544,8 +546,8 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      * <pre>
      * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -569,8 +571,8 @@ public Builder setName(java.lang.String value) {
      *
      * <pre>
      * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -590,8 +592,8 @@ public Builder clearName() {
      *
      * <pre>
      * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetVersionRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetVersionRequestOrBuilder.java
index 9c78eb707..c44dbc04b 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetVersionRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetVersionRequestOrBuilder.java
@@ -28,8 +28,8 @@ public interface GetVersionRequestOrBuilder
    *
    * <pre>
    * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -44,8 +44,8 @@ public interface GetVersionRequestOrBuilder
    *
    * <pre>
    * Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetWebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetWebhookRequest.java
index 69db399b7..a3c2a693e 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetWebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/GetWebhookRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3.Webhooks.GetWebhook].
+ * The request message for
+ * [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3.Webhooks.GetWebhook].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.GetWebhookRequest}
@@ -331,7 +332,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3.Webhooks.GetWebhook].
+   * The request message for
+   * [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3.Webhooks.GetWebhook].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.GetWebhookRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsRequest.java
index 91e167da0..904c608e1 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
+ * The request message for
+ * [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.ListVersionsRequest}
@@ -130,9 +131,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;`.
+   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+   * versions for. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * </pre>
    *
    * <code>
@@ -157,9 +158,9 @@ public java.lang.String getParent() {
    *
    *
    * <pre>
-   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;`.
+   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+   * versions for. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * </pre>
    *
    * <code>
@@ -431,7 +432,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
+   * The request message for
+   * [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.ListVersionsRequest}
@@ -604,9 +606,9 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+     * versions for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
@@ -630,9 +632,9 @@ public java.lang.String getParent() {
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+     * versions for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
@@ -656,9 +658,9 @@ public com.google.protobuf.ByteString getParentBytes() {
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+     * versions for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
@@ -681,9 +683,9 @@ public Builder setParent(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+     * versions for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
@@ -702,9 +704,9 @@ public Builder clearParent() {
      *
      *
      * <pre>
-     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;`.
+     * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+     * versions for. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsRequestOrBuilder.java
index 9c2203815..e082a05f0 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsRequestOrBuilder.java
@@ -27,9 +27,9 @@ public interface ListVersionsRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;`.
+   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+   * versions for. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * </pre>
    *
    * <code>
@@ -43,9 +43,9 @@ public interface ListVersionsRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;`.
+   * Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+   * versions for. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;`.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsResponse.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsResponse.java
index 7473a28f0..a599aa177 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListVersionsResponse.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The response message for [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
+ * The response message for
+ * [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.ListVersionsResponse}
@@ -432,7 +433,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The response message for [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
+   * The response message for
+   * [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.ListVersionsResponse}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListWebhooksRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListWebhooksRequest.java
index 5a652f5b2..3da449413 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListWebhooksRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListWebhooksRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
+ * The request message for
+ * [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.ListWebhooksRequest}
@@ -429,7 +430,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
+   * The request message for
+   * [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.ListWebhooksRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListWebhooksResponse.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListWebhooksResponse.java
index 93e0ca144..26021539f 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListWebhooksResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/ListWebhooksResponse.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The response message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
+ * The response message for
+ * [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.ListWebhooksResponse}
@@ -427,7 +428,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The response message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
+   * The response message for
+   * [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.ListWebhooksResponse}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/LoadVersionRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/LoadVersionRequest.java
index dbcd05881..074453e15 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/LoadVersionRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/LoadVersionRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Versions.LoadVersion][google.cloud.dialogflow.cx.v3.Versions.LoadVersion].
+ * The request message for
+ * [Versions.LoadVersion][google.cloud.dialogflow.cx.v3.Versions.LoadVersion].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.LoadVersionRequest}
@@ -122,9 +123,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    *
    * <pre>
-   * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+   * to draft flow. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -149,9 +150,9 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+   * to draft flow. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -367,7 +368,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Versions.LoadVersion][google.cloud.dialogflow.cx.v3.Versions.LoadVersion].
+   * The request message for
+   * [Versions.LoadVersion][google.cloud.dialogflow.cx.v3.Versions.LoadVersion].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.LoadVersionRequest}
@@ -533,9 +535,9 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+     * to draft flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -559,9 +561,9 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+     * to draft flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -585,9 +587,9 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+     * to draft flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -610,9 +612,9 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+     * to draft flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
@@ -631,9 +633,9 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+     * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+     * to draft flow. Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/LoadVersionRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/LoadVersionRequestOrBuilder.java
index c49090cfc..43e329167 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/LoadVersionRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/LoadVersionRequestOrBuilder.java
@@ -27,9 +27,9 @@ public interface LoadVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+   * to draft flow. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
@@ -43,9 +43,9 @@ public interface LoadVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;`.
+   * Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+   * to draft flow. Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/PageInfo.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/PageInfo.java
index 45a52f9a9..b93b621fd 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/PageInfo.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/PageInfo.java
@@ -137,9 +137,11 @@ public interface FormInfoOrBuilder
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -152,9 +154,11 @@ public interface FormInfoOrBuilder
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -166,9 +170,11 @@ public interface FormInfoOrBuilder
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -180,9 +186,11 @@ public interface FormInfoOrBuilder
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -196,9 +204,11 @@ public interface FormInfoOrBuilder
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -321,7 +331,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+       * Required for
        * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
        * The human-readable name of the parameter, unique within the form. This
        * field cannot be modified by the webhook.
@@ -336,7 +348,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+       * Required for
        * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
        * The human-readable name of the parameter, unique within the form. This
        * field cannot be modified by the webhook.
@@ -352,7 +366,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.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.
@@ -368,10 +384,13 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-       * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+       * Required for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * state of the parameter. This field can be set to
+       * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+       * by the webhook to invalidate the parameter; other values set by the
        * webhook will be ignored.
        * </pre>
        *
@@ -386,10 +405,13 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-       * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+       * Required for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * state of the parameter. This field can be set to
+       * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+       * by the webhook to invalidate the parameter; other values set by the
        * webhook will be ignored.
        * </pre>
        *
@@ -405,9 +427,11 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The value of the parameter. This field can be set by the webhook to
-       * change the parameter value.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * value of the parameter. This field can be set by the webhook to change
+       * the parameter value.
        * </pre>
        *
        * <code>.google.protobuf.Value value = 4;</code>
@@ -419,9 +443,11 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The value of the parameter. This field can be set by the webhook to
-       * change the parameter value.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * value of the parameter. This field can be set by the webhook to change
+       * the parameter value.
        * </pre>
        *
        * <code>.google.protobuf.Value value = 4;</code>
@@ -433,9 +459,11 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The value of the parameter. This field can be set by the webhook to
-       * change the parameter value.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * value of the parameter. This field can be set by the webhook to change
+       * the parameter value.
        * </pre>
        *
        * <code>.google.protobuf.Value value = 4;</code>
@@ -446,7 +474,9 @@ public interface ParameterInfoOrBuilder
        *
        *
        * <pre>
-       * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+       * Optional for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored
+       * for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
        * Indicates if the parameter value was just collected on the last
        * conversation turn.
        * </pre>
@@ -779,7 +809,9 @@ private ParameterState(int value) {
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+       * Required for
        * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
        * The human-readable name of the parameter, unique within the form. This
        * field cannot be modified by the webhook.
@@ -805,7 +837,9 @@ public java.lang.String getDisplayName() {
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+       * Always present for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+       * Required for
        * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
        * The human-readable name of the parameter, unique within the form. This
        * field cannot be modified by the webhook.
@@ -834,7 +868,9 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.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.
@@ -855,10 +891,13 @@ public boolean getRequired() {
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-       * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+       * Required for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * state of the parameter. This field can be set to
+       * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+       * by the webhook to invalidate the parameter; other values set by the
        * webhook will be ignored.
        * </pre>
        *
@@ -876,10 +915,13 @@ public int getStateValue() {
        *
        *
        * <pre>
-       * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-       * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+       * Required for
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * state of the parameter. This field can be set to
+       * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+       * by the webhook to invalidate the parameter; other values set by the
        * webhook will be ignored.
        * </pre>
        *
@@ -908,9 +950,11 @@ public int getStateValue() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The value of the parameter. This field can be set by the webhook to
-       * change the parameter value.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * value of the parameter. This field can be set by the webhook to change
+       * the parameter value.
        * </pre>
        *
        * <code>.google.protobuf.Value value = 4;</code>
@@ -925,9 +969,11 @@ public boolean hasValue() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The value of the parameter. This field can be set by the webhook to
-       * change the parameter value.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * value of the parameter. This field can be set by the webhook to change
+       * the parameter value.
        * </pre>
        *
        * <code>.google.protobuf.Value value = 4;</code>
@@ -942,9 +988,11 @@ public com.google.protobuf.Value getValue() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The value of the parameter. This field can be set by the webhook to
-       * change the parameter value.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * value of the parameter. This field can be set by the webhook to change
+       * the parameter value.
        * </pre>
        *
        * <code>.google.protobuf.Value value = 4;</code>
@@ -960,7 +1008,9 @@ public com.google.protobuf.ValueOrBuilder getValueOrBuilder() {
        *
        *
        * <pre>
-       * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+       * Optional for
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored
+       * for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
        * Indicates if the parameter value was just collected on the last
        * conversation turn.
        * </pre>
@@ -1390,7 +1440,9 @@ public Builder mergeFrom(
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1415,7 +1467,9 @@ public java.lang.String getDisplayName() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1440,7 +1494,9 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1464,7 +1520,9 @@ public Builder setDisplayName(java.lang.String value) {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1484,7 +1542,9 @@ public Builder clearDisplayName() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+         * Always present for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+         * Required for
          * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
          * The human-readable name of the parameter, unique within the form. This
          * field cannot be modified by the webhook.
@@ -1511,7 +1571,9 @@ public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.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.
@@ -1529,7 +1591,9 @@ public boolean getRequired() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.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.
@@ -1550,7 +1614,9 @@ public Builder setRequired(boolean value) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.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.
@@ -1572,10 +1638,13 @@ public Builder clearRequired() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1593,10 +1662,13 @@ public int getStateValue() {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1617,10 +1689,13 @@ public Builder setStateValue(int value) {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1646,10 +1721,13 @@ public Builder setStateValue(int value) {
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1675,10 +1753,13 @@ public Builder setState(
          *
          *
          * <pre>
-         * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
-         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-         * to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+         * Required for
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * state of the parameter. This field can be set to
+         * [INVALID][google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo.ParameterState.INVALID]
+         * by the webhook to invalidate the parameter; other values set by the
          * webhook will be ignored.
          * </pre>
          *
@@ -1705,9 +1786,11 @@ public Builder clearState() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1721,9 +1804,11 @@ public boolean hasValue() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1741,9 +1826,11 @@ public com.google.protobuf.Value getValue() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1765,9 +1852,11 @@ public Builder setValue(com.google.protobuf.Value value) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1786,9 +1875,11 @@ public Builder setValue(com.google.protobuf.Value.Builder builderForValue) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1811,9 +1902,11 @@ public Builder mergeValue(com.google.protobuf.Value value) {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1833,9 +1926,11 @@ public Builder clearValue() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1849,9 +1944,11 @@ public com.google.protobuf.Value.Builder getValueBuilder() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1867,9 +1964,11 @@ public com.google.protobuf.ValueOrBuilder getValueOrBuilder() {
          *
          *
          * <pre>
-         * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-         * The value of the parameter. This field can be set by the webhook to
-         * change the parameter value.
+         * Optional for both
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+         * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+         * value of the parameter. This field can be set by the webhook to change
+         * the parameter value.
          * </pre>
          *
          * <code>.google.protobuf.Value value = 4;</code>
@@ -1896,7 +1995,9 @@ public com.google.protobuf.ValueOrBuilder getValueOrBuilder() {
          *
          *
          * <pre>
-         * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+         * Optional for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored
+         * for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
          * Indicates if the parameter value was just collected on the last
          * conversation turn.
          * </pre>
@@ -1913,7 +2014,9 @@ public boolean getJustCollected() {
          *
          *
          * <pre>
-         * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+         * Optional for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored
+         * for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
          * Indicates if the parameter value was just collected on the last
          * conversation turn.
          * </pre>
@@ -1933,7 +2036,9 @@ public Builder setJustCollected(boolean value) {
          *
          *
          * <pre>
-         * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+         * Optional for
+         * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored
+         * for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
          * Indicates if the parameter value was just collected on the last
          * conversation turn.
          * </pre>
@@ -2011,9 +2116,11 @@ public com.google.protobuf.Parser<ParameterInfo> getParserForType() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -2029,9 +2136,11 @@ public com.google.protobuf.Parser<ParameterInfo> getParserForType() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -2048,9 +2157,11 @@ public com.google.protobuf.Parser<ParameterInfo> getParserForType() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -2065,9 +2176,11 @@ public int getParameterInfoCount() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -2083,9 +2196,11 @@ public com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo getPara
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The parameters contained in the form. Note that the webhook cannot add
-     * or remove any form parameter.
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * parameters contained in the form. Note that the webhook cannot add or
+     * remove any form parameter.
      * </pre>
      *
      * <code>
@@ -2486,9 +2601,11 @@ private void ensureParameterInfoIsMutable() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2507,9 +2624,11 @@ private void ensureParameterInfoIsMutable() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2527,9 +2646,11 @@ public int getParameterInfoCount() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2548,9 +2669,11 @@ public com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.ParameterInfo getPara
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2575,9 +2698,11 @@ public Builder setParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2601,9 +2726,11 @@ public Builder setParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2628,9 +2755,11 @@ public Builder addParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2655,9 +2784,11 @@ public Builder addParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2680,9 +2811,11 @@ public Builder addParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2706,9 +2839,11 @@ public Builder addParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2732,9 +2867,11 @@ public Builder addAllParameterInfo(
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2755,9 +2892,11 @@ public Builder clearParameterInfo() {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2778,9 +2917,11 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2795,9 +2936,11 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2816,9 +2959,11 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2838,9 +2983,11 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2858,9 +3005,11 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2879,9 +3028,11 @@ public Builder removeParameterInfo(int index) {
        *
        *
        * <pre>
-       * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-       * The parameters contained in the form. Note that the webhook cannot add
-       * or remove any form parameter.
+       * Optional for both
+       * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+       * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+       * parameters contained in the form. Note that the webhook cannot add or
+       * remove any form parameter.
        * </pre>
        *
        * <code>
@@ -2972,10 +3123,12 @@ public com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfo getDefaultInstanceFor
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.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>
@@ -2998,10 +3151,12 @@ public java.lang.String getCurrentPage() {
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.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>
@@ -3027,7 +3182,9 @@ public com.google.protobuf.ByteString getCurrentPageBytes() {
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -3043,7 +3200,9 @@ public boolean hasFormInfo() {
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -3061,7 +3220,9 @@ public com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfo getFormInfo() {
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -3421,10 +3582,12 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.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>
@@ -3446,10 +3609,12 @@ public java.lang.String getCurrentPage() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.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>
@@ -3471,10 +3636,12 @@ public com.google.protobuf.ByteString getCurrentPageBytes() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.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 +3662,12 @@ public Builder setCurrentPage(java.lang.String value) {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.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>
@@ -3515,10 +3684,12 @@ public Builder clearCurrentPage() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.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>
@@ -3547,7 +3718,9 @@ public Builder setCurrentPageBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3562,7 +3735,9 @@ public boolean hasFormInfo() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3583,7 +3758,9 @@ public com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfo getFormInfo() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3606,7 +3783,9 @@ public Builder setFormInfo(com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfo v
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3627,7 +3806,9 @@ public Builder setFormInfo(
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3654,7 +3835,9 @@ public Builder mergeFormInfo(com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfo
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3675,7 +3858,9 @@ public Builder clearFormInfo() {
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3690,7 +3875,9 @@ public com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfo.Builder getFormInfoBu
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
@@ -3709,7 +3896,9 @@ public com.google.cloud.dialogflow.cx.v3.PageInfo.FormInfoOrBuilder getFormInfoO
      *
      *
      * <pre>
-     * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+     * Optional for both
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
      * Information about the form.
      * </pre>
      *
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/PageInfoOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/PageInfoOrBuilder.java
index ffd1c2e6a..2181e9984 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/PageInfoOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/PageInfoOrBuilder.java
@@ -27,10 +27,12 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.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 +44,12 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.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 +62,9 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -71,7 +77,9 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
    * Information about the form.
    * </pre>
    *
@@ -84,7 +92,9 @@ public interface PageInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for both [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+   * Optional for both
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
    * Information about the form.
    * </pre>
    *
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SecuritySettings.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SecuritySettings.java
index b4be0ee5d..40157d166 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SecuritySettings.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SecuritySettings.java
@@ -1458,6 +1458,10 @@ public com.google.cloud.dialogflow.cx.v3.SecuritySettings.RedactionScope getReda
    * <pre>
    * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
    * template to define inspect base settings.
+   * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+   * service identity service account (has the form
+   * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+   * for your agent's project.
    * If empty, we use the default DLP inspect config.
    * The template name will have one of the following formats:
    * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -1489,6 +1493,10 @@ public java.lang.String getInspectTemplate() {
    * <pre>
    * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
    * template to define inspect base settings.
+   * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+   * service identity service account (has the form
+   * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+   * for your agent's project.
    * If empty, we use the default DLP inspect config.
    * The template name will have one of the following formats:
    * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -1523,6 +1531,10 @@ public com.google.protobuf.ByteString getInspectTemplateBytes() {
    * <pre>
    * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
    * template to define de-identification configuration for the content.
+   * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+   * service identity service account (has the form
+   * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+   * for your agent's project.
    * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
    * The template name will have one of the following formats:
    * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -1554,6 +1566,10 @@ public java.lang.String getDeidentifyTemplate() {
    * <pre>
    * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
    * template to define de-identification configuration for the content.
+   * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+   * service identity service account (has the form
+   * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+   * for your agent's project.
    * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
    * The template name will have one of the following formats:
    * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -1588,7 +1604,7 @@ public com.google.protobuf.ByteString getDeidentifyTemplateBytes() {
    * Retains data in interaction logging for the specified number of days.
    * This does not apply to Cloud logging, which is owned by the user - not
    * Dialogflow.
-   * User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+   * User must set a value lower than Dialogflow's default 365d TTL. Setting a
    * value higher than that has no effect.
    * A missing value or setting to 0 also means we use Dialogflow's default
    * TTL.
@@ -1611,7 +1627,7 @@ public boolean hasRetentionWindowDays() {
    * Retains data in interaction logging for the specified number of days.
    * This does not apply to Cloud logging, which is owned by the user - not
    * Dialogflow.
-   * User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+   * User must set a value lower than Dialogflow's default 365d TTL. Setting a
    * value higher than that has no effect.
    * A missing value or setting to 0 also means we use Dialogflow's default
    * TTL.
@@ -2815,6 +2831,10 @@ public Builder clearRedactionScope() {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
      * template to define inspect base settings.
+     * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, we use the default DLP inspect config.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -2845,6 +2865,10 @@ public java.lang.String getInspectTemplate() {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
      * template to define inspect base settings.
+     * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, we use the default DLP inspect config.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -2875,6 +2899,10 @@ public com.google.protobuf.ByteString getInspectTemplateBytes() {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
      * template to define inspect base settings.
+     * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, we use the default DLP inspect config.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -2904,6 +2932,10 @@ public Builder setInspectTemplate(java.lang.String value) {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
      * template to define inspect base settings.
+     * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, we use the default DLP inspect config.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -2929,6 +2961,10 @@ public Builder clearInspectTemplate() {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
      * template to define inspect base settings.
+     * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, we use the default DLP inspect config.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -2961,6 +2997,10 @@ public Builder setInspectTemplateBytes(com.google.protobuf.ByteString value) {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
      * template to define de-identification configuration for the content.
+     * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -2991,6 +3031,10 @@ public java.lang.String getDeidentifyTemplate() {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
      * template to define de-identification configuration for the content.
+     * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -3021,6 +3065,10 @@ public com.google.protobuf.ByteString getDeidentifyTemplateBytes() {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
      * template to define de-identification configuration for the content.
+     * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -3050,6 +3098,10 @@ public Builder setDeidentifyTemplate(java.lang.String value) {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
      * template to define de-identification configuration for the content.
+     * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -3075,6 +3127,10 @@ public Builder clearDeidentifyTemplate() {
      * <pre>
      * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
      * template to define de-identification configuration for the content.
+     * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+     * service identity service account (has the form
+     * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+     * for your agent's project.
      * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
      * The template name will have one of the following formats:
      * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -3107,7 +3163,7 @@ public Builder setDeidentifyTemplateBytes(com.google.protobuf.ByteString value)
      * Retains data in interaction logging for the specified number of days.
      * This does not apply to Cloud logging, which is owned by the user - not
      * Dialogflow.
-     * User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+     * User must set a value lower than Dialogflow's default 365d TTL. Setting a
      * value higher than that has no effect.
      * A missing value or setting to 0 also means we use Dialogflow's default
      * TTL.
@@ -3129,7 +3185,7 @@ public boolean hasRetentionWindowDays() {
      * Retains data in interaction logging for the specified number of days.
      * This does not apply to Cloud logging, which is owned by the user - not
      * Dialogflow.
-     * User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+     * User must set a value lower than Dialogflow's default 365d TTL. Setting a
      * value higher than that has no effect.
      * A missing value or setting to 0 also means we use Dialogflow's default
      * TTL.
@@ -3154,7 +3210,7 @@ public int getRetentionWindowDays() {
      * Retains data in interaction logging for the specified number of days.
      * This does not apply to Cloud logging, which is owned by the user - not
      * Dialogflow.
-     * User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+     * User must set a value lower than Dialogflow's default 365d TTL. Setting a
      * value higher than that has no effect.
      * A missing value or setting to 0 also means we use Dialogflow's default
      * TTL.
@@ -3180,7 +3236,7 @@ public Builder setRetentionWindowDays(int value) {
      * Retains data in interaction logging for the specified number of days.
      * This does not apply to Cloud logging, which is owned by the user - not
      * Dialogflow.
-     * User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+     * User must set a value lower than Dialogflow's default 365d TTL. Setting a
      * value higher than that has no effect.
      * A missing value or setting to 0 also means we use Dialogflow's default
      * TTL.
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SecuritySettingsOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SecuritySettingsOrBuilder.java
index 74da26615..946cc3159 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SecuritySettingsOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SecuritySettingsOrBuilder.java
@@ -149,6 +149,10 @@ public interface SecuritySettingsOrBuilder
    * <pre>
    * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
    * template to define inspect base settings.
+   * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+   * service identity service account (has the form
+   * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+   * for your agent's project.
    * If empty, we use the default DLP inspect config.
    * The template name will have one of the following formats:
    * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -169,6 +173,10 @@ public interface SecuritySettingsOrBuilder
    * <pre>
    * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
    * template to define inspect base settings.
+   * The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+   * service identity service account (has the form
+   * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+   * for your agent's project.
    * If empty, we use the default DLP inspect config.
    * The template name will have one of the following formats:
    * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/inspectTemplates/&lt;Template
@@ -190,6 +198,10 @@ public interface SecuritySettingsOrBuilder
    * <pre>
    * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
    * template to define de-identification configuration for the content.
+   * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+   * service identity service account (has the form
+   * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+   * for your agent's project.
    * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
    * The template name will have one of the following formats:
    * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -210,6 +222,10 @@ public interface SecuritySettingsOrBuilder
    * <pre>
    * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
    * template to define de-identification configuration for the content.
+   * The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+   * service identity service account (has the form
+   * `service-PROJECT_NUMBER&#64;gcp-sa-dialogflow.iam.gserviceaccount.com`)
+   * for your agent's project.
    * If empty, Dialogflow replaces sensitive info with `[redacted]` text.
    * The template name will have one of the following formats:
    * `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -232,7 +248,7 @@ public interface SecuritySettingsOrBuilder
    * Retains data in interaction logging for the specified number of days.
    * This does not apply to Cloud logging, which is owned by the user - not
    * Dialogflow.
-   * User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+   * User must set a value lower than Dialogflow's default 365d TTL. Setting a
    * value higher than that has no effect.
    * A missing value or setting to 0 also means we use Dialogflow's default
    * TTL.
@@ -252,7 +268,7 @@ public interface SecuritySettingsOrBuilder
    * Retains data in interaction logging for the specified number of days.
    * This does not apply to Cloud logging, which is owned by the user - not
    * Dialogflow.
-   * User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+   * User must set a value lower than Dialogflow's default 365d TTL. Setting a
    * value higher than that has no effect.
    * A missing value or setting to 0 also means we use Dialogflow's default
    * TTL.
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SessionInfo.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SessionInfo.java
index 4ade7a526..426066c3a 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SessionInfo.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SessionInfo.java
@@ -145,8 +145,11 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-   * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+   * unique identifier of the
+   * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
    * field can be used by the webhook to identify a session.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -174,8 +177,11 @@ public java.lang.String getSession() {
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-   * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+   * unique identifier of the
+   * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
    * field can be used by the webhook to identify a session.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -232,12 +238,14 @@ public int getParametersCount() {
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+   * The map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -259,12 +267,14 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getParameters(
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+   * The map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -277,12 +287,14 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getParametersM
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+   * The map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -301,12 +313,14 @@ public com.google.protobuf.Value getParametersOrDefault(
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+   * The map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -689,8 +703,11 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
      * field can be used by the webhook to identify a session.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -717,8 +734,11 @@ public java.lang.String getSession() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
      * field can be used by the webhook to identify a session.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -745,8 +765,11 @@ public com.google.protobuf.ByteString getSessionBytes() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
      * field can be used by the webhook to identify a session.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -772,8 +795,11 @@ public Builder setSession(java.lang.String value) {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
      * field can be used by the webhook to identify a session.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -795,8 +821,11 @@ public Builder clearSession() {
      *
      *
      * <pre>
-     * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-     * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+     * Always present for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+     * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+     * unique identifier of the
+     * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
      * field can be used by the webhook to identify a session.
      * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -852,12 +881,14 @@ public int getParametersCount() {
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+     * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+     * The map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -879,12 +910,14 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getParameters(
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+     * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+     * The map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -897,12 +930,14 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getParametersM
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+     * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+     * The map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -921,12 +956,14 @@ public com.google.protobuf.Value getParametersOrDefault(
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+     * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+     * The map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -952,12 +989,14 @@ public Builder clearParameters() {
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+     * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+     * The map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -978,12 +1017,14 @@ public java.util.Map<java.lang.String, com.google.protobuf.Value> getMutablePara
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+     * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+     * The map is keyed by parameters' display names.
      * </pre>
      *
      * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -1002,12 +1043,14 @@ public Builder putParameters(java.lang.String key, com.google.protobuf.Value val
      *
      *
      * <pre>
-     * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-     * display names.
+     * Optional for
+     * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+     * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.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-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SessionInfoOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SessionInfoOrBuilder.java
index 2a8b7a3af..ebeb783ab 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SessionInfoOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/SessionInfoOrBuilder.java
@@ -27,8 +27,11 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-   * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+   * unique identifier of the
+   * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
    * field can be used by the webhook to identify a session.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -45,8 +48,11 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-   * The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+   * Always present for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+   * [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+   * unique identifier of the
+   * [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
    * field can be used by the webhook to identify a session.
    * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/sessions/&lt;Session ID&gt;` or `projects/&lt;Project ID&gt;/locations/&lt;Location
@@ -64,12 +70,14 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+   * The map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -79,12 +87,14 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+   * The map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -97,12 +107,14 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+   * The map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -112,12 +124,14 @@ public interface SessionInfoOrBuilder
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+   * The map is keyed by parameters' display names.
    * </pre>
    *
    * <code>map&lt;string, .google.protobuf.Value&gt; parameters = 2;</code>
@@ -128,12 +142,14 @@ com.google.protobuf.Value getParametersOrDefault(
    *
    *
    * <pre>
-   * Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-   * display names.
+   * Optional for
+   * [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+   * for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.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-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateVersionRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateVersionRequest.java
index 1f80483b8..2895ca7d8 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateVersionRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateVersionRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Versions.UpdateVersion][google.cloud.dialogflow.cx.v3.Versions.UpdateVersion].
+ * The request message for
+ * [Versions.UpdateVersion][google.cloud.dialogflow.cx.v3.Versions.UpdateVersion].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.UpdateVersionRequest}
@@ -193,8 +194,8 @@ public com.google.cloud.dialogflow.cx.v3.VersionOrBuilder getVersionOrBuilder()
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. Currently only `description`
-   * and `display_name` can be updated.
+   * Required. The mask to control which fields get updated. Currently only
+   * `description` and `display_name` can be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -210,8 +211,8 @@ public boolean hasUpdateMask() {
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. Currently only `description`
-   * and `display_name` can be updated.
+   * Required. The mask to control which fields get updated. Currently only
+   * `description` and `display_name` can be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -227,8 +228,8 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. Currently only `description`
-   * and `display_name` can be updated.
+   * Required. The mask to control which fields get updated. Currently only
+   * `description` and `display_name` can be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -422,7 +423,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Versions.UpdateVersion][google.cloud.dialogflow.cx.v3.Versions.UpdateVersion].
+   * The request message for
+   * [Versions.UpdateVersion][google.cloud.dialogflow.cx.v3.Versions.UpdateVersion].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.UpdateVersionRequest}
@@ -811,8 +813,8 @@ public com.google.cloud.dialogflow.cx.v3.VersionOrBuilder getVersionOrBuilder()
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -827,8 +829,8 @@ public boolean hasUpdateMask() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -849,8 +851,8 @@ public com.google.protobuf.FieldMask getUpdateMask() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -873,8 +875,8 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -894,8 +896,8 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -920,8 +922,8 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -942,8 +944,8 @@ public Builder clearUpdateMask() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -958,8 +960,8 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -978,8 +980,8 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
      *
      *
      * <pre>
-     * Required. The mask to control which fields get updated. Currently only `description`
-     * and `display_name` can be updated.
+     * Required. The mask to control which fields get updated. Currently only
+     * `description` and `display_name` can be updated.
      * </pre>
      *
      * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateVersionRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateVersionRequestOrBuilder.java
index e6ae2cfed..c1b33a664 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateVersionRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateVersionRequestOrBuilder.java
@@ -68,8 +68,8 @@ public interface UpdateVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. Currently only `description`
-   * and `display_name` can be updated.
+   * Required. The mask to control which fields get updated. Currently only
+   * `description` and `display_name` can be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -82,8 +82,8 @@ public interface UpdateVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. Currently only `description`
-   * and `display_name` can be updated.
+   * Required. The mask to control which fields get updated. Currently only
+   * `description` and `display_name` can be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -96,8 +96,8 @@ public interface UpdateVersionRequestOrBuilder
    *
    *
    * <pre>
-   * Required. The mask to control which fields get updated. Currently only `description`
-   * and `display_name` can be updated.
+   * Required. The mask to control which fields get updated. Currently only
+   * `description` and `display_name` can be updated.
    * </pre>
    *
    * <code>.google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateWebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateWebhookRequest.java
index 606447717..9c2fec61f 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateWebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/UpdateWebhookRequest.java
@@ -22,7 +22,8 @@
  *
  *
  * <pre>
- * The request message for [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook].
+ * The request message for
+ * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook].
  * </pre>
  *
  * Protobuf type {@code google.cloud.dialogflow.cx.v3.UpdateWebhookRequest}
@@ -419,7 +420,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    *
    * <pre>
-   * The request message for [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook].
+   * The request message for
+   * [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook].
    * </pre>
    *
    * Protobuf type {@code google.cloud.dialogflow.cx.v3.UpdateWebhookRequest}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/Version.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/Version.java
index 671d88498..f3794462a 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/Version.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/Version.java
@@ -351,9 +351,10 @@ private State(int value) {
    *
    *
    * <pre>
-   * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-   * number generated by Dialogflow upon version creation.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * Version ID is a self-increasing number generated by Dialogflow upon version
+   * creation.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -376,9 +377,10 @@ public java.lang.String getName() {
    *
    *
    * <pre>
-   * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-   * number generated by Dialogflow upon version creation.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * Version ID is a self-increasing number generated by Dialogflow upon version
+   * creation.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -607,8 +609,8 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
    *
    *
    * <pre>
-   * Output only. The state of this version. This field is read-only and cannot be set by
-   * create and update methods.
+   * Output only. The state of this version. This field is read-only and cannot
+   * be set by create and update methods.
    * </pre>
    *
    * <code>
@@ -625,8 +627,8 @@ public int getStateValue() {
    *
    *
    * <pre>
-   * Output only. The state of this version. This field is read-only and cannot be set by
-   * create and update methods.
+   * Output only. The state of this version. This field is read-only and cannot
+   * be set by create and update methods.
    * </pre>
    *
    * <code>
@@ -1067,9 +1069,10 @@ public Builder mergeFrom(
      *
      *
      * <pre>
-     * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-     * number generated by Dialogflow upon version creation.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * Version ID is a self-increasing number generated by Dialogflow upon version
+     * creation.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -1091,9 +1094,10 @@ public java.lang.String getName() {
      *
      *
      * <pre>
-     * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-     * number generated by Dialogflow upon version creation.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * Version ID is a self-increasing number generated by Dialogflow upon version
+     * creation.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -1115,9 +1119,10 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      *
      * <pre>
-     * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-     * number generated by Dialogflow upon version creation.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * Version ID is a self-increasing number generated by Dialogflow upon version
+     * creation.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -1138,9 +1143,10 @@ public Builder setName(java.lang.String value) {
      *
      *
      * <pre>
-     * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-     * number generated by Dialogflow upon version creation.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * Version ID is a self-increasing number generated by Dialogflow upon version
+     * creation.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -1157,9 +1163,10 @@ public Builder clearName() {
      *
      *
      * <pre>
-     * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-     * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-     * number generated by Dialogflow upon version creation.
+     * Format:
+     * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+     * Version ID is a self-increasing number generated by Dialogflow upon version
+     * creation.
      * </pre>
      *
      * <code>string name = 1;</code>
@@ -1805,8 +1812,8 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
      *
      *
      * <pre>
-     * Output only. The state of this version. This field is read-only and cannot be set by
-     * create and update methods.
+     * Output only. The state of this version. This field is read-only and cannot
+     * be set by create and update methods.
      * </pre>
      *
      * <code>
@@ -1823,8 +1830,8 @@ public int getStateValue() {
      *
      *
      * <pre>
-     * Output only. The state of this version. This field is read-only and cannot be set by
-     * create and update methods.
+     * Output only. The state of this version. This field is read-only and cannot
+     * be set by create and update methods.
      * </pre>
      *
      * <code>
@@ -1844,8 +1851,8 @@ public Builder setStateValue(int value) {
      *
      *
      * <pre>
-     * Output only. The state of this version. This field is read-only and cannot be set by
-     * create and update methods.
+     * Output only. The state of this version. This field is read-only and cannot
+     * be set by create and update methods.
      * </pre>
      *
      * <code>
@@ -1865,8 +1872,8 @@ public com.google.cloud.dialogflow.cx.v3.Version.State getState() {
      *
      *
      * <pre>
-     * Output only. The state of this version. This field is read-only and cannot be set by
-     * create and update methods.
+     * Output only. The state of this version. This field is read-only and cannot
+     * be set by create and update methods.
      * </pre>
      *
      * <code>
@@ -1889,8 +1896,8 @@ public Builder setState(com.google.cloud.dialogflow.cx.v3.Version.State value) {
      *
      *
      * <pre>
-     * Output only. The state of this version. This field is read-only and cannot be set by
-     * create and update methods.
+     * Output only. The state of this version. This field is read-only and cannot
+     * be set by create and update methods.
      * </pre>
      *
      * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionOrBuilder.java
index f59805189..5d5ace03f 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionOrBuilder.java
@@ -27,9 +27,10 @@ public interface VersionOrBuilder
    *
    *
    * <pre>
-   * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-   * number generated by Dialogflow upon version creation.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * Version ID is a self-increasing number generated by Dialogflow upon version
+   * creation.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -41,9 +42,10 @@ public interface VersionOrBuilder
    *
    *
    * <pre>
-   * Format: projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
-   * ID&gt;/flows/&lt;Flow ID&gt;/versions/&lt;Version ID&gt;. Version ID is a self-increasing
-   * number generated by Dialogflow upon version creation.
+   * Format:
+   * `projects/&lt;ProjectID&gt;/locations/&lt;LocationID&gt;/agents/&lt;AgentID&gt;/flows/&lt;FlowID&gt;/versions/&lt;VersionID&gt;`.
+   * Version ID is a self-increasing number generated by Dialogflow upon version
+   * creation.
    * </pre>
    *
    * <code>string name = 1;</code>
@@ -187,8 +189,8 @@ public interface VersionOrBuilder
    *
    *
    * <pre>
-   * Output only. The state of this version. This field is read-only and cannot be set by
-   * create and update methods.
+   * Output only. The state of this version. This field is read-only and cannot
+   * be set by create and update methods.
    * </pre>
    *
    * <code>
@@ -202,8 +204,8 @@ public interface VersionOrBuilder
    *
    *
    * <pre>
-   * Output only. The state of this version. This field is read-only and cannot be set by
-   * create and update methods.
+   * Output only. The state of this version. This field is read-only and cannot
+   * be set by create and update methods.
    * </pre>
    *
    * <code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionProto.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionProto.java
index 7c451857e..bd6ea4cb7 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/VersionProto.java
@@ -63,6 +63,14 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
       internal_static_google_cloud_dialogflow_cx_v3_LoadVersionRequest_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_cloud_dialogflow_cx_v3_LoadVersionRequest_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_fieldAccessorTable;
 
   public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     return descriptor;
@@ -120,47 +128,62 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "#\n!dialogflow.googleapis.com/Version\"u\n\022"
           + "LoadVersionRequest\0227\n\004name\030\001 \001(\tB)\340A\002\372A#"
           + "\n!dialogflow.googleapis.com/Version\022&\n\036a"
-          + "llow_override_agent_resources\030\002 \001(\0102\356\n\n\010"
-          + "Versions\022\307\001\n\014ListVersions\0222.google.cloud"
-          + ".dialogflow.cx.v3.ListVersionsRequest\0323."
+          + "llow_override_agent_resources\030\002 \001(\010\"\263\001\n\026"
+          + "CompareVersionsRequest\022?\n\014base_version\030\001"
+          + " \001(\tB)\340A\002\372A#\n!dialogflow.googleapis.com/"
+          + "Version\022A\n\016target_version\030\002 \001(\tB)\340A\002\372A#\n"
+          + "!dialogflow.googleapis.com/Version\022\025\n\rla"
+          + "nguage_code\030\003 \001(\t\"\223\001\n\027CompareVersionsRes"
+          + "ponse\022!\n\031base_version_content_json\030\001 \001(\t"
+          + "\022#\n\033target_version_content_json\030\002 \001(\t\0220\n"
+          + "\014compare_time\030\003 \001(\0132\032.google.protobuf.Ti"
+          + "mestamp2\342\014\n\010Versions\022\307\001\n\014ListVersions\0222."
           + "google.cloud.dialogflow.cx.v3.ListVersio"
-          + "nsResponse\"N\202\323\344\223\002?\022=/v3/{parent=projects"
-          + "/*/locations/*/agents/*/flows/*}/version"
-          + "s\332A\006parent\022\264\001\n\nGetVersion\0220.google.cloud"
-          + ".dialogflow.cx.v3.GetVersionRequest\032&.go"
-          + "ogle.cloud.dialogflow.cx.v3.Version\"L\202\323\344"
-          + "\223\002?\022=/v3/{name=projects/*/locations/*/ag"
-          + "ents/*/flows/*/versions/*}\332A\004name\022\361\001\n\rCr"
-          + "eateVersion\0223.google.cloud.dialogflow.cx"
-          + ".v3.CreateVersionRequest\032\035.google.longru"
-          + "nning.Operation\"\213\001\202\323\344\223\002H\"=/v3/{parent=pr"
-          + "ojects/*/locations/*/agents/*/flows/*}/v"
-          + "ersions:\007version\332A\016parent,version\312A)\n\007Ve"
-          + "rsion\022\036CreateVersionOperationMetadata\022\332\001"
-          + "\n\rUpdateVersion\0223.google.cloud.dialogflo"
-          + "w.cx.v3.UpdateVersionRequest\032&.google.cl"
-          + "oud.dialogflow.cx.v3.Version\"l\202\323\344\223\002P2E/v"
-          + "3/{version.name=projects/*/locations/*/a"
-          + "gents/*/flows/*/versions/*}:\007version\332A\023v"
-          + "ersion,update_mask\022\252\001\n\rDeleteVersion\0223.g"
-          + "oogle.cloud.dialogflow.cx.v3.DeleteVersi"
-          + "onRequest\032\026.google.protobuf.Empty\"L\202\323\344\223\002"
-          + "?*=/v3/{name=projects/*/locations/*/agen"
-          + "ts/*/flows/*/versions/*}\332A\004name\022\350\001\n\013Load"
-          + "Version\0221.google.cloud.dialogflow.cx.v3."
-          + "LoadVersionRequest\032\035.google.longrunning."
-          + "Operation\"\206\001\202\323\344\223\002G\"B/v3/{name=projects/*"
-          + "/locations/*/agents/*/flows/*/versions/*"
-          + "}:load:\001*\332A\004name\312A/\n\025google.protobuf.Emp"
-          + "ty\022\026google.protobuf.Struct\032x\312A\031dialogflo"
-          + "w.googleapis.com\322AYhttps://www.googleapi"
-          + "s.com/auth/cloud-platform,https://www.go"
-          + "ogleapis.com/auth/dialogflowB\300\001\n!com.goo"
-          + "gle.cloud.dialogflow.cx.v3B\014VersionProto"
-          + "P\001Z?google.golang.org/genproto/googleapi"
-          + "s/cloud/dialogflow/cx/v3;cx\370\001\001\242\002\002DF\252\002\035Go"
-          + "ogle.Cloud.Dialogflow.Cx.V3\352\002!Google::Cl"
-          + "oud::Dialogflow::CX::V3b\006proto3"
+          + "nsRequest\0323.google.cloud.dialogflow.cx.v"
+          + "3.ListVersionsResponse\"N\202\323\344\223\002?\022=/v3/{par"
+          + "ent=projects/*/locations/*/agents/*/flow"
+          + "s/*}/versions\332A\006parent\022\264\001\n\nGetVersion\0220."
+          + "google.cloud.dialogflow.cx.v3.GetVersion"
+          + "Request\032&.google.cloud.dialogflow.cx.v3."
+          + "Version\"L\202\323\344\223\002?\022=/v3/{name=projects/*/lo"
+          + "cations/*/agents/*/flows/*/versions/*}\332A"
+          + "\004name\022\361\001\n\rCreateVersion\0223.google.cloud.d"
+          + "ialogflow.cx.v3.CreateVersionRequest\032\035.g"
+          + "oogle.longrunning.Operation\"\213\001\202\323\344\223\002H\"=/v"
+          + "3/{parent=projects/*/locations/*/agents/"
+          + "*/flows/*}/versions:\007version\332A\016parent,ve"
+          + "rsion\312A)\n\007Version\022\036CreateVersionOperatio"
+          + "nMetadata\022\332\001\n\rUpdateVersion\0223.google.clo"
+          + "ud.dialogflow.cx.v3.UpdateVersionRequest"
+          + "\032&.google.cloud.dialogflow.cx.v3.Version"
+          + "\"l\202\323\344\223\002P2E/v3/{version.name=projects/*/l"
+          + "ocations/*/agents/*/flows/*/versions/*}:"
+          + "\007version\332A\023version,update_mask\022\252\001\n\rDelet"
+          + "eVersion\0223.google.cloud.dialogflow.cx.v3"
+          + ".DeleteVersionRequest\032\026.google.protobuf."
+          + "Empty\"L\202\323\344\223\002?*=/v3/{name=projects/*/loca"
+          + "tions/*/agents/*/flows/*/versions/*}\332A\004n"
+          + "ame\022\350\001\n\013LoadVersion\0221.google.cloud.dialo"
+          + "gflow.cx.v3.LoadVersionRequest\032\035.google."
+          + "longrunning.Operation\"\206\001\202\323\344\223\002G\"B/v3/{nam"
+          + "e=projects/*/locations/*/agents/*/flows/"
+          + "*/versions/*}:load:\001*\332A\004name\312A/\n\025google."
+          + "protobuf.Empty\022\026google.protobuf.Struct\022\361"
+          + "\001\n\017CompareVersions\0225.google.cloud.dialog"
+          + "flow.cx.v3.CompareVersionsRequest\0326.goog"
+          + "le.cloud.dialogflow.cx.v3.CompareVersion"
+          + "sResponse\"o\202\323\344\223\002Z\"U/v3/{base_version=pro"
+          + "jects/*/locations/*/agents/*/flows/*/ver"
+          + "sions/*}:compareVersions:\001*\332A\014base_versi"
+          + "on\032x\312A\031dialogflow.googleapis.com\322AYhttps"
+          + "://www.googleapis.com/auth/cloud-platfor"
+          + "m,https://www.googleapis.com/auth/dialog"
+          + "flowB\300\001\n!com.google.cloud.dialogflow.cx."
+          + "v3B\014VersionProtoP\001Z?google.golang.org/ge"
+          + "nproto/googleapis/cloud/dialogflow/cx/v3"
+          + ";cx\370\001\001\242\002\002DF\252\002\035Google.Cloud.Dialogflow.Cx"
+          + ".V3\352\002!Google::Cloud::Dialogflow::CX::V3b"
+          + "\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -253,6 +276,22 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
             new java.lang.String[] {
               "Name", "AllowOverrideAgentResources",
             });
+    internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_descriptor =
+        getDescriptor().getMessageTypes().get(9);
+    internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsRequest_descriptor,
+            new java.lang.String[] {
+              "BaseVersion", "TargetVersion", "LanguageCode",
+            });
+    internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_descriptor =
+        getDescriptor().getMessageTypes().get(10);
+    internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_cloud_dialogflow_cx_v3_CompareVersionsResponse_descriptor,
+            new java.lang.String[] {
+              "BaseVersionContentJson", "TargetVersionContentJson", "CompareTime",
+            });
     com.google.protobuf.ExtensionRegistry registry =
         com.google.protobuf.ExtensionRegistry.newInstance();
     registry.add(com.google.api.ClientProto.defaultHost);
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/Webhook.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/Webhook.java
index b9fc6073f..816137de9 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/Webhook.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/Webhook.java
@@ -192,7 +192,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>
@@ -204,7 +205,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>
@@ -326,6 +328,71 @@ java.lang.String getRequestHeadersOrDefault(
      * <code>map&lt;string, string&gt; request_headers = 4;</code>
      */
     java.lang.String getRequestHeadersOrThrow(java.lang.String key);
+
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Specifies a list of allowed custom CA certificates (in DER
+     * format) for HTTPS verification. This overrides the default SSL trust
+     * store. If this is empty or unspecified, Dialogflow will use Google's
+     * default trust store to verify certificates. N.B. Make sure the HTTPS
+     * server certificates are signed with "subject alt name". For instance a
+     * certificate can be self-signed using the following command,
+     *     openssl x509 -req -days 200 -in example.com.csr &#92;
+     *       -signkey example.com.key &#92;
+     *       -out example.com.crt &#92;
+     *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+     * </pre>
+     *
+     * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+     *
+     * @return A list containing the allowedCaCerts.
+     */
+    java.util.List<com.google.protobuf.ByteString> getAllowedCaCertsList();
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Specifies a list of allowed custom CA certificates (in DER
+     * format) for HTTPS verification. This overrides the default SSL trust
+     * store. If this is empty or unspecified, Dialogflow will use Google's
+     * default trust store to verify certificates. N.B. Make sure the HTTPS
+     * server certificates are signed with "subject alt name". For instance a
+     * certificate can be self-signed using the following command,
+     *     openssl x509 -req -days 200 -in example.com.csr &#92;
+     *       -signkey example.com.key &#92;
+     *       -out example.com.crt &#92;
+     *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+     * </pre>
+     *
+     * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+     *
+     * @return The count of allowedCaCerts.
+     */
+    int getAllowedCaCertsCount();
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Specifies a list of allowed custom CA certificates (in DER
+     * format) for HTTPS verification. This overrides the default SSL trust
+     * store. If this is empty or unspecified, Dialogflow will use Google's
+     * default trust store to verify certificates. N.B. Make sure the HTTPS
+     * server certificates are signed with "subject alt name". For instance a
+     * certificate can be self-signed using the following command,
+     *     openssl x509 -req -days 200 -in example.com.csr &#92;
+     *       -signkey example.com.key &#92;
+     *       -out example.com.crt &#92;
+     *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+     * </pre>
+     *
+     * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+     *
+     * @param index The index of the element to return.
+     * @return The allowedCaCerts at the given index.
+     */
+    com.google.protobuf.ByteString getAllowedCaCerts(int index);
   }
   /**
    *
@@ -350,6 +417,7 @@ private GenericWebService() {
       uri_ = "";
       username_ = "";
       password_ = "";
+      allowedCaCerts_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -420,6 +488,15 @@ private GenericWebService(
                     .put(requestHeaders__.getKey(), requestHeaders__.getValue());
                 break;
               }
+            case 42:
+              {
+                if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                  allowedCaCerts_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
+                  mutable_bitField0_ |= 0x00000002;
+                }
+                allowedCaCerts_.add(input.readBytes());
+                break;
+              }
             default:
               {
                 if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
@@ -434,6 +511,9 @@ private GenericWebService(
       } catch (java.io.IOException e) {
         throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
       } finally {
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          allowedCaCerts_ = java.util.Collections.unmodifiableList(allowedCaCerts_); // C
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -471,7 +551,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>
@@ -494,7 +575,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>
@@ -721,6 +803,80 @@ public java.lang.String getRequestHeadersOrThrow(java.lang.String key) {
       return map.get(key);
     }
 
+    public static final int ALLOWED_CA_CERTS_FIELD_NUMBER = 5;
+    private java.util.List<com.google.protobuf.ByteString> allowedCaCerts_;
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Specifies a list of allowed custom CA certificates (in DER
+     * format) for HTTPS verification. This overrides the default SSL trust
+     * store. If this is empty or unspecified, Dialogflow will use Google's
+     * default trust store to verify certificates. N.B. Make sure the HTTPS
+     * server certificates are signed with "subject alt name". For instance a
+     * certificate can be self-signed using the following command,
+     *     openssl x509 -req -days 200 -in example.com.csr &#92;
+     *       -signkey example.com.key &#92;
+     *       -out example.com.crt &#92;
+     *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+     * </pre>
+     *
+     * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+     *
+     * @return A list containing the allowedCaCerts.
+     */
+    @java.lang.Override
+    public java.util.List<com.google.protobuf.ByteString> getAllowedCaCertsList() {
+      return allowedCaCerts_;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Specifies a list of allowed custom CA certificates (in DER
+     * format) for HTTPS verification. This overrides the default SSL trust
+     * store. If this is empty or unspecified, Dialogflow will use Google's
+     * default trust store to verify certificates. N.B. Make sure the HTTPS
+     * server certificates are signed with "subject alt name". For instance a
+     * certificate can be self-signed using the following command,
+     *     openssl x509 -req -days 200 -in example.com.csr &#92;
+     *       -signkey example.com.key &#92;
+     *       -out example.com.crt &#92;
+     *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+     * </pre>
+     *
+     * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+     *
+     * @return The count of allowedCaCerts.
+     */
+    public int getAllowedCaCertsCount() {
+      return allowedCaCerts_.size();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional. Specifies a list of allowed custom CA certificates (in DER
+     * format) for HTTPS verification. This overrides the default SSL trust
+     * store. If this is empty or unspecified, Dialogflow will use Google's
+     * default trust store to verify certificates. N.B. Make sure the HTTPS
+     * server certificates are signed with "subject alt name". For instance a
+     * certificate can be self-signed using the following command,
+     *     openssl x509 -req -days 200 -in example.com.csr &#92;
+     *       -signkey example.com.key &#92;
+     *       -out example.com.crt &#92;
+     *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+     * </pre>
+     *
+     * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+     *
+     * @param index The index of the element to return.
+     * @return The allowedCaCerts at the given index.
+     */
+    public com.google.protobuf.ByteString getAllowedCaCerts(int index) {
+      return allowedCaCerts_.get(index);
+    }
+
     private byte memoizedIsInitialized = -1;
 
     @java.lang.Override
@@ -746,6 +902,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
       }
       com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
           output, internalGetRequestHeaders(), RequestHeadersDefaultEntryHolder.defaultEntry, 4);
+      for (int i = 0; i < allowedCaCerts_.size(); i++) {
+        output.writeBytes(5, allowedCaCerts_.get(i));
+      }
       unknownFields.writeTo(output);
     }
 
@@ -774,6 +933,15 @@ public int getSerializedSize() {
                 .build();
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, requestHeaders__);
       }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < allowedCaCerts_.size(); i++) {
+          dataSize +=
+              com.google.protobuf.CodedOutputStream.computeBytesSizeNoTag(allowedCaCerts_.get(i));
+        }
+        size += dataSize;
+        size += 1 * getAllowedCaCertsList().size();
+      }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
@@ -794,6 +962,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getUsername().equals(other.getUsername())) return false;
       if (!getPassword().equals(other.getPassword())) return false;
       if (!internalGetRequestHeaders().equals(other.internalGetRequestHeaders())) return false;
+      if (!getAllowedCaCertsList().equals(other.getAllowedCaCertsList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -815,6 +984,10 @@ public int hashCode() {
         hash = (37 * hash) + REQUEST_HEADERS_FIELD_NUMBER;
         hash = (53 * hash) + internalGetRequestHeaders().hashCode();
       }
+      if (getAllowedCaCertsCount() > 0) {
+        hash = (37 * hash) + ALLOWED_CA_CERTS_FIELD_NUMBER;
+        hash = (53 * hash) + getAllowedCaCertsList().hashCode();
+      }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -990,6 +1163,8 @@ public Builder clear() {
         password_ = "";
 
         internalGetMutableRequestHeaders().clear();
+        allowedCaCerts_ = java.util.Collections.emptyList();
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -1024,6 +1199,11 @@ public com.google.cloud.dialogflow.cx.v3.Webhook.GenericWebService buildPartial(
         result.password_ = password_;
         result.requestHeaders_ = internalGetRequestHeaders();
         result.requestHeaders_.makeImmutable();
+        if (((bitField0_ & 0x00000002) != 0)) {
+          allowedCaCerts_ = java.util.Collections.unmodifiableList(allowedCaCerts_);
+          bitField0_ = (bitField0_ & ~0x00000002);
+        }
+        result.allowedCaCerts_ = allowedCaCerts_;
         onBuilt();
         return result;
       }
@@ -1090,6 +1270,16 @@ public Builder mergeFrom(com.google.cloud.dialogflow.cx.v3.Webhook.GenericWebSer
           onChanged();
         }
         internalGetMutableRequestHeaders().mergeFrom(other.internalGetRequestHeaders());
+        if (!other.allowedCaCerts_.isEmpty()) {
+          if (allowedCaCerts_.isEmpty()) {
+            allowedCaCerts_ = other.allowedCaCerts_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensureAllowedCaCertsIsMutable();
+            allowedCaCerts_.addAll(other.allowedCaCerts_);
+          }
+          onChanged();
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -1128,7 +1318,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>
@@ -1150,7 +1341,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>
@@ -1172,7 +1364,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>
@@ -1193,7 +1386,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>
@@ -1210,7 +1404,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>
@@ -1622,6 +1817,204 @@ public Builder putAllRequestHeaders(
         return this;
       }
 
+      private java.util.List<com.google.protobuf.ByteString> allowedCaCerts_ =
+          java.util.Collections.emptyList();
+
+      private void ensureAllowedCaCertsIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          allowedCaCerts_ =
+              new java.util.ArrayList<com.google.protobuf.ByteString>(allowedCaCerts_);
+          bitField0_ |= 0x00000002;
+        }
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Optional. Specifies a list of allowed custom CA certificates (in DER
+       * format) for HTTPS verification. This overrides the default SSL trust
+       * store. If this is empty or unspecified, Dialogflow will use Google's
+       * default trust store to verify certificates. N.B. Make sure the HTTPS
+       * server certificates are signed with "subject alt name". For instance a
+       * certificate can be self-signed using the following command,
+       *     openssl x509 -req -days 200 -in example.com.csr &#92;
+       *       -signkey example.com.key &#92;
+       *       -out example.com.crt &#92;
+       *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+       * </pre>
+       *
+       * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+       *
+       * @return A list containing the allowedCaCerts.
+       */
+      public java.util.List<com.google.protobuf.ByteString> getAllowedCaCertsList() {
+        return ((bitField0_ & 0x00000002) != 0)
+            ? java.util.Collections.unmodifiableList(allowedCaCerts_)
+            : allowedCaCerts_;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Optional. Specifies a list of allowed custom CA certificates (in DER
+       * format) for HTTPS verification. This overrides the default SSL trust
+       * store. If this is empty or unspecified, Dialogflow will use Google's
+       * default trust store to verify certificates. N.B. Make sure the HTTPS
+       * server certificates are signed with "subject alt name". For instance a
+       * certificate can be self-signed using the following command,
+       *     openssl x509 -req -days 200 -in example.com.csr &#92;
+       *       -signkey example.com.key &#92;
+       *       -out example.com.crt &#92;
+       *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+       * </pre>
+       *
+       * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+       *
+       * @return The count of allowedCaCerts.
+       */
+      public int getAllowedCaCertsCount() {
+        return allowedCaCerts_.size();
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Optional. Specifies a list of allowed custom CA certificates (in DER
+       * format) for HTTPS verification. This overrides the default SSL trust
+       * store. If this is empty or unspecified, Dialogflow will use Google's
+       * default trust store to verify certificates. N.B. Make sure the HTTPS
+       * server certificates are signed with "subject alt name". For instance a
+       * certificate can be self-signed using the following command,
+       *     openssl x509 -req -days 200 -in example.com.csr &#92;
+       *       -signkey example.com.key &#92;
+       *       -out example.com.crt &#92;
+       *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+       * </pre>
+       *
+       * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+       *
+       * @param index The index of the element to return.
+       * @return The allowedCaCerts at the given index.
+       */
+      public com.google.protobuf.ByteString getAllowedCaCerts(int index) {
+        return allowedCaCerts_.get(index);
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Optional. Specifies a list of allowed custom CA certificates (in DER
+       * format) for HTTPS verification. This overrides the default SSL trust
+       * store. If this is empty or unspecified, Dialogflow will use Google's
+       * default trust store to verify certificates. N.B. Make sure the HTTPS
+       * server certificates are signed with "subject alt name". For instance a
+       * certificate can be self-signed using the following command,
+       *     openssl x509 -req -days 200 -in example.com.csr &#92;
+       *       -signkey example.com.key &#92;
+       *       -out example.com.crt &#92;
+       *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+       * </pre>
+       *
+       * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+       *
+       * @param index The index to set the value at.
+       * @param value The allowedCaCerts to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAllowedCaCerts(int index, com.google.protobuf.ByteString value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        ensureAllowedCaCertsIsMutable();
+        allowedCaCerts_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Optional. Specifies a list of allowed custom CA certificates (in DER
+       * format) for HTTPS verification. This overrides the default SSL trust
+       * store. If this is empty or unspecified, Dialogflow will use Google's
+       * default trust store to verify certificates. N.B. Make sure the HTTPS
+       * server certificates are signed with "subject alt name". For instance a
+       * certificate can be self-signed using the following command,
+       *     openssl x509 -req -days 200 -in example.com.csr &#92;
+       *       -signkey example.com.key &#92;
+       *       -out example.com.crt &#92;
+       *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+       * </pre>
+       *
+       * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+       *
+       * @param value The allowedCaCerts to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllowedCaCerts(com.google.protobuf.ByteString value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        ensureAllowedCaCertsIsMutable();
+        allowedCaCerts_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Optional. Specifies a list of allowed custom CA certificates (in DER
+       * format) for HTTPS verification. This overrides the default SSL trust
+       * store. If this is empty or unspecified, Dialogflow will use Google's
+       * default trust store to verify certificates. N.B. Make sure the HTTPS
+       * server certificates are signed with "subject alt name". For instance a
+       * certificate can be self-signed using the following command,
+       *     openssl x509 -req -days 200 -in example.com.csr &#92;
+       *       -signkey example.com.key &#92;
+       *       -out example.com.crt &#92;
+       *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+       * </pre>
+       *
+       * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+       *
+       * @param values The allowedCaCerts to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllAllowedCaCerts(
+          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
+        ensureAllowedCaCertsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, allowedCaCerts_);
+        onChanged();
+        return this;
+      }
+      /**
+       *
+       *
+       * <pre>
+       * Optional. Specifies a list of allowed custom CA certificates (in DER
+       * format) for HTTPS verification. This overrides the default SSL trust
+       * store. If this is empty or unspecified, Dialogflow will use Google's
+       * default trust store to verify certificates. N.B. Make sure the HTTPS
+       * server certificates are signed with "subject alt name". For instance a
+       * certificate can be self-signed using the following command,
+       *     openssl x509 -req -days 200 -in example.com.csr &#92;
+       *       -signkey example.com.key &#92;
+       *       -out example.com.crt &#92;
+       *       -extfile &lt;(printf "&#92;nsubjectAltName='DNS:www.example.com'")
+       * </pre>
+       *
+       * <code>repeated bytes allowed_ca_certs = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
+       *
+       * @return This builder for chaining.
+       */
+      public Builder clearAllowedCaCerts() {
+        allowedCaCerts_ = java.util.Collections.emptyList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        onChanged();
+        return this;
+      }
+
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -2795,10 +3188,12 @@ public WebhookCase getWebhookCase() {
    *
    * <pre>
    * The unique identifier of the webhook.
-   * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook] method.
-   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+   * method.
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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>
@@ -2822,10 +3217,12 @@ public java.lang.String getName() {
    *
    * <pre>
    * The unique identifier of the webhook.
-   * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook] method.
-   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+   * method.
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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>
@@ -3546,10 +3943,12 @@ public Builder clearWebhook() {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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>
@@ -3572,10 +3971,12 @@ public java.lang.String getName() {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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>
@@ -3598,10 +3999,12 @@ public com.google.protobuf.ByteString getNameBytes() {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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>
@@ -3623,10 +4026,12 @@ public Builder setName(java.lang.String value) {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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>
@@ -3644,10 +4049,12 @@ public Builder clearName() {
      *
      * <pre>
      * The unique identifier of the webhook.
-     * Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook] method.
-     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+     * method.
+     * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookOrBuilder.java
index 5979cc389..de5ad7bf9 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/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.v3.Webhooks.UpdateWebhook] method.
-   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+   * method.
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook] method.
-   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+   * method.
+   * [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookProto.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookProto.java
index 3cc0e3ff3..8705ad94b 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookProto.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookProto.java
@@ -137,148 +137,149 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "proto\032\036google/protobuf/duration.proto\032\033g"
           + "oogle/protobuf/empty.proto\032 google/proto"
           + "buf/field_mask.proto\032\034google/protobuf/st"
-          + "ruct.proto\"\311\006\n\007Webhook\022\014\n\004name\030\001 \001(\t\022\031\n\014"
+          + "ruct.proto\"\350\006\n\007Webhook\022\014\n\004name\030\001 \001(\t\022\031\n\014"
           + "display_name\030\002 \001(\tB\003\340A\002\022W\n\023generic_web_s"
           + "ervice\030\004 \001(\01328.google.cloud.dialogflow.c"
           + "x.v3.Webhook.GenericWebServiceH\000\022Z\n\021serv"
           + "ice_directory\030\007 \001(\0132=.google.cloud.dialo"
           + "gflow.cx.v3.Webhook.ServiceDirectoryConf"
           + "igH\000\022*\n\007timeout\030\006 \001(\0132\031.google.protobuf."
-          + "Duration\022\020\n\010disabled\030\005 \001(\010\032\357\001\n\021GenericWe"
+          + "Duration\022\020\n\010disabled\030\005 \001(\010\032\216\002\n\021GenericWe"
           + "bService\022\020\n\003uri\030\001 \001(\tB\003\340A\002\022\024\n\010username\030\002"
           + " \001(\tB\002\030\001\022\024\n\010password\030\003 \001(\tB\002\030\001\022e\n\017reques"
           + "t_headers\030\004 \003(\0132L.google.cloud.dialogflo"
           + "w.cx.v3.Webhook.GenericWebService.Reques"
-          + "tHeadersEntry\0325\n\023RequestHeadersEntry\022\013\n\003"
-          + "key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\032\261\001\n\026Service"
-          + "DirectoryConfig\022@\n\007service\030\001 \001(\tB/\340A\002\372A)"
-          + "\n\'servicedirectory.googleapis.com/Servic"
-          + "e\022U\n\023generic_web_service\030\002 \001(\01328.google."
-          + "cloud.dialogflow.cx.v3.Webhook.GenericWe"
-          + "bService:q\352An\n!dialogflow.googleapis.com"
-          + "/Webhook\022Iprojects/{project}/locations/{"
-          + "location}/agents/{agent}/webhooks/{webho"
-          + "ok}B\t\n\007webhook\"w\n\023ListWebhooksRequest\0229\n"
-          + "\006parent\030\001 \001(\tB)\340A\002\372A#\022!dialogflow.google"
-          + "apis.com/Webhook\022\021\n\tpage_size\030\002 \001(\005\022\022\n\np"
-          + "age_token\030\003 \001(\t\"i\n\024ListWebhooksResponse\022"
-          + "8\n\010webhooks\030\001 \003(\0132&.google.cloud.dialogf"
-          + "low.cx.v3.Webhook\022\027\n\017next_page_token\030\002 \001"
-          + "(\t\"L\n\021GetWebhookRequest\0227\n\004name\030\001 \001(\tB)\340"
-          + "A\002\372A#\n!dialogflow.googleapis.com/Webhook"
-          + "\"\217\001\n\024CreateWebhookRequest\0229\n\006parent\030\001 \001("
-          + "\tB)\340A\002\372A#\022!dialogflow.googleapis.com/Web"
-          + "hook\022<\n\007webhook\030\002 \001(\0132&.google.cloud.dia"
-          + "logflow.cx.v3.WebhookB\003\340A\002\"\205\001\n\024UpdateWeb"
-          + "hookRequest\022<\n\007webhook\030\001 \001(\0132&.google.cl"
-          + "oud.dialogflow.cx.v3.WebhookB\003\340A\002\022/\n\013upd"
-          + "ate_mask\030\002 \001(\0132\032.google.protobuf.FieldMa"
-          + "sk\"^\n\024DeleteWebhookRequest\0227\n\004name\030\001 \001(\t"
-          + "B)\340A\002\372A#\n!dialogflow.googleapis.com/Webh"
-          + "ook\022\r\n\005force\030\002 \001(\010\"\352\t\n\016WebhookRequest\022!\n"
-          + "\031detect_intent_response_id\030\001 \001(\t\022\016\n\004text"
-          + "\030\n \001(\tH\000\022?\n\016trigger_intent\030\013 \001(\tB%\372A\"\n d"
-          + "ialogflow.googleapis.com/IntentH\000\022\024\n\ntra"
-          + "nscript\030\014 \001(\tH\000\022\027\n\rtrigger_event\030\016 \001(\tH\000"
-          + "\022\025\n\rlanguage_code\030\017 \001(\t\022W\n\020fulfillment_i"
-          + "nfo\030\006 \001(\0132=.google.cloud.dialogflow.cx.v"
-          + "3.WebhookRequest.FulfillmentInfo\022M\n\013inte"
-          + "nt_info\030\003 \001(\01328.google.cloud.dialogflow."
-          + "cx.v3.WebhookRequest.IntentInfo\022:\n\tpage_"
-          + "info\030\004 \001(\0132\'.google.cloud.dialogflow.cx."
-          + "v3.PageInfo\022@\n\014session_info\030\005 \001(\0132*.goog"
-          + "le.cloud.dialogflow.cx.v3.SessionInfo\022@\n"
-          + "\010messages\030\007 \003(\0132..google.cloud.dialogflo"
-          + "w.cx.v3.ResponseMessage\022(\n\007payload\030\010 \001(\013"
-          + "2\027.google.protobuf.Struct\022h\n\031sentiment_a"
-          + "nalysis_result\030\t \001(\0132E.google.cloud.dial"
-          + "ogflow.cx.v3.WebhookRequest.SentimentAna"
-          + "lysisResult\032\036\n\017FulfillmentInfo\022\013\n\003tag\030\001 "
-          + "\001(\t\032\273\003\n\nIntentInfo\022B\n\023last_matched_inten"
-          + "t\030\001 \001(\tB%\372A\"\n dialogflow.googleapis.com/"
-          + "Intent\022\024\n\014display_name\030\003 \001(\t\022\\\n\nparamete"
-          + "rs\030\002 \003(\0132H.google.cloud.dialogflow.cx.v3"
-          + ".WebhookRequest.IntentInfo.ParametersEnt"
-          + "ry\022\022\n\nconfidence\030\004 \001(\002\032^\n\024IntentParamete"
-          + "rValue\022\026\n\016original_value\030\001 \001(\t\022.\n\016resolv"
-          + "ed_value\030\002 \001(\0132\026.google.protobuf.Value\032\200"
-          + "\001\n\017ParametersEntry\022\013\n\003key\030\001 \001(\t\022\\\n\005value"
-          + "\030\002 \001(\0132M.google.cloud.dialogflow.cx.v3.W"
-          + "ebhookRequest.IntentInfo.IntentParameter"
-          + "Value:\0028\001\032;\n\027SentimentAnalysisResult\022\r\n\005"
-          + "score\030\001 \001(\002\022\021\n\tmagnitude\030\002 \001(\002B\007\n\005query\""
-          + "\257\005\n\017WebhookResponse\022`\n\024fulfillment_respo"
-          + "nse\030\001 \001(\0132B.google.cloud.dialogflow.cx.v"
-          + "3.WebhookResponse.FulfillmentResponse\022:\n"
-          + "\tpage_info\030\002 \001(\0132\'.google.cloud.dialogfl"
-          + "ow.cx.v3.PageInfo\022@\n\014session_info\030\003 \001(\0132"
-          + "*.google.cloud.dialogflow.cx.v3.SessionI"
-          + "nfo\022(\n\007payload\030\004 \001(\0132\027.google.protobuf.S"
-          + "truct\022:\n\013target_page\030\005 \001(\tB#\372A \n\036dialogf"
-          + "low.googleapis.com/PageH\000\022:\n\013target_flow"
-          + "\030\006 \001(\tB#\372A \n\036dialogflow.googleapis.com/F"
-          + "lowH\000\032\213\002\n\023FulfillmentResponse\022@\n\010message"
-          + "s\030\001 \003(\0132..google.cloud.dialogflow.cx.v3."
-          + "ResponseMessage\022h\n\016merge_behavior\030\002 \001(\0162"
-          + "P.google.cloud.dialogflow.cx.v3.WebhookR"
-          + "esponse.FulfillmentResponse.MergeBehavio"
-          + "r\"H\n\rMergeBehavior\022\036\n\032MERGE_BEHAVIOR_UNS"
-          + "PECIFIED\020\000\022\n\n\006APPEND\020\001\022\013\n\007REPLACE\020\002B\014\n\nt"
-          + "ransition\"\235\004\n\010PageInfo\0229\n\014current_page\030\001"
-          + " \001(\tB#\372A \n\036dialogflow.googleapis.com/Pag"
-          + "e\022C\n\tform_info\030\003 \001(\01320.google.cloud.dial"
-          + "ogflow.cx.v3.PageInfo.FormInfo\032\220\003\n\010FormI"
-          + "nfo\022V\n\016parameter_info\030\002 \003(\0132>.google.clo"
-          + "ud.dialogflow.cx.v3.PageInfo.FormInfo.Pa"
-          + "rameterInfo\032\253\002\n\rParameterInfo\022\024\n\014display"
-          + "_name\030\001 \001(\t\022\020\n\010required\030\002 \001(\010\022\\\n\005state\030\003"
-          + " \001(\0162M.google.cloud.dialogflow.cx.v3.Pag"
-          + "eInfo.FormInfo.ParameterInfo.ParameterSt"
-          + "ate\022%\n\005value\030\004 \001(\0132\026.google.protobuf.Val"
-          + "ue\022\026\n\016just_collected\030\005 \001(\010\"U\n\016ParameterS"
-          + "tate\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\"\341\001\n\013Se"
-          + "ssionInfo\0227\n\007session\030\001 \001(\tB&\372A#\n!dialogf"
-          + "low.googleapis.com/Session\022N\n\nparameters"
-          + "\030\002 \003(\0132:.google.cloud.dialogflow.cx.v3.S"
-          + "essionInfo.ParametersEntry\032I\n\017Parameters"
-          + "Entry\022\013\n\003key\030\001 \001(\t\022%\n\005value\030\002 \001(\0132\026.goog"
-          + "le.protobuf.Value:\0028\0012\267\010\n\010Webhooks\022\277\001\n\014L"
-          + "istWebhooks\0222.google.cloud.dialogflow.cx"
-          + ".v3.ListWebhooksRequest\0323.google.cloud.d"
-          + "ialogflow.cx.v3.ListWebhooksResponse\"F\202\323"
-          + "\344\223\0027\0225/v3/{parent=projects/*/locations/*"
-          + "/agents/*}/webhooks\332A\006parent\022\254\001\n\nGetWebh"
-          + "ook\0220.google.cloud.dialogflow.cx.v3.GetW"
-          + "ebhookRequest\032&.google.cloud.dialogflow."
-          + "cx.v3.Webhook\"D\202\323\344\223\0027\0225/v3/{name=project"
-          + "s/*/locations/*/agents/*/webhooks/*}\332A\004n"
-          + "ame\022\305\001\n\rCreateWebhook\0223.google.cloud.dia"
-          + "logflow.cx.v3.CreateWebhookRequest\032&.goo"
-          + "gle.cloud.dialogflow.cx.v3.Webhook\"W\202\323\344\223"
-          + "\002@\"5/v3/{parent=projects/*/locations/*/a"
-          + "gents/*}/webhooks:\007webhook\332A\016parent,webh"
-          + "ook\022\322\001\n\rUpdateWebhook\0223.google.cloud.dia"
-          + "logflow.cx.v3.UpdateWebhookRequest\032&.goo"
-          + "gle.cloud.dialogflow.cx.v3.Webhook\"d\202\323\344\223"
-          + "\002H2=/v3/{webhook.name=projects/*/locatio"
-          + "ns/*/agents/*/webhooks/*}:\007webhook\332A\023web"
-          + "hook,update_mask\022\242\001\n\rDeleteWebhook\0223.goo"
-          + "gle.cloud.dialogflow.cx.v3.DeleteWebhook"
-          + "Request\032\026.google.protobuf.Empty\"D\202\323\344\223\0027*"
-          + "5/v3/{name=projects/*/locations/*/agents"
-          + "/*/webhooks/*}\332A\004name\032x\312A\031dialogflow.goo"
-          + "gleapis.com\322AYhttps://www.googleapis.com"
-          + "/auth/cloud-platform,https://www.googlea"
-          + "pis.com/auth/dialogflowB\277\002\n!com.google.c"
-          + "loud.dialogflow.cx.v3B\014WebhookProtoP\001Z?g"
-          + "oogle.golang.org/genproto/googleapis/clo"
-          + "ud/dialogflow/cx/v3;cx\370\001\001\242\002\002DF\252\002\035Google."
-          + "Cloud.Dialogflow.Cx.V3\352\002!Google::Cloud::"
-          + "Dialogflow::CX::V3\352A|\n\'servicedirectory."
-          + "googleapis.com/Service\022Qprojects/{projec"
-          + "t}/locations/{location}/namespaces/{name"
-          + "space}/services/{service}b\006proto3"
+          + "tHeadersEntry\022\035\n\020allowed_ca_certs\030\005 \003(\014B"
+          + "\003\340A\001\0325\n\023RequestHeadersEntry\022\013\n\003key\030\001 \001(\t"
+          + "\022\r\n\005value\030\002 \001(\t:\0028\001\032\261\001\n\026ServiceDirectory"
+          + "Config\022@\n\007service\030\001 \001(\tB/\340A\002\372A)\n\'service"
+          + "directory.googleapis.com/Service\022U\n\023gene"
+          + "ric_web_service\030\002 \001(\01328.google.cloud.dia"
+          + "logflow.cx.v3.Webhook.GenericWebService:"
+          + "q\352An\n!dialogflow.googleapis.com/Webhook\022"
+          + "Iprojects/{project}/locations/{location}"
+          + "/agents/{agent}/webhooks/{webhook}B\t\n\007we"
+          + "bhook\"w\n\023ListWebhooksRequest\0229\n\006parent\030\001"
+          + " \001(\tB)\340A\002\372A#\022!dialogflow.googleapis.com/"
+          + "Webhook\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_token"
+          + "\030\003 \001(\t\"i\n\024ListWebhooksResponse\0228\n\010webhoo"
+          + "ks\030\001 \003(\0132&.google.cloud.dialogflow.cx.v3"
+          + ".Webhook\022\027\n\017next_page_token\030\002 \001(\t\"L\n\021Get"
+          + "WebhookRequest\0227\n\004name\030\001 \001(\tB)\340A\002\372A#\n!di"
+          + "alogflow.googleapis.com/Webhook\"\217\001\n\024Crea"
+          + "teWebhookRequest\0229\n\006parent\030\001 \001(\tB)\340A\002\372A#"
+          + "\022!dialogflow.googleapis.com/Webhook\022<\n\007w"
+          + "ebhook\030\002 \001(\0132&.google.cloud.dialogflow.c"
+          + "x.v3.WebhookB\003\340A\002\"\205\001\n\024UpdateWebhookReque"
+          + "st\022<\n\007webhook\030\001 \001(\0132&.google.cloud.dialo"
+          + "gflow.cx.v3.WebhookB\003\340A\002\022/\n\013update_mask\030"
+          + "\002 \001(\0132\032.google.protobuf.FieldMask\"^\n\024Del"
+          + "eteWebhookRequest\0227\n\004name\030\001 \001(\tB)\340A\002\372A#\n"
+          + "!dialogflow.googleapis.com/Webhook\022\r\n\005fo"
+          + "rce\030\002 \001(\010\"\352\t\n\016WebhookRequest\022!\n\031detect_i"
+          + "ntent_response_id\030\001 \001(\t\022\016\n\004text\030\n \001(\tH\000\022"
+          + "?\n\016trigger_intent\030\013 \001(\tB%\372A\"\n dialogflow"
+          + ".googleapis.com/IntentH\000\022\024\n\ntranscript\030\014"
+          + " \001(\tH\000\022\027\n\rtrigger_event\030\016 \001(\tH\000\022\025\n\rlangu"
+          + "age_code\030\017 \001(\t\022W\n\020fulfillment_info\030\006 \001(\013"
+          + "2=.google.cloud.dialogflow.cx.v3.Webhook"
+          + "Request.FulfillmentInfo\022M\n\013intent_info\030\003"
+          + " \001(\01328.google.cloud.dialogflow.cx.v3.Web"
+          + "hookRequest.IntentInfo\022:\n\tpage_info\030\004 \001("
+          + "\0132\'.google.cloud.dialogflow.cx.v3.PageIn"
+          + "fo\022@\n\014session_info\030\005 \001(\0132*.google.cloud."
+          + "dialogflow.cx.v3.SessionInfo\022@\n\010messages"
+          + "\030\007 \003(\0132..google.cloud.dialogflow.cx.v3.R"
+          + "esponseMessage\022(\n\007payload\030\010 \001(\0132\027.google"
+          + ".protobuf.Struct\022h\n\031sentiment_analysis_r"
+          + "esult\030\t \001(\0132E.google.cloud.dialogflow.cx"
+          + ".v3.WebhookRequest.SentimentAnalysisResu"
+          + "lt\032\036\n\017FulfillmentInfo\022\013\n\003tag\030\001 \001(\t\032\273\003\n\nI"
+          + "ntentInfo\022B\n\023last_matched_intent\030\001 \001(\tB%"
+          + "\372A\"\n dialogflow.googleapis.com/Intent\022\024\n"
+          + "\014display_name\030\003 \001(\t\022\\\n\nparameters\030\002 \003(\0132"
+          + "H.google.cloud.dialogflow.cx.v3.WebhookR"
+          + "equest.IntentInfo.ParametersEntry\022\022\n\ncon"
+          + "fidence\030\004 \001(\002\032^\n\024IntentParameterValue\022\026\n"
+          + "\016original_value\030\001 \001(\t\022.\n\016resolved_value\030"
+          + "\002 \001(\0132\026.google.protobuf.Value\032\200\001\n\017Parame"
+          + "tersEntry\022\013\n\003key\030\001 \001(\t\022\\\n\005value\030\002 \001(\0132M."
+          + "google.cloud.dialogflow.cx.v3.WebhookReq"
+          + "uest.IntentInfo.IntentParameterValue:\0028\001"
+          + "\032;\n\027SentimentAnalysisResult\022\r\n\005score\030\001 \001"
+          + "(\002\022\021\n\tmagnitude\030\002 \001(\002B\007\n\005query\"\257\005\n\017Webho"
+          + "okResponse\022`\n\024fulfillment_response\030\001 \001(\013"
+          + "2B.google.cloud.dialogflow.cx.v3.Webhook"
+          + "Response.FulfillmentResponse\022:\n\tpage_inf"
+          + "o\030\002 \001(\0132\'.google.cloud.dialogflow.cx.v3."
+          + "PageInfo\022@\n\014session_info\030\003 \001(\0132*.google."
+          + "cloud.dialogflow.cx.v3.SessionInfo\022(\n\007pa"
+          + "yload\030\004 \001(\0132\027.google.protobuf.Struct\022:\n\013"
+          + "target_page\030\005 \001(\tB#\372A \n\036dialogflow.googl"
+          + "eapis.com/PageH\000\022:\n\013target_flow\030\006 \001(\tB#\372"
+          + "A \n\036dialogflow.googleapis.com/FlowH\000\032\213\002\n"
+          + "\023FulfillmentResponse\022@\n\010messages\030\001 \003(\0132."
+          + ".google.cloud.dialogflow.cx.v3.ResponseM"
+          + "essage\022h\n\016merge_behavior\030\002 \001(\0162P.google."
+          + "cloud.dialogflow.cx.v3.WebhookResponse.F"
+          + "ulfillmentResponse.MergeBehavior\"H\n\rMerg"
+          + "eBehavior\022\036\n\032MERGE_BEHAVIOR_UNSPECIFIED\020"
+          + "\000\022\n\n\006APPEND\020\001\022\013\n\007REPLACE\020\002B\014\n\ntransition"
+          + "\"\235\004\n\010PageInfo\0229\n\014current_page\030\001 \001(\tB#\372A "
+          + "\n\036dialogflow.googleapis.com/Page\022C\n\tform"
+          + "_info\030\003 \001(\01320.google.cloud.dialogflow.cx"
+          + ".v3.PageInfo.FormInfo\032\220\003\n\010FormInfo\022V\n\016pa"
+          + "rameter_info\030\002 \003(\0132>.google.cloud.dialog"
+          + "flow.cx.v3.PageInfo.FormInfo.ParameterIn"
+          + "fo\032\253\002\n\rParameterInfo\022\024\n\014display_name\030\001 \001"
+          + "(\t\022\020\n\010required\030\002 \001(\010\022\\\n\005state\030\003 \001(\0162M.go"
+          + "ogle.cloud.dialogflow.cx.v3.PageInfo.For"
+          + "mInfo.ParameterInfo.ParameterState\022%\n\005va"
+          + "lue\030\004 \001(\0132\026.google.protobuf.Value\022\026\n\016jus"
+          + "t_collected\030\005 \001(\010\"U\n\016ParameterState\022\037\n\033P"
+          + "ARAMETER_STATE_UNSPECIFIED\020\000\022\t\n\005EMPTY\020\001\022"
+          + "\013\n\007INVALID\020\002\022\n\n\006FILLED\020\003\"\341\001\n\013SessionInfo"
+          + "\0227\n\007session\030\001 \001(\tB&\372A#\n!dialogflow.googl"
+          + "eapis.com/Session\022N\n\nparameters\030\002 \003(\0132:."
+          + "google.cloud.dialogflow.cx.v3.SessionInf"
+          + "o.ParametersEntry\032I\n\017ParametersEntry\022\013\n\003"
+          + "key\030\001 \001(\t\022%\n\005value\030\002 \001(\0132\026.google.protob"
+          + "uf.Value:\0028\0012\267\010\n\010Webhooks\022\277\001\n\014ListWebhoo"
+          + "ks\0222.google.cloud.dialogflow.cx.v3.ListW"
+          + "ebhooksRequest\0323.google.cloud.dialogflow"
+          + ".cx.v3.ListWebhooksResponse\"F\202\323\344\223\0027\0225/v3"
+          + "/{parent=projects/*/locations/*/agents/*"
+          + "}/webhooks\332A\006parent\022\254\001\n\nGetWebhook\0220.goo"
+          + "gle.cloud.dialogflow.cx.v3.GetWebhookReq"
+          + "uest\032&.google.cloud.dialogflow.cx.v3.Web"
+          + "hook\"D\202\323\344\223\0027\0225/v3/{name=projects/*/locat"
+          + "ions/*/agents/*/webhooks/*}\332A\004name\022\305\001\n\rC"
+          + "reateWebhook\0223.google.cloud.dialogflow.c"
+          + "x.v3.CreateWebhookRequest\032&.google.cloud"
+          + ".dialogflow.cx.v3.Webhook\"W\202\323\344\223\002@\"5/v3/{"
+          + "parent=projects/*/locations/*/agents/*}/"
+          + "webhooks:\007webhook\332A\016parent,webhook\022\322\001\n\rU"
+          + "pdateWebhook\0223.google.cloud.dialogflow.c"
+          + "x.v3.UpdateWebhookRequest\032&.google.cloud"
+          + ".dialogflow.cx.v3.Webhook\"d\202\323\344\223\002H2=/v3/{"
+          + "webhook.name=projects/*/locations/*/agen"
+          + "ts/*/webhooks/*}:\007webhook\332A\023webhook,upda"
+          + "te_mask\022\242\001\n\rDeleteWebhook\0223.google.cloud"
+          + ".dialogflow.cx.v3.DeleteWebhookRequest\032\026"
+          + ".google.protobuf.Empty\"D\202\323\344\223\0027*5/v3/{nam"
+          + "e=projects/*/locations/*/agents/*/webhoo"
+          + "ks/*}\332A\004name\032x\312A\031dialogflow.googleapis.c"
+          + "om\322AYhttps://www.googleapis.com/auth/clo"
+          + "ud-platform,https://www.googleapis.com/a"
+          + "uth/dialogflowB\277\002\n!com.google.cloud.dial"
+          + "ogflow.cx.v3B\014WebhookProtoP\001Z?google.gol"
+          + "ang.org/genproto/googleapis/cloud/dialog"
+          + "flow/cx/v3;cx\370\001\001\242\002\002DF\252\002\035Google.Cloud.Dia"
+          + "logflow.Cx.V3\352\002!Google::Cloud::Dialogflo"
+          + "w::CX::V3\352A|\n\'servicedirectory.googleapi"
+          + "s.com/Service\022Qprojects/{project}/locati"
+          + "ons/{location}/namespaces/{namespace}/se"
+          + "rvices/{service}b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -314,7 +315,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_cloud_dialogflow_cx_v3_Webhook_GenericWebService_descriptor,
             new java.lang.String[] {
-              "Uri", "Username", "Password", "RequestHeaders",
+              "Uri", "Username", "Password", "RequestHeaders", "AllowedCaCerts",
             });
     internal_static_google_cloud_dialogflow_cx_v3_Webhook_GenericWebService_RequestHeadersEntry_descriptor =
         internal_static_google_cloud_dialogflow_cx_v3_Webhook_GenericWebService_descriptor
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookRequest.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookRequest.java
index 6f1923a61..23a181c54 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookRequest.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookRequest.java
@@ -979,7 +979,8 @@ public interface IntentInfoOrBuilder
      *
      *
      * <pre>
-     * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+     * Always present. The display name of the last matched
+     * [intent][google.cloud.dialogflow.cx.v3.Intent].
      * </pre>
      *
      * <code>string display_name = 3;</code>
@@ -991,7 +992,8 @@ public interface IntentInfoOrBuilder
      *
      *
      * <pre>
-     * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+     * Always present. The display name of the last matched
+     * [intent][google.cloud.dialogflow.cx.v3.Intent].
      * </pre>
      *
      * <code>string display_name = 3;</code>
@@ -2321,7 +2323,8 @@ public com.google.protobuf.ByteString getLastMatchedIntentBytes() {
      *
      *
      * <pre>
-     * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+     * Always present. The display name of the last matched
+     * [intent][google.cloud.dialogflow.cx.v3.Intent].
      * </pre>
      *
      * <code>string display_name = 3;</code>
@@ -2344,7 +2347,8 @@ public java.lang.String getDisplayName() {
      *
      *
      * <pre>
-     * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+     * Always present. The display name of the last matched
+     * [intent][google.cloud.dialogflow.cx.v3.Intent].
      * </pre>
      *
      * <code>string display_name = 3;</code>
@@ -3066,7 +3070,8 @@ public Builder setLastMatchedIntentBytes(com.google.protobuf.ByteString value) {
        *
        *
        * <pre>
-       * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+       * Always present. The display name of the last matched
+       * [intent][google.cloud.dialogflow.cx.v3.Intent].
        * </pre>
        *
        * <code>string display_name = 3;</code>
@@ -3088,7 +3093,8 @@ public java.lang.String getDisplayName() {
        *
        *
        * <pre>
-       * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+       * Always present. The display name of the last matched
+       * [intent][google.cloud.dialogflow.cx.v3.Intent].
        * </pre>
        *
        * <code>string display_name = 3;</code>
@@ -3110,7 +3116,8 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
        *
        *
        * <pre>
-       * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+       * Always present. The display name of the last matched
+       * [intent][google.cloud.dialogflow.cx.v3.Intent].
        * </pre>
        *
        * <code>string display_name = 3;</code>
@@ -3131,7 +3138,8 @@ public Builder setDisplayName(java.lang.String value) {
        *
        *
        * <pre>
-       * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+       * Always present. The display name of the last matched
+       * [intent][google.cloud.dialogflow.cx.v3.Intent].
        * </pre>
        *
        * <code>string display_name = 3;</code>
@@ -3148,7 +3156,8 @@ public Builder clearDisplayName() {
        *
        *
        * <pre>
-       * Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+       * Always present. The display name of the last matched
+       * [intent][google.cloud.dialogflow.cx.v3.Intent].
        * </pre>
        *
        * <code>string display_name = 3;</code>
@@ -4256,8 +4265,9 @@ public QueryCase getQueryCase() {
    *
    *
    * <pre>
-   * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-   * will be returned to the API caller.
+   * Always present. The unique identifier of the
+   * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+   * that will be returned to the API caller.
    * </pre>
    *
    * <code>string detect_intent_response_id = 1;</code>
@@ -4280,8 +4290,9 @@ public java.lang.String getDetectIntentResponseId() {
    *
    *
    * <pre>
-   * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-   * will be returned to the API caller.
+   * Always present. The unique identifier of the
+   * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+   * that will be returned to the API caller.
    * </pre>
    *
    * <code>string detect_intent_response_id = 1;</code>
@@ -4306,8 +4317,8 @@ public com.google.protobuf.ByteString getDetectIntentResponseIdBytes() {
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+   * provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 10;</code>
@@ -4321,8 +4332,8 @@ public boolean hasText() {
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+   * provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 10;</code>
@@ -4349,8 +4360,8 @@ public java.lang.String getText() {
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+   * provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 10;</code>
@@ -4379,9 +4390,9 @@ public com.google.protobuf.ByteString getTextBytes() {
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+   * input, this field will contain a copy of the intent identifier. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * </pre>
    *
@@ -4396,9 +4407,9 @@ public boolean hasTriggerIntent() {
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+   * input, this field will contain a copy of the intent identifier. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * </pre>
    *
@@ -4426,9 +4437,9 @@ public java.lang.String getTriggerIntent() {
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+   * input, this field will contain a copy of the intent identifier. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * </pre>
    *
@@ -4458,7 +4469,8 @@ public com.google.protobuf.ByteString getTriggerIntentBytes() {
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
    * this field will contain the transcript for the audio.
    * </pre>
    *
@@ -4473,7 +4485,8 @@ public boolean hasTranscript() {
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
    * this field will contain the transcript for the audio.
    * </pre>
    *
@@ -4501,7 +4514,8 @@ public java.lang.String getTranscript() {
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
    * this field will contain the transcript for the audio.
    * </pre>
    *
@@ -4531,8 +4545,8 @@ public com.google.protobuf.ByteString getTranscriptBytes() {
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+   * input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -4546,8 +4560,8 @@ public boolean hasTriggerEvent() {
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+   * input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -4574,8 +4588,8 @@ public java.lang.String getTriggerEvent() {
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+   * input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -4936,7 +4950,8 @@ public com.google.cloud.dialogflow.cx.v3.ResponseMessageOrBuilder getMessagesOrB
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -4951,7 +4966,8 @@ public boolean hasPayload() {
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -4966,7 +4982,8 @@ public com.google.protobuf.Struct getPayload() {
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -5727,8 +5744,9 @@ public Builder clearQuery() {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -5750,8 +5768,9 @@ public java.lang.String getDetectIntentResponseId() {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -5773,8 +5792,9 @@ public com.google.protobuf.ByteString getDetectIntentResponseIdBytes() {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -5795,8 +5815,9 @@ public Builder setDetectIntentResponseId(java.lang.String value) {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -5813,8 +5834,9 @@ public Builder clearDetectIntentResponseId() {
      *
      *
      * <pre>
-     * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-     * will be returned to the API caller.
+     * Always present. The unique identifier of the
+     * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+     * that will be returned to the API caller.
      * </pre>
      *
      * <code>string detect_intent_response_id = 1;</code>
@@ -5837,8 +5859,8 @@ public Builder setDetectIntentResponseIdBytes(com.google.protobuf.ByteString val
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+     * provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 10;</code>
@@ -5853,8 +5875,8 @@ public boolean hasText() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+     * provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 10;</code>
@@ -5882,8 +5904,8 @@ public java.lang.String getText() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+     * provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 10;</code>
@@ -5911,8 +5933,8 @@ public com.google.protobuf.ByteString getTextBytes() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+     * provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 10;</code>
@@ -5933,8 +5955,8 @@ public Builder setText(java.lang.String value) {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+     * provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 10;</code>
@@ -5953,8 +5975,8 @@ public Builder clearText() {
      *
      *
      * <pre>
-     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-     * will contain a copy of the text.
+     * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+     * provided as input, this field will contain a copy of the text.
      * </pre>
      *
      * <code>string text = 10;</code>
@@ -5977,9 +5999,9 @@ public Builder setTextBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+     * input, this field will contain a copy of the intent identifier. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
@@ -5995,9 +6017,9 @@ public boolean hasTriggerIntent() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+     * input, this field will contain a copy of the intent identifier. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
@@ -6026,9 +6048,9 @@ public java.lang.String getTriggerIntent() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+     * input, this field will contain a copy of the intent identifier. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
@@ -6057,9 +6079,9 @@ public com.google.protobuf.ByteString getTriggerIntentBytes() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+     * input, this field will contain a copy of the intent identifier. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
@@ -6081,9 +6103,9 @@ public Builder setTriggerIntent(java.lang.String value) {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+     * input, this field will contain a copy of the intent identifier. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
@@ -6103,9 +6125,9 @@ public Builder clearTriggerIntent() {
      *
      *
      * <pre>
-     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-     * contain a copy of the intent identifier.
-     * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+     * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+     * input, this field will contain a copy of the intent identifier. Format:
+     * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
      * ID&gt;/intents/&lt;Intent ID&gt;`.
      * </pre>
      *
@@ -6129,7 +6151,8 @@ public Builder setTriggerIntentBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
      * this field will contain the transcript for the audio.
      * </pre>
      *
@@ -6145,7 +6168,8 @@ public boolean hasTranscript() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
      * this field will contain the transcript for the audio.
      * </pre>
      *
@@ -6174,7 +6198,8 @@ public java.lang.String getTranscript() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
      * this field will contain the transcript for the audio.
      * </pre>
      *
@@ -6203,7 +6228,8 @@ public com.google.protobuf.ByteString getTranscriptBytes() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
      * this field will contain the transcript for the audio.
      * </pre>
      *
@@ -6225,7 +6251,8 @@ public Builder setTranscript(java.lang.String value) {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
      * this field will contain the transcript for the audio.
      * </pre>
      *
@@ -6245,7 +6272,8 @@ public Builder clearTranscript() {
      *
      *
      * <pre>
-     * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+     * If [natural language speech
+     * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
      * this field will contain the transcript for the audio.
      * </pre>
      *
@@ -6269,8 +6297,8 @@ public Builder setTranscriptBytes(com.google.protobuf.ByteString value) {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+     * input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -6285,8 +6313,8 @@ public boolean hasTriggerEvent() {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+     * input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -6314,8 +6342,8 @@ public java.lang.String getTriggerEvent() {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+     * input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -6343,8 +6371,8 @@ public com.google.protobuf.ByteString getTriggerEventBytes() {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+     * input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -6365,8 +6393,8 @@ public Builder setTriggerEvent(java.lang.String value) {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+     * input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -6385,8 +6413,8 @@ public Builder clearTriggerEvent() {
      *
      *
      * <pre>
-     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-     * the name of the event.
+     * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+     * input, this field will contain the name of the event.
      * </pre>
      *
      * <code>string trigger_event = 14;</code>
@@ -7685,7 +7713,8 @@ public com.google.cloud.dialogflow.cx.v3.ResponseMessage.Builder addMessagesBuil
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -7699,7 +7728,8 @@ public boolean hasPayload() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -7717,7 +7747,8 @@ public com.google.protobuf.Struct getPayload() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -7739,7 +7770,8 @@ public Builder setPayload(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -7758,7 +7790,8 @@ public Builder setPayload(com.google.protobuf.Struct.Builder builderForValue) {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -7782,7 +7815,8 @@ public Builder mergePayload(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -7802,7 +7836,8 @@ public Builder clearPayload() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -7816,7 +7851,8 @@ public com.google.protobuf.Struct.Builder getPayloadBuilder() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
@@ -7832,7 +7868,8 @@ public com.google.protobuf.StructOrBuilder getPayloadOrBuilder() {
      *
      *
      * <pre>
-     * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+     * Custom data set in
+     * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 8;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookRequestOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookRequestOrBuilder.java
index e3683c1b8..d3ab944c7 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookRequestOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookRequestOrBuilder.java
@@ -27,8 +27,9 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-   * will be returned to the API caller.
+   * Always present. The unique identifier of the
+   * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.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.v3.DetectIntentResponse] that
-   * will be returned to the API caller.
+   * Always present. The unique identifier of the
+   * [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+   * that will be returned to the API caller.
    * </pre>
    *
    * <code>string detect_intent_response_id = 1;</code>
@@ -54,8 +56,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+   * provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 10;</code>
@@ -67,8 +69,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+   * provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 10;</code>
@@ -80,8 +82,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-   * will contain a copy of the text.
+   * If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+   * provided as input, this field will contain a copy of the text.
    * </pre>
    *
    * <code>string text = 10;</code>
@@ -94,9 +96,9 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+   * input, this field will contain a copy of the intent identifier. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * </pre>
    *
@@ -109,9 +111,9 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+   * input, this field will contain a copy of the intent identifier. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * </pre>
    *
@@ -124,9 +126,9 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-   * contain a copy of the intent identifier.
-   * Format: `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
+   * If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+   * input, this field will contain a copy of the intent identifier. Format:
+   * `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;/agents/&lt;Agent
    * ID&gt;/intents/&lt;Intent ID&gt;`.
    * </pre>
    *
@@ -140,7 +142,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
    * this field will contain the transcript for the audio.
    * </pre>
    *
@@ -153,7 +156,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
    * this field will contain the transcript for the audio.
    * </pre>
    *
@@ -166,7 +170,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+   * If [natural language speech
+   * audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
    * this field will contain the transcript for the audio.
    * </pre>
    *
@@ -180,8 +185,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+   * input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -193,8 +198,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+   * input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -206,8 +211,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-   * the name of the event.
+   * If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+   * input, this field will contain the name of the event.
    * </pre>
    *
    * <code>string trigger_event = 14;</code>
@@ -456,7 +461,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -468,7 +474,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
@@ -480,7 +487,8 @@ public interface WebhookRequestOrBuilder
    *
    *
    * <pre>
-   * Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+   * Custom data set in
+   * [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 8;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookResponse.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookResponse.java
index 487054fcf..21e09df67 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookResponse.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookResponse.java
@@ -1793,7 +1793,8 @@ public com.google.cloud.dialogflow.cx.v3.SessionInfoOrBuilder getSessionInfoOrBu
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -1808,7 +1809,8 @@ public boolean hasPayload() {
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -1823,7 +1825,8 @@ public com.google.protobuf.Struct getPayload() {
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3099,7 +3102,8 @@ public com.google.cloud.dialogflow.cx.v3.SessionInfoOrBuilder getSessionInfoOrBu
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3113,7 +3117,8 @@ public boolean hasPayload() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3131,7 +3136,8 @@ public com.google.protobuf.Struct getPayload() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3153,7 +3159,8 @@ public Builder setPayload(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3172,7 +3179,8 @@ public Builder setPayload(com.google.protobuf.Struct.Builder builderForValue) {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3196,7 +3204,8 @@ public Builder mergePayload(com.google.protobuf.Struct value) {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3216,7 +3225,8 @@ public Builder clearPayload() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3230,7 +3240,8 @@ public com.google.protobuf.Struct.Builder getPayloadBuilder() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
@@ -3246,7 +3257,8 @@ public com.google.protobuf.StructOrBuilder getPayloadOrBuilder() {
      *
      *
      * <pre>
-     * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+     * Value to append directly to
+     * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
      * </pre>
      *
      * <code>.google.protobuf.Struct payload = 4;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookResponseOrBuilder.java b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookResponseOrBuilder.java
index 81a52ec05..5432bb234 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookResponseOrBuilder.java
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/java/com/google/cloud/dialogflow/cx/v3/WebhookResponseOrBuilder.java
@@ -148,7 +148,8 @@ public interface WebhookResponseOrBuilder
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -160,7 +161,8 @@ public interface WebhookResponseOrBuilder
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
@@ -172,7 +174,8 @@ public interface WebhookResponseOrBuilder
    *
    *
    * <pre>
-   * Value to append directly to [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
+   * Value to append directly to
+   * [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
    * </pre>
    *
    * <code>.google.protobuf.Struct payload = 4;</code>
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/audio_config.proto b/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/audio_config.proto
index 49e21d92f..ea5327863 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/audio_config.proto
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/audio_config.proto
@@ -31,6 +31,31 @@ option java_package = "com.google.cloud.dialogflow.cx.v3";
 option objc_class_prefix = "DF";
 option ruby_package = "Google::Cloud::Dialogflow::CX::V3";
 
+// 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
@@ -80,31 +105,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.
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/security_settings.proto b/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/security_settings.proto
index b3409fd88..f7390def7 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/security_settings.proto
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/security_settings.proto
@@ -245,6 +245,11 @@ message SecuritySettings {
   // [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this
   // template to define inspect base settings.
   //
+  // The `DLP Inspect Templates Reader` role is needed on the Dialogflow
+  // service identity service account (has the form
+  // `service-PROJECT_NUMBER@gcp-sa-dialogflow.iam.gserviceaccount.com`)
+  // for your agent's project.
+  //
   // If empty, we use the default DLP inspect config.
   //
   // The template name will have one of the following formats:
@@ -261,6 +266,11 @@ message SecuritySettings {
   // [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this
   // template to define de-identification configuration for the content.
   //
+  // The `DLP De-identify Templates Reader` role is needed on the Dialogflow
+  // service identity service account (has the form
+  // `service-PROJECT_NUMBER@gcp-sa-dialogflow.iam.gserviceaccount.com`)
+  // for your agent's project.
+  //
   // If empty, Dialogflow replaces sensitive info with `[redacted]` text.
   //
   // The template name will have one of the following formats:
@@ -281,7 +291,7 @@ message SecuritySettings {
     // Retains data in interaction logging for the specified number of days.
     // This does not apply to Cloud logging, which is owned by the user - not
     // Dialogflow.
-    // User must Set a value lower than Dialogflow's default 30d TTL. Setting a
+    // User must set a value lower than Dialogflow's default 365d TTL. Setting a
     // value higher than that has no effect.
     // A missing value or setting to 0 also means we use Dialogflow's default
     // TTL.
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/version.proto b/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/version.proto
index a1aecc65c..628d37dbb 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/version.proto
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/version.proto
@@ -47,7 +47,8 @@ service Versions {
       "https://www.googleapis.com/auth/cloud-platform,"
       "https://www.googleapis.com/auth/dialogflow";
 
-  // Returns the list of all versions in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+  // Returns the list of all versions in the specified
+  // [Flow][google.cloud.dialogflow.cx.v3.Flow].
   rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) {
     option (google.api.http) = {
       get: "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/versions"
@@ -63,15 +64,18 @@ service Versions {
     option (google.api.method_signature) = "name";
   }
 
-  // Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified [Flow][google.cloud.dialogflow.cx.v3.Flow].
+  // Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified
+  // [Flow][google.cloud.dialogflow.cx.v3.Flow].
   //
   // This method is a [long-running
   // operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation).
   // The returned `Operation` type has the following method-specific fields:
   //
-  // - `metadata`: [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
+  // - `metadata`:
+  // [CreateVersionOperationMetadata][google.cloud.dialogflow.cx.v3.CreateVersionOperationMetadata]
   // - `response`: [Version][google.cloud.dialogflow.cx.v3.Version]
-  rpc CreateVersion(CreateVersionRequest) returns (google.longrunning.Operation) {
+  rpc CreateVersion(CreateVersionRequest)
+      returns (google.longrunning.Operation) {
     option (google.api.http) = {
       post: "/v3/{parent=projects/*/locations/*/agents/*/flows/*}/versions"
       body: "version"
@@ -121,17 +125,27 @@ service Versions {
       metadata_type: "google.protobuf.Struct"
     };
   }
+
+  // Compares the specified base version with target version.
+  rpc CompareVersions(CompareVersionsRequest)
+      returns (CompareVersionsResponse) {
+    option (google.api.http) = {
+      post: "/v3/{base_version=projects/*/locations/*/agents/*/flows/*/versions/*}:compareVersions"
+      body: "*"
+    };
+    option (google.api.method_signature) = "base_version";
+  }
 }
 
 // Metadata associated with the long running operation for
 // [Versions.CreateVersion][google.cloud.dialogflow.cx.v3.Versions.CreateVersion].
 message CreateVersionOperationMetadata {
   // Name of the created version.
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/flows/<Flow ID>/versions/<Version ID>`.
+  // Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>/versions/<VersionID>`.
   string version = 1 [(google.api.resource_reference) = {
-                        type: "dialogflow.googleapis.com/Version"
-                      }];
+    type: "dialogflow.googleapis.com/Version"
+  }];
 }
 
 // Represents a version of a flow.
@@ -156,9 +170,10 @@ message Version {
     FAILED = 3;
   }
 
-  // Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/flows/<Flow ID>/versions/<Version ID>. Version ID is a self-increasing
-  // number generated by Dialogflow upon version creation.
+  // Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>/versions/<VersionID>`.
+  // Version ID is a self-increasing number generated by Dialogflow upon version
+  // creation.
   string name = 1;
 
   // Required. The human-readable name of the version. Limit of 64 characters.
@@ -172,18 +187,20 @@ message Version {
   NluSettings nlu_settings = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
 
   // Output only. Create time of the version.
-  google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
+  google.protobuf.Timestamp create_time = 5
+      [(google.api.field_behavior) = OUTPUT_ONLY];
 
-  // Output only. The state of this version. This field is read-only and cannot be set by
-  // create and update methods.
+  // Output only. The state of this version. This field is read-only and cannot
+  // be set by create and update methods.
   State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
 }
 
-// The request message for [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
+// The request message for
+// [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
 message ListVersionsRequest {
-  // Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all versions for.
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/flows/<Flow ID>`.
+  // Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to list all
+  // versions for. Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>`.
   string parent = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
@@ -199,7 +216,8 @@ message ListVersionsRequest {
   string page_token = 3;
 }
 
-// The response message for [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
+// The response message for
+// [Versions.ListVersions][google.cloud.dialogflow.cx.v3.Versions.ListVersions].
 message ListVersionsResponse {
   // A list of versions. There will be a maximum number of items returned based
   // on the page_size field in the request. The list may in some cases be empty
@@ -211,11 +229,12 @@ message ListVersionsResponse {
   string next_page_token = 2;
 }
 
-// The request message for [Versions.GetVersion][google.cloud.dialogflow.cx.v3.Versions.GetVersion].
+// The request message for
+// [Versions.GetVersion][google.cloud.dialogflow.cx.v3.Versions.GetVersion].
 message GetVersionRequest {
   // Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version].
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/flows/<Flow ID>/versions/<Version ID>`.
+  // Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>/versions/<VersionID>`.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
@@ -224,11 +243,12 @@ message GetVersionRequest {
   ];
 }
 
-// The request message for [Versions.CreateVersion][google.cloud.dialogflow.cx.v3.Versions.CreateVersion].
+// The request message for
+// [Versions.CreateVersion][google.cloud.dialogflow.cx.v3.Versions.CreateVersion].
 message CreateVersionRequest {
-  // Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an [Version][google.cloud.dialogflow.cx.v3.Version] for.
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/flows/<Flow ID>`.
+  // Required. The [Flow][google.cloud.dialogflow.cx.v3.Flow] to create an
+  // [Version][google.cloud.dialogflow.cx.v3.Version] for. Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>`.
   string parent = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
@@ -240,21 +260,24 @@ message CreateVersionRequest {
   Version version = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
-// The request message for [Versions.UpdateVersion][google.cloud.dialogflow.cx.v3.Versions.UpdateVersion].
+// The request message for
+// [Versions.UpdateVersion][google.cloud.dialogflow.cx.v3.Versions.UpdateVersion].
 message UpdateVersionRequest {
   // Required. The version to update.
   Version version = 1 [(google.api.field_behavior) = REQUIRED];
 
-  // Required. The mask to control which fields get updated. Currently only `description`
-  // and `display_name` can be updated.
-  google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
+  // Required. The mask to control which fields get updated. Currently only
+  // `description` and `display_name` can be updated.
+  google.protobuf.FieldMask update_mask = 2
+      [(google.api.field_behavior) = REQUIRED];
 }
 
-// The request message for [Versions.DeleteVersion][google.cloud.dialogflow.cx.v3.Versions.DeleteVersion].
+// The request message for
+// [Versions.DeleteVersion][google.cloud.dialogflow.cx.v3.Versions.DeleteVersion].
 message DeleteVersionRequest {
-  // Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version] to delete.
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/flows/<Flow ID>/versions/<Version ID>`.
+  // Required. The name of the [Version][google.cloud.dialogflow.cx.v3.Version]
+  // to delete. Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>/versions/<VersionID>`.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
@@ -263,11 +286,12 @@ message DeleteVersionRequest {
   ];
 }
 
-// The request message for [Versions.LoadVersion][google.cloud.dialogflow.cx.v3.Versions.LoadVersion].
+// The request message for
+// [Versions.LoadVersion][google.cloud.dialogflow.cx.v3.Versions.LoadVersion].
 message LoadVersionRequest {
-  // Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded to draft flow.
-  // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
-  // ID>/flows/<Flow ID>/versions/<Version ID>`.
+  // Required. The [Version][google.cloud.dialogflow.cx.v3.Version] to be loaded
+  // to draft flow. Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>/versions/<VersionID>`.
   string name = 1 [
     (google.api.field_behavior) = REQUIRED,
     (google.api.resource_reference) = {
@@ -281,3 +305,52 @@ message LoadVersionRequest {
   // will not be overridden (i.e. intents, entities, webhooks).
   bool allow_override_agent_resources = 2;
 }
+
+// The request message for
+// [Versions.CompareVersions][google.cloud.dialogflow.cx.v3.Versions.CompareVersions].
+message CompareVersionsRequest {
+  // Required. Name of the base flow version to compare with the target version.
+  // Use version ID `0` to indicate the draft version of the specified flow.
+  //
+  // Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>/versions/<VersionID>`.
+  string base_version = 1 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "dialogflow.googleapis.com/Version"
+    }
+  ];
+
+  // Required. Name of the target flow version to compare with the
+  // base version. Use version ID `0` to indicate the draft version of the
+  // specified flow. Format:
+  // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/flows/<FlowID>/versions/<VersionID>`.
+  string target_version = 2 [
+    (google.api.field_behavior) = REQUIRED,
+    (google.api.resource_reference) = {
+      type: "dialogflow.googleapis.com/Version"
+    }
+  ];
+
+  // The language to compare the flow versions for.
+  //
+  // If not specified, the agent's default language is used.
+  // [Many
+  // languages](https://cloud.google.com/dialogflow/docs/reference/language) are
+  // supported. Note: languages must be enabled in the agent before they can be
+  // used.
+  string language_code = 3;
+}
+
+// The response message for
+// [Versions.CompareVersions][google.cloud.dialogflow.cx.v3.Versions.CompareVersions].
+message CompareVersionsResponse {
+  // JSON representation of the base version content.
+  string base_version_content_json = 1;
+
+  // JSON representation of the target version content.
+  string target_version_content_json = 2;
+
+  // The timestamp when the two version compares.
+  google.protobuf.Timestamp compare_time = 3;
+}
diff --git a/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/webhook.proto b/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/webhook.proto
index 074b8dc1d..7f2a291fc 100644
--- a/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/webhook.proto
+++ b/proto-google-cloud-dialogflow-cx-v3/src/main/proto/google/cloud/dialogflow/cx/v3/webhook.proto
@@ -101,7 +101,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.
@@ -113,6 +114,20 @@ message Webhook {
     // The HTTP request headers to send together with webhook
     // requests.
     map<string, string> request_headers = 4;
+
+    // Optional. Specifies a list of allowed custom CA certificates (in DER
+    // format) for HTTPS verification. This overrides the default SSL trust
+    // store. If this is empty or unspecified, Dialogflow will use Google's
+    // default trust store to verify certificates. N.B. Make sure the HTTPS
+    // server certificates are signed with "subject alt name". For instance a
+    // certificate can be self-signed using the following command,
+    //
+    //     openssl x509 -req -days 200 -in example.com.csr \
+    //       -signkey example.com.key \
+    //       -out example.com.crt \
+    //       -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
+    repeated bytes allowed_ca_certs = 5
+        [(google.api.field_behavior) = OPTIONAL];
   }
 
   // Represents configuration for a [Service
@@ -136,10 +151,12 @@ message Webhook {
   }
 
   // The unique identifier of the webhook.
-  // Required for the [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook] method.
-  // [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.v3.Webhooks.UpdateWebhook]
+  // method.
+  // [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.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.
@@ -164,7 +181,8 @@ message Webhook {
   bool disabled = 5;
 }
 
-// The request message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
+// The request message for
+// [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
 message ListWebhooksRequest {
   // Required. The agent to list all webhooks for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
@@ -183,7 +201,8 @@ message ListWebhooksRequest {
   string page_token = 3;
 }
 
-// The response message for [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.Webhooks.ListWebhooks].
+// The response message for
+// [Webhooks.ListWebhooks][google.cloud.dialogflow.cx.v3.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.
@@ -194,7 +213,8 @@ message ListWebhooksResponse {
   string next_page_token = 2;
 }
 
-// The request message for [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3.Webhooks.GetWebhook].
+// The request message for
+// [Webhooks.GetWebhook][google.cloud.dialogflow.cx.v3.Webhooks.GetWebhook].
 message GetWebhookRequest {
   // Required. The name of the webhook.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
@@ -207,7 +227,8 @@ message GetWebhookRequest {
   ];
 }
 
-// The request message for [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.CreateWebhook].
+// The request message for
+// [Webhooks.CreateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.CreateWebhook].
 message CreateWebhookRequest {
   // Required. The agent to create a webhook for.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>`.
@@ -222,7 +243,8 @@ message CreateWebhookRequest {
   Webhook webhook = 2 [(google.api.field_behavior) = REQUIRED];
 }
 
-// The request message for [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook].
+// The request message for
+// [Webhooks.UpdateWebhook][google.cloud.dialogflow.cx.v3.Webhooks.UpdateWebhook].
 message UpdateWebhookRequest {
   // Required. The webhook to update.
   Webhook webhook = 1 [(google.api.field_behavior) = REQUIRED];
@@ -232,7 +254,8 @@ message UpdateWebhookRequest {
   google.protobuf.FieldMask update_mask = 2;
 }
 
-// The request message for [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3.Webhooks.DeleteWebhook].
+// The request message for
+// [Webhooks.DeleteWebhook][google.cloud.dialogflow.cx.v3.Webhooks.DeleteWebhook].
 message DeleteWebhookRequest {
   // Required. The name of the webhook to delete.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
@@ -250,9 +273,10 @@ message DeleteWebhookRequest {
   // *  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.v3.Fulfillment.webhook]
-  //    and [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that point to this webhook
-  //    will be removed).
+  //    as any references to the webhook (i.e.
+  //    [Webhook][google.cloud.dialogflow.cx.v3.Fulfillment.webhook] and
+  //    [tag][google.cloud.dialogflow.cx.v3.Fulfillment.tag]in fulfillments that
+  //    point to this webhook will be removed).
   bool force = 2;
 }
 
@@ -283,10 +307,11 @@ message WebhookRequest {
     // 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"
+    }];
 
-    // Always present. The display name of the last matched [intent][google.cloud.dialogflow.cx.v3.Intent].
+    // Always present. The display name of the last matched
+    // [intent][google.cloud.dialogflow.cx.v3.Intent].
     string display_name = 3;
 
     // Parameters identified as a result of intent matching. This is a map of
@@ -312,30 +337,32 @@ message WebhookRequest {
     float magnitude = 2;
   }
 
-  // Always present. The unique identifier of the [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse] that
-  // will be returned to the API caller.
+  // Always present. The unique identifier of the
+  // [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse]
+  // that will be returned to the API caller.
   string detect_intent_response_id = 1;
 
   // The original conversational query.
   oneof query {
-    // If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was provided as input, this field
-    // will contain a copy of the text.
+    // If [natural language text][google.cloud.dialogflow.cx.v3.TextInput] was
+    // provided as input, this field will contain a copy of the text.
     string text = 10;
 
-    // If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as input, this field will
-    // contain a copy of the intent identifier.
-    // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
+    // If an [intent][google.cloud.dialogflow.cx.v3.IntentInput] was provided as
+    // input, this field will contain a copy of the intent identifier. Format:
+    // `projects/<Project ID>/locations/<Location ID>/agents/<Agent
     // ID>/intents/<Intent ID>`.
     string trigger_intent = 11 [(google.api.resource_reference) = {
-                                  type: "dialogflow.googleapis.com/Intent"
-                                }];
+      type: "dialogflow.googleapis.com/Intent"
+    }];
 
-    // If [natural language speech audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
+    // If [natural language speech
+    // audio][google.cloud.dialogflow.cx.v3.AudioInput] was provided as input,
     // this field will contain the transcript for the audio.
     string transcript = 12;
 
-    // If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as input, this field will contain
-    // the name of the event.
+    // If an [event][google.cloud.dialogflow.cx.v3.EventInput] was provided as
+    // input, this field will contain the name of the event.
     string trigger_event = 14;
   }
 
@@ -361,7 +388,8 @@ message WebhookRequest {
   // [WebhookResponse.fulfillment_response][google.cloud.dialogflow.cx.v3.WebhookResponse.fulfillment_response];
   repeated ResponseMessage messages = 7;
 
-  // Custom data set in [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
+  // Custom data set in
+  // [QueryParameters.payload][google.cloud.dialogflow.cx.v3.QueryParameters.payload].
   google.protobuf.Struct payload = 8;
 
   // The sentiment analysis result of the current user request. The field is
@@ -406,7 +434,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.v3.QueryResult.webhook_payloads].
+  // Value to append directly to
+  // [QueryResult.webhook_payloads][google.cloud.dialogflow.cx.v3.QueryResult.webhook_payloads].
   google.protobuf.Struct payload = 4;
 
   // The target to transition to. This can be set optionally to indicate an
@@ -417,15 +446,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"
+    }];
   }
 }
 
@@ -452,73 +481,95 @@ message PageInfo {
         FILLED = 3;
       }
 
-      // Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Required for
+      // Always present for
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest].
+      // Required for
       // [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+      // Optional for both
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+      // [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Required for
-      // [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The state of the parameter. This field can be set
-      // to [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest].
+      // Required for
+      // [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+      // state of the parameter. This field can be set to
+      // [INVALID][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-      // The value of the parameter. This field can be set by the webhook to
-      // change the parameter value.
+      // Optional for both
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+      // [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+      // Optional for
+      // [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored
+      // for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-    // The parameters contained in the form. Note that the webhook cannot add
-    // or remove any form parameter.
+    // Optional for both
+    // [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+    // [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for
+  // [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest] and [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
+  // Optional for both
+  // [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest] and
+  // [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse].
-  // The unique identifier of the [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
+  // Always present for
+  // [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Ignored for
+  // [WebhookResponse][google.cloud.dialogflow.cx.v3.WebhookResponse]. The
+  // unique identifier of the
+  // [session][google.cloud.dialogflow.cx.v3.DetectIntentRequest.session]. This
   // field can be used by the webhook to identify a session.
   // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
   // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location
   // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`
   // if environment is specified.
   string session = 1 [(google.api.resource_reference) = {
-                        type: "dialogflow.googleapis.com/Session"
-                      }];
-
-  // Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse]. The map is keyed by parameters'
-  // display names.
+    type: "dialogflow.googleapis.com/Session"
+  }];
+
+  // Optional for
+  // [WebhookRequest][google.cloud.dialogflow.cx.v3.WebhookRequest]. Optional
+  // for [WebhookResponse][google.cloud.dialogflow.cx.v3.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.v3.WebhookResponse].
+  // The map is keyed by parameters' display names.
   map<string, google.protobuf.Value> parameters = 2;
 }